| 1 | 
  | 
  | 
| 2 | 
 (last edit : oct. 3rd, 2012) | 
 ( last edited : October 14th, 2014 -- author : Gael Forget ) | 
| 3 | 
  | 
  | 
| 4 | 
 --------------------------------------------------------------- | 
 --------------------------------------------------------------- | 
| 5 | 
 A) setup the experiments (incl. llc90 and cs32 core2.cnyf runs)  | 
 A) setup the experiments (incl. llc90 and cs32 core2.cnyf runs)  | 
| 22 | 
    If otherwise, see http://mitgcm.org/public/source_code.html | 
    If otherwise, see http://mitgcm.org/public/source_code.html | 
| 23 | 
 3) step2 creates a directory global_oce_tmp_download that  | 
 3) step2 creates a directory global_oce_tmp_download that  | 
| 24 | 
    contains the experiments directories. Move them (incl.  | 
    contains the experiments directories. Move them (incl.  | 
| 25 | 
    global_oce_input_fields) to MITgcm/verification and cd to  | 
    global_oce_input_fields) to MITgcm/verification. Once you  | 
| 26 | 
    that location. Once you have done this succesfully you may want  | 
    have done this succesfully you may want to remove the empty | 
| 27 | 
    to remove global_oce_tmp_download. We wont need it anymore.  | 
    global_oce_tmp_download directory. We wont need it anymore.  | 
| 28 | 
 4) exectute MITgcm with testreport. Two examples from one machine. | 
 4) exectute MITgcm with testreport. Two examples from one machine. | 
| 29 | 
    To run the cs32 test on one cpu : | 
    To run the cs32 test on one cpu : | 
| 30 | 
        ./testreport -t global_oce_cs32 | 
        ./testreport -t global_oce_cs32 | 
| 31 | 
    And to run the llc90 test on 12 cpus, using mpi | 
    And to run the llc90 test on 24 cpus, using mpi | 
| 32 | 
       ./testreport -match 6 -of=../tools/build_options/linux_amd64_gfortran -MPI 12 -command 'mpirun -np TR_NPROC ./mitgcmuv' -t global_oce_llc90 | 
       /testreport -of=../tools/build_options/linux_amd64_gfortran -MPI 24 -command 'mpirun -np TR_NPROC ./mitgcmuv' -t 'global_oce_cs32 global_oce_llc90' | 
| 33 | 
    The optfile may be swaped for one that better suits your machine. | 
    The optfile may be swaped for one that better suits your machine. | 
| 34 | 
 5) for llc90 experiment testreport should show something like | 
 5) upon completion of the experiments, testreport should return something like | 
| 35 | 
     Y Y Y Y> 6<16 16 12 12 16 16 13 11 12 11 11 11 12 13 10 11  .  . pass  global_oce_llc90 | 
     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 | 
| 36 | 
     Y Y Y N .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..  .  . N/O   global_oce_llc90.core2 | 
     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 | 
| 37 | 
     Y Y Y N .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..  .  . N/O   global_oce_llc90.ecco_v4 | 
     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 | 
| 38 | 
     Y Y Y N .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..  .  . N/O   global_oce_llc90.ecmwf | 
     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 | 
| 39 | 
    implying that the main experiment ran as expected in global_oce_llc90/run. In contrast | 
     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 | 
| 40 | 
    the sub-experiments, by default, fail by omission of surface forcing fields. This  | 
    implying that the main experiment ran as expected in global_oce_llc90/run. | 
 | 
    omission saves disk space and download time. In case you want to run the sub-experiments,  | 
  | 
 | 
    you will need to obtain additional inputs. Contact us about this if applies. | 
  | 
| 41 | 
  | 
  | 
| 42 | 
 ----------------------------------------------------------------------- | 
 ----------------------------------------------------------------------- | 
| 43 | 
 B) in case you want to change stuff on your end, or for troubleshooting | 
 B) in case you want to change stuff on your end, or for troubleshooting | 
