| 1 |
gforget |
1.1 |
|
| 2 |
gforget |
1.5 |
( last edited : October 14th, 2014 -- author : Gael Forget ) |
| 3 |
gforget |
1.1 |
|
| 4 |
|
|
--------------------------------------------------------------- |
| 5 |
|
|
A) setup the experiments (incl. llc90 and cs32 core2.cnyf runs) |
| 6 |
|
|
--------------------------------------------------------------- |
| 7 |
|
|
|
| 8 |
|
|
0) get MITgcm as explained @ http://mitgcm.org/public/source_code.html |
| 9 |
heimbach |
1.2 |
1) the following assumes that you are in directory MITgcm/verification/ |
| 10 |
|
|
i.e., after checkout of the model repository, do: |
| 11 |
|
|
cd MITgcm/verification/ |
| 12 |
|
|
from here, get the MITgcm_contrib/gael/verification/setup_these_exps.csh |
| 13 |
|
|
c-shell setup script e.g. by typing |
| 14 |
gforget |
1.1 |
cvs co MITgcm_contrib/gael/verification/setup_these_exps.csh |
| 15 |
|
|
mv MITgcm_contrib/gael/verification/setup_these_exps.csh . |
| 16 |
|
|
Unless you already had something in MITgcm_contrib you may want |
| 17 |
|
|
to remove that directory. Hereafter we wont need it anymore. |
| 18 |
|
|
2) execute the setup script by typing |
| 19 |
|
|
source ./setup_these_exps.csh |
| 20 |
|
|
A pre-requisite is that you are logged in to the MITgcm |
| 21 |
|
|
cvs server. If you completed step1, you indeed already are. |
| 22 |
|
|
If otherwise, see http://mitgcm.org/public/source_code.html |
| 23 |
|
|
3) step2 creates a directory global_oce_tmp_download that |
| 24 |
gforget |
1.3 |
contains the experiments directories. Move them (incl. |
| 25 |
gforget |
1.5 |
global_oce_input_fields) to MITgcm/verification. Once you |
| 26 |
|
|
have done this succesfully you may want to remove the empty |
| 27 |
|
|
global_oce_tmp_download directory. We wont need it anymore. |
| 28 |
gforget |
1.1 |
4) exectute MITgcm with testreport. Two examples from one machine. |
| 29 |
|
|
To run the cs32 test on one cpu : |
| 30 |
|
|
./testreport -t global_oce_cs32 |
| 31 |
gforget |
1.5 |
And to run the llc90 test on 24 cpus, using mpi |
| 32 |
gforget |
1.6 |
./testreport -of=../tools/build_options/linux_amd64_gfortran -MPI 24 -command 'mpirun -np TR_NPROC ./mitgcmuv' -t 'global_oce_cs32 global_oce_llc90' |
| 33 |
gforget |
1.1 |
The optfile may be swaped for one that better suits your machine. |
| 34 |
gforget |
1.7 |
|
| 35 |
|
|
Notes: - when using mpi and netcdf, testreport expects two environment variables : |
| 36 |
|
|
export MPI_INC_DIR=/opt/local/include |
| 37 |
|
|
export NETCDF_ROOT=/opt/local |
| 38 |
|
|
or something similar depending on your computing environment |
| 39 |
|
|
- whether with testreport or not mpi and netcdf libraries are a pre-requisite |
| 40 |
gforget |
1.5 |
5) upon completion of the experiments, testreport should return something like |
| 41 |
|
|
Y Y Y Y>16<16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 . . pass global_oce_cs32 |
| 42 |
|
|
Y Y Y Y> 7<16 16 12 12 16 16 13 11 13 12 10 11 13 13 11 11 . . FAIL global_oce_llc90 |
| 43 |
|
|
Y Y Y Y>10<16 13 12 12 13 16 14 11 13 13 11 11 13 13 11 11 . . pass global_oce_llc90.core2 |
| 44 |
|
|
Y Y Y Y> 4<13 11 9 9 12 16 11 9 10 12 10 10 11 10 8 10 . . FAIL global_oce_llc90.ecco_v4 |
| 45 |
|
|
Y Y Y Y> 7<10 11 12 11 12 11 13 10 10 12 11 11 12 11 11 10 . . FAIL global_oce_llc90.ecmwf |
| 46 |
|
|
implying that the main experiment ran as expected in global_oce_llc90/run. |
| 47 |
gforget |
1.1 |
|
| 48 |
|
|
----------------------------------------------------------------------- |
| 49 |
|
|
B) in case you want to change stuff on your end, or for troubleshooting |
| 50 |
|
|
----------------------------------------------------------------------- |
| 51 |
|
|
|
| 52 |
|
|
1) In linking the experiments to one another we rely on 'build/genmake_local' and |
| 53 |
|
|
'input*/prepare_run' which may be worth a special mention, at least to new MITgcm users. |
| 54 |
|
|
|
| 55 |
|
|
1.1) most importantly : if you remove these files, the exps wont run or even compile. |
| 56 |
|
|
1.2) build/genmake_local specifies the use of xmakedepend (since the default |
| 57 |
|
|
cant handle so many files) and in global_oce_cs32 it points to |
| 58 |
|
|
"../../global_oce_llc90/code/" If you move global_oce_llc90 away from |
| 59 |
|
|
global_oce_cs32 you will need to edit that path in genmake_local. |
| 60 |
|
|
1.3) in analogy input*/prepare_run are a set of instructions that "testreport" |
| 61 |
|
|
will execute before running MITgcm, to link all of the proper inputs. |
| 62 |
|
|
And again the experiments form a self-consistent group, such that |
| 63 |
|
|
e.g. global_oce_cs32 will get shared files from global_oce_llc90. If you move |
| 64 |
|
|
the directories appart, you will need to edit the paths in input*/prepare_run |
| 65 |
|
|
1.4) the logic we followed in linking exps to one another : |
| 66 |
gforget |
1.5 |
- forward subexperiments : get input.xxx/namelists then run input/prepare_run |
| 67 |
|
|
- adjoint subexperiments : get input_ad.xxx/namelists then run corresponding forward |
| 68 |
|
|
subexperiment input.xxx/prepare_run (that itself ultimately runs input/prepare_run) |
| 69 |
gforget |
1.1 |
|
| 70 |
|
|
2) In a couple .h files (that you find in the build directory after compiling) |
| 71 |
|
|
small size parameters are used as a default (to save memory of course) |
| 72 |
|
|
and they can become limiting in certain cases : |
| 73 |
|
|
- you may want to integrate the model beyond a few time steps. You will need to |
| 74 |
gforget |
1.5 |
increase nchklev_1/_2/_3 in tamc.h (e.g. use the values in tamc.h_itXX) and recompile. |
| 75 |
gforget |
1.1 |
- you may want to use pkg/profiles (i.e. process insitu data via data.profiles). |
| 76 |
gforget |
1.8 |
You will need to increase NOBSGLOB in PROFILES_SIZE.h (e.g. use PROFILES_SIZE.h_itXX), and recompile. |
| 77 |
gforget |
1.1 |
|
| 78 |
|
|
3) To run the adjoint subexperiments you need the taf/tamc software/license. |
| 79 |
|
|
|
| 80 |
|
|
--------------------------------------------------------------- |
| 81 |
|
|
--------------------------------------------------------------- |