Changes between Version 5 and Version 6 of Documentation/UserGuide/DebugCoupled


Ignore:
Timestamp:
2020-02-28T16:18:10+01:00 (4 years ago)
Author:
jgipsl
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Documentation/UserGuide/DebugCoupled

    v5 v6  
    1 If you've never really used LMDZ before, coupling is a scary event, even if you know ORCHIDEE quite well.  Thankfully, there are some tips to make things a bit easier. 
     1= Debug a coupled LMDZOR run = 
     2Author: M. !McGrath[[BR]] 
     3Last revision: J. Ghattas 2020/02/28 
    24 
    3 == Tip 1) check coupling == 
    4 If the job crashes immediately (i.e., within a day), it's good to check the coupling between the two models, which variables are passed and what their values are.  This can be found in intersurf_gathered, in src_sechiba/intersurf.f90.  If you changed the flag check_INPUTS in this file to .TRUE. and recompile, it will create a whole bunch of useful files in the run directory when run, of the format W*.nc (Walb_nir.nc, Wfluxlat.nc, etc., one for all the variables passed to ORCHIDEE and passed from ORCHIDEE).  You can look at these with the standard NetCDF tools for each step to see if the values are unusual.  In order to determine what is "usual", I do a one day run on the same resolution with the trunk and all the options I'm interested in (11-layer hydrology, STOMATE, new physics, etc.) and enable the check_INPUTS flag.  This gives me an identical set of files to compare to. 
     5See here some tips for debugging a coupled LMDZOR run.  
    56 
    6 Question: where is the run directory?  It is not the submit directory (config/, where the job is submitted from), and it is not the archive directory (IGCM_OUT/, where the output files are stored).  It is a temporary directory where all the files are copied to and execution takes place.  If you look in the Script_* output file in the submit directory of a job, you can find a line which looks something like this (on Curie) 
     7== Tip 1) Compile in debug mode == 
     8See wiki:Documentation/UserGuide/CompileMethods 
    79 
    8 {{{ 
    9 IGCM_sys_Cd : /ccc/scratch/cont003/dsm/p529grat/RUN_DIR/1213660_24665/DOFOCO.24665 
    10 }}} 
     10== Tip 2) Find the directory where the model is running : RUN_DIR == 
     11Look into all out_* files from LMDZ and ORCHIDEE. If the simulation crashes you'll find them in the Debug folder in your submit directory. If it hangs search for the RUN_DIR as described here wiki:Documentation/UserGuide/HangCrash 
    1112 
    12 This is the run directory.  It is deleted if the run completes successfully, but not deleted if a crash happens.  You can also find this directory based on the job submission ID. 
    13  
    14 $SCRATCHDIR/RUN_DIR/number_id_job_...... 
    15  
    16 number_id_job is the number given by the system when you submit the job 
    17  
    18 For example, 
    19  
    20 {{{ 
    21 [p86cozic@curie70 loig.default]$ ccc_msub Job_loig.default 
    22 Submitted Batch Session 1213759 
    23 }}} 
    24  
    25 This RUN_DIR will be : $SCRATCHDIR/RUN_DIR/1213759_***** 
    26  
    27 The origin of the second set of numbers (the *****) is unclear, but the job ID is unique, so there should only be one directory which starts with that number. 
     13== Tip 3) Check output files for interface variables == 
     14Analyse the sechiba_history.nc output file and check whether the variables passed from ORCHIDEE to LMDZ are reasonable. 
    2815 
    2916 
    30 == Tip 2) Turn on debug flags for ORCHIDEE and LMDZ == 
    31 '''ORCHIDEE'''[[BR]] 
    32  
    33 The compiling of ORCHIDEE has changed so depending on when you extracted the model you should choose the appropriate method.  
    34  
    35 Find out which method is used in your version by opening the file modipsl/config/LMDZOR_v5.2/AA_make. If it contains 
    36 {{{ 
    37 LMD9695-L39 : libioipsl liborchideefcm lmdz96x95x39 verif 
    38 }}} 
    39 you have the new method based on the script makeorchidee_fcm. For this case, add at the end of the line with makeorchidee_fcm '''-debug''' to the following : 
    40  
    41  
    42 {{{ 
    43 liborchideefcm : ../../modeles/ORCHIDEE/ 
    44         (cd ../../modeles/ORCHIDEE/ ; ./makeorchidee_fcm -parallel mpi -arch $(FCM_ARCH) -driver -j 8 -debug ) 
    45 }}} 
    46  
    47 If instead the file modipsl/config/LMDZOR_v5.2/AA_make contains  
    48 {{{ 
    49 LMD9695-L39 : libioipsl liborchidee lmdz96x95x39 verif 
    50 }}} 
    51 you have the old method with standard makefiles based on AA_make.gdef. Change in modipsl/util/AA_make.gdef the line corresponding to F_O for your machine.  
    52  
    53 For example at curie set: 
    54 {{{ 
    55 #-Q- curie  F_O = -DCPP_PARA -p -g -traceback -fp-stack-check -ftrapuv -check bounds $(F_D) $(F_P) -I$(MODDIR) -module $(MODDIR) 
    56 }}} 
    57  
    58 For example at ada set: 
    59 #-Q- ada      F_O = -DCPP_PARA -p -g -traceback -fp-stack-check -ftrapuv -check bounds $(F_D) $(F_P) -I$(MODDIR) -module $(MODDIR) 
    60  
    61 Note that these lines are proposed in AA_make.gdef in commented form using ####-Q-... 
    62  
    63 '''LMDZ'''[[BR]] 
    64 For LMDZ, add -debug on the 2 lines containing makelmdz_fcm in the same file modipsl/config/LMDZOR_v5.2/AA_make. You should have the following: 
    65 {{{ 
    66 lmdz: ../../modeles/LMDZ 
    67     (cd ../../modeles/LMDZ; ./makelmdz_fcm -d $(RESOL_LMDZ) -cosp true -v true -debug -parallel mpi -arch $(FCM_ARCH) ce0l ; cp bin/ce0l_$(RESOL_LMDZ)_phylmd_para_orch.e ../../bin/create_etat0_limit.e ; ) 
    68     (cd ../../modeles/LMDZ; ./makelmdz_fcm -d $(RESOL_LMDZ) -cosp true -v true -debug -parallel mpi -arch $(FCM_ARCH) gcm ;  cp bin/gcm_$(RESOL_LMDZ)_phylmd_para_orch.e ../../bin/gcm.e ; ) 
    69 }}} 
    70  
    71 '''Recreate makefiles and compile'''[[BR]] 
    72 You must now recreate the Makefile, clean and recompile. Do as follow: 
    73 {{{ 
    74 cd modipsl/config/LMDZOR_v5.2 
    75 ../../util/ins_make 
    76 gmake clean 
    77 gmake 
    78 }}} 
    79 This will recompile both ORCHIDEE and LMDZ with the new options you set.  
    80  
    81 Note: The debug flags, as well as all compile options, that are used for ORCHIDEE compiled with makeorechidee_fcm are found in modeles/ORCHIDEE/arch/arch-....fcm and for LMDZ in modeles/LMDZ/arch/arch-....fcm. 
    82  
    83  
    84