| 44 | 
 ----------------------------------------------------------------------- | 
 ----------------------------------------------------------------------- | 
| 45 | 
  | 
  | 
 | 
 0) to run the core2, ecmwf, and ecco_v4 subexperiments you will need  | 
  | 
 | 
    extra stuff in global_oce_input_fields. Contact us if need be. | 
  | 
 | 
    As a side note, for the verification experiment purpose, you  | 
  | 
 | 
    do not want to link the large ecco data sets (RADS etc). | 
  | 
 | 
  | 
  | 
| 46 | 
 1) In linking the experiments to one another we rely on 'build/genmake_local' and  | 
 1) In linking the experiments to one another we rely on 'build/genmake_local' and  | 
| 47 | 
 'input*/prepare_run' which may be worth a special mention, at least to new MITgcm users. | 
 'input*/prepare_run' which may be worth a special mention, at least to new MITgcm users. | 
| 48 | 
  | 
  | 
| 57 | 
        e.g. global_oce_cs32 will get shared files from global_oce_llc90. If you move | 
        e.g. global_oce_cs32 will get shared files from global_oce_llc90. If you move | 
| 58 | 
        the directories appart, you will need to edit the paths in input*/prepare_run | 
        the directories appart, you will need to edit the paths in input*/prepare_run | 
| 59 | 
   1.4) the logic we followed in linking exps to one another : | 
   1.4) the logic we followed in linking exps to one another : | 
| 60 | 
            - forward subexperiments : get local namelists then run input/prepare_run | 
            - forward subexperiments : get input.xxx/namelists then run input/prepare_run | 
| 61 | 
            - adjoint subexperiments : get input_ad.x/namelists then run corresponding forward  | 
            - adjoint subexperiments : get input_ad.xxx/namelists then run corresponding forward  | 
| 62 | 
            subexperiment input.x/prepare_run (that itself ultimately runs input/prepare_run) | 
            subexperiment input.xxx/prepare_run (that itself ultimately runs input/prepare_run) | 
| 63 | 
  | 
  | 
| 64 | 
 2) In a couple .h files (that you find in the build directory after compiling) | 
 2) In a couple .h files (that you find in the build directory after compiling) | 
| 65 | 
    small size parameters are used as a default (to save memory of course) | 
    small size parameters are used as a default (to save memory of course) | 
| 66 | 
    and they can become limiting in certain cases : | 
    and they can become limiting in certain cases : | 
| 67 | 
    - you may want to integrate the model beyond a few time steps. You will need to  | 
    - you may want to integrate the model beyond a few time steps. You will need to  | 
| 68 | 
      edit ecco_cost.h, increase nchklev_1, nchklev_2, nchklev_3 and recompile. | 
      increase nchklev_1/_2/_3 in tamc.h (e.g. use the values in tamc.h_itXX) and recompile. | 
| 69 | 
    - you may want to use pkg/profiles (i.e. process insitu data via data.profiles).  | 
    - you may want to use pkg/profiles (i.e. process insitu data via data.profiles).  | 
| 70 | 
      You will need to edit profiles.h to increase NOBSGLOB, and recompile. | 
      You will need to increase NOBSGLOB in profiles.h (e.g. use profiles.h_itXX), and recompile. | 
| 71 | 
  | 
  | 
| 72 | 
 3) To run the adjoint subexperiments you need the taf/tamc software/license. | 
 3) To run the adjoint subexperiments you need the taf/tamc software/license. | 
| 73 | 
  | 
  | 
 | 
  | 
  | 
| 74 | 
 --------------------------------------------------------------- | 
 --------------------------------------------------------------- | 
 | 
 Cheers, | 
  | 
 | 
 Gael | 
  | 
| 75 | 
 --------------------------------------------------------------- | 
 --------------------------------------------------------------- | 
| 76 | 
  | 
  | 
 | 
  | 
  | 
 | 
  | 
  |