= '''NEMO Validation Tool Kit''' = The full documentation is attached at the end of this page.[[BR]] Context: the user made modifications in few modules of the NEMO code; he wants to check if these changes alter basic features such as the reproductibility, the restartability, the global memory and/or the time consuming and/or even results of the reference configurations ORCA2_LIM and GYRE. The NEMO Validation Tool Kit (NVTK hereinafter) has been built to allow the user to perform a set of validation tests simply and quickly in using few commands. Here are summarised basic steps the user has to go through:[[BR]] A. Download and install the NVTK environment (to be done once)[[BR]] B. Compilation, job submission and assessment report The user has to refer to the associated documentation to get details about the general organisation and scripts. Here we suppose the platform used is either the NEC-SX8 either the IBM-SP4 from the French computing center IDRIS, else the user will have to adapt some scripts (following instructions in part II-d Add a new target ?) once the NVTK environment will be downloaded.[[BR]] == A - Download and Install NVTK: == [[BR]] '''''a. Downloading'''''[[BR]] 1. Once the modipsl architecture and the latest NEMO code is extracted under the TEST directory. [[BR]] {{{ > mkdir TEST > cd TEST > svn co http://forge.ipsl.jussieu.fr/igcmg/svn/modipsl/trunk modipsl (download the modipsl structure) > cd modipsl/util }}} Edit the ''mod.def'' file and change following lines:[[BR]] {{{ #-C- NEMO tags/nemo_v2_3/AGRIF HEAD 7 . modeles #-C- NEMO tags/nemo_v2_3/NEMO HEAD 7 . modeles #-C- NEMO tags/nemo_v2_3/UTIL HEAD 7 . modeles #-C- NEMO tags/nemo_v2_3/CONFIG/GYRE HEAD 7 GYRE config #-C- NEMO tags/nemo_v2_3/CONFIG/ORCA2_LIM HEAD 7 ORCA2_LIM config }}} by {{{ #-C- NEMO trunk/AGRIF HEAD 7 . modeles #-C- NEMO trunk/NEMO HEAD 7 . modeles #-C- NEMO trunk/UTIL HEAD 7 . modeles #-C- NEMO trunk/CONFIG/GYRE HEAD 7 GYRE config #-C- NEMO trunk/CONFIG/ORCA2_LIM HEAD 7 ORCA2_LIM config }}} > ./model NEMO (download the NEMO code) 2. 2 directories must be downloaded under the TEST/modipsl/config directory: VALID & HEAD.[[BR]] {{{ > cd ../config > svn co http://forge.ipsl.jussieu.fr/nemo/svn/trunk/VALID > svn co http://forge.ipsl.jussieu.fr/nemo/svn/trunk/HEAD }}} If a passwd is asked, type "Enter button" and use as login: "nemo_user" and the NEMO user classical passwd.[[BR]] 3. For MAC users[[BR]] In the ./modipsl/util/AA_make.gdef:[[BR]] * Set the good directory pathnames for NetCDF library through NCDF_INC and NCDF_LIB variables[[BR]] * Eventually change the compilator name if other than "xlf"[[BR]] * change M_K=make into M_K=gmake[[BR]] In the ./modipsl/util/w_i_h script, transform the "DSYS="Darwin"" name into "DSYS="osxxlf"" if you are using the xlf compiler.[[BR]] Under your OS, if you only have the "make" command, you will have to be able to use gmake one in executing following commands:[[BR]] {{{ > which make > /usr/bin > cd /usr/bin > sudo ln -s make gmake }}} '''''b. Installing'''''[[BR]] User has to fill following variables in the ins_valid.ksh script header under the ./modipsl/config/VALID/2INSTALL/ directory:[[BR]] {{{ > cd config/VALID/2INSTALL > vi ins_valid.ksh }}} ##########################################################[[BR]] ##### Begin Users modifications[[BR]] ##########################################################[[BR]] # '''OUTDIR''' : working directory from which jobs will be launched & results stored[[BR]] # '''INPUTD''' : directory where to get ORCA2_LIM_nemo_v2.tar [[BR]] # '''REFDAT''' : directory where to get results from reference tags[[BR]] # '''DECOMP''' : total number of processors which will be used[[BR]] # '''MAIL''' : give your e-mail[[BR]] # '''UAGRIF''' : one of the standard configurations is based on AGRIF yes/no[[BR]] ##########################################################[[BR]] OUTDIR=[[BR]] INPUTD=[[BR]] REFDAT=[[BR]] DECOMP=[[BR]] MAIL="your_email@xxxxxxx"[[BR]] UAGRIF=yes[[BR]] ##########################################################[[BR]] ##### End Users modifications[[BR]] ##########################################################[[BR]] 1. Once the ins_valid.ksh header is changed, go under VALID/2INSTALL directory and execute the script.[[BR]] {{{ > cd VALID/2INSTALL > ./ins_valid.ksh }}} 2. Set the appropriate domain decomposition values for jpni, jpnj & jpnij parameters. To be done in par_oce.F90_keep file under each ./config/CONFIG_NAME/MY_SRC directory[[BR]] {{{ > cd ./config/CONFIG_NAME/MY_SRC/ > vi par_oce.F90_keep }}} ....... INTEGER, PUBLIC, PARAMETER :: & !:[[BR]] jpni = 2, & !: number of processors following i[[BR]] jpnj = 4, & !: number of processors following j[[BR]] jpnij = 8 !: nb of local domain = nb of processors[[BR]] ! ! ( <= jpni x jpnj )[[BR]] ....... == B - Compilation, Jobs submission and assessment report: == This could be performed in using just one command as just below or in managing each step separately “by hand” (see documentation).[[BR]] 1. store modified modules (to test) under ./modipsl/config/HEAD/2TEST[[BR]] 2. set the following 7 variables in the ./modipsl/config/HEAD/Makefile file:[[BR]] {{{ > cd ./config/HEAD > vi Makefile }}} * '''NAM_V:''' name of the test (this information will be used in the assessment report at the end of all simulations)[[BR]] * '''LISTE_CONF:''' name of standard configurations to be tested with modified routines under 2TEST directory[[BR]] * '''JOBS_2LAUN:''' choice the job to launch between: nojob, all, long, short or gtime[[BR]] * '''BUILD_MAKE:''' compilation type to perform:mono-processor (''mon'') and/or multi-processors MPI (''mpi'') and/or Open-MP (''omp'') (this list is applied to each configuration specified in the '''LISTE_CONF''' variable). If mpi is specified, the user must set the processor cutting (jpni, jpnj & jpnij parameters) in the par_oce.F90_keep module stored in each ./config/CONFIG_NAME/MY_SRC directory. This MPI decomposition must be the same for the 3 configurations[[BR]] * '''JOBS_2LAUN:''' choice the job to launch between: nojob, all, long, short or gtime[[BR]] * '''MAK_TIME:''' perform or not a timing check[[BR]] * '''MAK_MEMO:''' perform or not a memory check[[BR]] * '''REF_TAGV:''' (optional) reference tag version to which compare results[[BR]] 3. launch the whole process (compilation, jobs submission & assessment report) using gmake command from ./modipsl/config/HEAD/2TEST[[BR]] {{{ > cd ./config/HEAD/ > gmake }}} '''Note''': since this environment has been built to use UNIX multi-process possibilities, it is possible to speed-up the compilation in using the gmake option -j :“gmake -j number_of_configurations_to_compile” == C - Paper documentation ==