Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
Instructions for using unsupported configurations on systems without wget access to
the internet
The unsupported configurations in NEMO are provided as a way for users to provide
alternative configurations to the wider community without having to rely on system team
sponsership and support. The idea is to provide minimal but sufficient information
with the standard distribution to allow ancillary files to be fetched from remote
servers at compile time. Thus a makenemo command such as:
./makenemo -n MYISOMIP -u ISOMIP -m some_arch
will create a new configuration called MYISOMIP with MY_SRC and EXP00 directories
populated from a remote server. It does this by first using the wget command to fetch a
list of remote files and then using wget repeatedly to fetch each of the files listed
therein. The location of the remote list is contained in one line of information held
in the uspcfg.txt file (in CONFIG).
These instructions provide a work-around for systems without direct access to the
internet or on which wget has been disabled/not installed. On these systems it is
possible to create local copies of the remote files and replace the wget function
with a local copy command. It will be the user's responsibility to ensure that the
local copies reflect any changes made in the remote sources.
The procedure requires the following steps:
1. From the target NEMOGCM directory on your target system copy the following
files into a working directory on a system that does have internet access
and a working wget command:
a. TOOLS/MISCELLANEOUS/make_usp_tar.sh
b. CONFIG/uspcfg.txt
2. On that alternative system and in the working directory containing the newly
copied files, run the make_usp_tar.sh script. The script takes three arguments:
a. The name of the uspcfg.txt file
b. The name of the unsupported configuration you wish to use
c. The name of a directory that will be created and filled with the remote
files in the current working directory. This directory will be tarred and
eventually transferred to the target system. There it will be unpacked and
will form the local archive for this configuration. A meaningful name is
therefore recommended.
For example:
./make_usp_tar.sh uspcfg.txt ISOMIP ISOMIP_ARCHIVE
3. Copy the resulting tarball (in this case: ISOMIP_ARCHIVE.tar) to the target
system and unpack (tar xvf ISOMIP_ARCHIVE.tar) in a location that is visible to
the node on which you intend to compile nemo. The unpacked directory will contain
the files retrieved from the remote server, modified versions of the file list and
uspcfg.txt files and two new scripts. For example:
ls -1R ISOMIP_ARCHIVE
cpp_ISOMIP.fcm - downloaded from remote server
def_wget - newly constructed script
local_template.ctl - file list modified for local copy
uspcfg_local_template.txt - a copy of uspcfg.txt with modification for local copy
remote_file.list - downloaded from remote server
set_local_uspcfg - newly constructed script
EXP00 - new subdirectory
MY_SRC - new subdirectory
./EXP00:
iodef.xml - downloaded from remote server
namelist_cfg - downloaded from remote server
./MY_SRC:
domzgr.F90 - downloaded from remote server
istate.F90 - downloaded from remote server
4. The final stage is to enter the directory and execute the set_local_uspcfg script.
This script will prompt for a full path to the target CONFIG directory and then:
a. Edit the templates and create local.ctl and uspcfg_local.txt files by inserting
the full path to the archive directory (i.e. the current working directory)
b. move uspcfg_local.txt to the named CONFIG directory
c. rename any existing uspcfg.txt file in the CONFIG directory to uspcfg_remote.txt
d. insert symbolic link (uspcfg.txt) to uspcfg_local.txt in the CONFIG directory
e. redefine/define wget as an exported bash function to simply copy
This last action is needed so that subsequent use of makenemo with the -u argument
will not invoke wget. For this to be effective the set_local_usp script should be run
within the same bash shell as makenemo will be run in. I.e.:
. ./set_local_usp
If this is not possible or the makenemo command is run at a later date, then the
def_wget script should be run in the bash shell before any attempt to use the -u
option of makenemo. I.e.:
. ./def_wget
[ Tip: check that the definition/re-definition of wget has worked correctly by
issuing this command:
wget a b c
If you get messages such as:
wget a b c
--2016-10-27 10:14:52-- http://a/
Resolving a... failed: Name or service not known.
wget: unable to resolve host address `a'
.
.
then the re-definition of wget has not been retained by the current shell. Run
. ./def_wget and try again. You should get a response such as:
wget a b c
Expected wget usage: wget src -O dest
-O not found. No action taken
if the environment is set correctly
]
5. The setup is now complete and moving to the CONFIG directory and issuing a command
such as:
./makenemo -n MYISOMIP -u ISOMIP -m target_arch
should correctly configure from local archives only.
[ Tip: the -u argument ( and hence the need to switch wget to local copies on isolated
systems ) is only required when compiling for the first time. Subsequent compilations
following code changes in the MYISOMIP directories can be carried out in your
default nemo environment. I.e.:
./makenemo -n MYISOMIP -m target_arch
will not require any of the preceeding steps in future sessions.
]