New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
user/flavoni/libIGCM – NEMO
wiki:user/flavoni/libIGCM

Version 205 (modified by flavoni, 15 years ago) (diff)

--

Last edited Timestamp?

Using libIGCM(v1_1) library with ORCA2_LIM


Purposes:


  • Document the using of libIGCM for NEMO, in configuration ORCA2_LIM



Quick start guide:


  • Define the following alias to use SVN :
     alias svn_ano='svn co http://forge.ipsl.jussieu.fr/igcmg/svn/modipsl/trunk modipsl'
     alias svn_libigcm='svn co http://forge.ipsl.jussieu.fr/libigcm/svn/tags/libIGCM_v1_1 libIGCM'
     alias svn_nemoligcm='svn co http://forge.ipsl.jussieu.fr/nemo/svn/branches/libIGCM/ORCA2_LIM/IGCM00 IGCM00'
    
  • Create and go into working directory :
     mkdir TRY ; cd TRY
    
  • Extract modipsl :
     svn_ano 
    
  • Extract NEMO :
     cd modipsl/util 
     ./model NEMO 
    
  • Extract libigcm :
     cd ../ 
     svn_libigcm
    
  • Extract card for NEMO for libIGCM :
     cd config/ORCA2_LIM 
     svn_nemoligcm
    
  • Choosing ORCA2_LIM configuration :
     cd ../../modeles/UTIL
     ./fait_config ORCA2_LIM
    
  • Install the makefiles :
     cd ../../util 
     ./ins_make
    
  • Compile :
     cd ../config/ORCA2_LIM 
     gmake
    
  • Submit Job :
     ( Editing at this point modipsl/config/ORCA2_LIM/IGCM00/config.card )
    
     ../../util/ins_job
     cd IGCM00 
     qsub Job_NL1  
    



Set up a simulation:


  • First of all see official documentation

http://wiki.ipsl.jussieu.fr/wiki_ipsl/IGCMG/libIGCM

  • All parameters in config.card file

In modipsl/config/ORCA2_LIM/IGCM00/config.card file you can set all parameters to manage your experience:

How to manage restart files

in config.card you have to set duration of your experience and setting PeriodLenght parameter, so you create restart files.

( for example : if you have and experience of 10 years and a PeriodLenght of 1 year, you will have 10 restart files )

#-- Début et fin de Job
#-- "YYYY-MM-DD"
DateBegin?=2001-01-01
DateEnd?=2010-12-31
#============================
#-- 1Y, 1M, 5D, 1D
PeriodLength?=1Y

How to manage write output frequency

in config.card you have to set WriteFrequency of your experience

( for example : if you want output files every 5 days you have to put for Ocean

#===================
#D-- OCE -
[OCE]
WriteFrequency?="5D"

and if you want output files every 5 days you have to put for ICE

#===================
#D-- ICE -
[ICE]
WriteFrequency?="5D"

)

How to manage calendar type

in config.card you have to set CalendarType like 360d or leap or noleap

( for example : if you want 360 days you have to be careful of

DateEnd?=2010-12-30

because every month has 30 days

If you put for example DateEnd?=2005-12-31, you will have another run, of duration like your PeriodLenght )

  • How to manage rdt ( i.e. timestep )

in COMP/nemo.driver you have to change parameter : ORCA_NPDT_JOUR=15

( 15 corresponds to 86400s/5760s; it does mean that in one day you have 15 iterations in one day; and it does mean that you timestep is 5760)

  • How control all parameters in modipsl/config/ORCA2_LIM/IGCM00/PARAM/namelist

libIGCM change namelist's values but not n namelist's file, so you can control all changes of namelist's parameters looking at :

{OUTPUT_DIR}/IGCM_OUT/ORCA2_LIM/N360d_5d/OCE/Debug/!JobName_date_date_ocean.output

  • How to make a parallel run

first of all add a cpp key:

http://www.nemo-ocean.eu/index.php//Using-NEMO/User-Guides/Advanced/How-to-add-modify-new-modules-or-new-cpp-keys

and then see: http://www.nemo-ocean.eu/index.php//Using-NEMO/User-Guides/Advanced/How-to-set-up-one-simulation#eztoc1210_5



List of possible errors :


Errors in modipsl/config/ORCA2_LIM/IGCM00/Script_Output_JobName:


  • Error : TERM = (vt100) ${HOME:-.}/.profile: .bashrc: not found
  • Error : ksh: D--------------------------------------------------------------------==: not found

it can depends on your .profile file.

To solve it
.profile file it can be like:

«# .profile (idris)
# Fichier d environnement a charger sur la frontale TX7 unix LINUX
# Vous pouvez mettre a jour le fichier .profile_tx
if [ `hostname!` = "brodie" -a -f $HOME/.profile_tx ]; then
. $HOME/.profile_tx
# Fichier d environnement a charger sur les noeuds SX8 unix SUPER-UX
# Vous pouvez mettre a jour le fichier .profile_sx
elif [ hostname != "brodie" -a -f $HOME/.profile_sx ]; then
. $HOME/.profile_sx
else
echo
fi »

  • Error : cat: cannot open ........./modipsl/config/ORCA2_LIM/IGCM00/../.resol :

it is due to modipsl/libIGCM/AA_job file.

To solve it
change in this way:

#-- Resolution FLAG for oasis input
#RESOL=$(cat ${SUBMIT_DIR}/../.resol)
RESOL=

go in modipsl/config/ORCA2_LIM/IGCM00 directory

cancel run.card.init and Job_Name files

and then do an ins_job again.

(does not still fixed in libIGCM_v1_1)

  • Error : Input files and BC for NEMO DO NOT EXIST (i.e. sst_data.nc, sss_data.nc, geothermal_heating.nc, bathy_level.nc, etc...)

IGCM_sys_Get, ERROR : regular file ...../OCE/ORCA2_LIM/bathy_level.nc DOES NOT EXIST .

To solve it
In this moment we've still to download on gaya.idris.fr:~/!reee512/NEMO/ORCA2_LIM_nemo_v3.tar file, and to untar it into the directory:

${R_BC}/OCE/ORCA2_LIM

and where ${R_BC} is a variable that can be changed in modipsl/config/ORCA2_LIM/IGCM00/config.card file.

  • Error : IGCM_debug_Exit : IGCM_config_Initialize Error PeriodState : Fatal
To solve it
change line in modipsl/config/ORCA2_LIM/IGCM00/run.card

PeriodState=Fatal
in
PeriodState=

or rm modipsl/config/ORCA2_LIM/IGCM00/run.card

  • Error : compiling
To solve it

Compiling with new files: new mod.def, fldread.F90, fait_AA_make, BB_make (in ~flavoni/KEEPED_FILES)

  • ls: ERROR: Cannot access stack: No such file or directory

in Script_Outputxxx:

( is it a problem with filemane? )

( which is the difference between Out and OCE/Output directories??? )

IGCM_sys_Put_Out : out_nemo /dmnfs13/cont003/flavoni/IGCM_OUT/ORCA2_LIM/N365d_5d/Out/N365d_5d_20030101_20031231_out_nemo
IGCM_sys_MkdirArchive : /dmnfs13/cont003/flavoni/IGCM_OUT/ORCA2_LIM/N365d_5d/Out
IGCM_sys_Chmod : 444 out_nemo
--Debug1--> OCE
--Debug1--> ICE
Files that will be deleted before next period-run :
ls: ERROR: Cannot access stack: No such file or directory
-r--r--r-- N365d_5d_00016425_restart.nc
-r--r--r-- N365d_5d_00016425_restart_ice.nc
-r--r--r-- N365d_5d_5d_20030101_20031231_grid_T.nc
-r--r--r-- N365d_5d_5d_20030101_20031231_grid_U.nc
-r--r--r-- N365d_5d_5d_20030101_20031231_grid_V.nc
-r--r--r-- N365d_5d_5d_20030101_20031231_grid_W.nc
-r--r--r-- N365d_5d_5d_20030101_20031231_icemod.nc
-r--r--r-- STRAIT.dat
-r--r--r-- damping.coeff.nc
-r--r--r-- ice_evolu



List of possible remarks and suggestions :


  • can we leave these files if the don't exist anymore?????

WARNING : IGCM_sys_Put_Out xxx_trends.nc DOES NOT EXIST
WARNING : IGCM_sys_Put_Out xxx_diagap.nc DOES NOT EXIST
WARNING : IGCM_sys_Put_Out output.abort.nc DOES NOT EXIST

  • Every time that we change modipsl/config/ORCA2_LIM/IGCM00/config.card

we have to cancel modipsl/config/ORCA2_LIM/IGCM00/run.card.init

cancel modipsl/config/ORCA2_LIM/IGCM00/Job_Name

and run ./modipsl/util/ns_job script

  • To perform a second simulation after a run with PeriodState=Fatal

cancel modipsl/config/ORCA2_LIM/IGCM00/stack_error, modipsl/config/ORCA2_LIM/IGCM00/Script_Output_JobName

but do not cancel modipsl/config/ORCA2_LIM/IGCM00/run.card.init file, if not run.card file is not re-created.

( File run.card.init is created with ins_job script )

  • Does it exists a caption file for run.card.init options?

In to run.card.init file who can we undesrtand syntax of? :

TimeSeriesRunning=n
TimeSeriesCompleted=

SeasonalRunning=n

Is there a reference file?

  • test with trunk/libIGCM

To use libIGCM trunk version it is necessary to add in config.card in POST Session:

RebuildFromArchive=false

NOTE: We wait for http://forge.ipsl.jussieu.fr/libigcm/browser/tags version 2 to do changes in config.card:

http://forge.ipsl.jussieu.fr/nemo/svn/branches/libIGCM/ORCA2_LIM/IGCM00/

  • Change in nemo.card or in nemo.driver variable: ORCA_NPDT_JOUR and OPA_NPDT_JOURS
  • Have informations about mailing system for good jobs, on ccrt and idris



Done :


  • run on CCRT machines ( mercure )

Tests for Calendar Type, Output frequency and Restarts:

Simulation environment

#- Repository informations
#-
#-S- 1 cvs anonymous@cvs.ipsl.jussieu.fr:/home/ioipsl/CVSROOT
#-S- 2 cvs sechiba@cvs.ipsl.jussieu.fr:/home/ssipsl/CVSREP
#-S- 3 cvs lmdzbrowse@cvs.lmd.jussieu.fr:/home/cvsroot
#-S- 4 cvs opa@cvs.ipsl.jussieu.fr:/home/opalod/CVSROOT
#-S- 5 cvs nemo@cvs.ipsl.jussieu.fr:/home/opalod/NEMOCVSROOT
#-S- 6 cvs inca@cvs.ipsl.jussieu.fr:/home/incaipsl/CVSROOT
#-S- 7 svn --username nemo_user http://forge.ipsl.jussieu.fr/nemo/svn
#-S- 8 svn http://forge.ipsl.jussieu.fr/igcmg/svn
#-S- 9 svn http://forge.ipsl.jussieu.fr/inca/svn
#-S- 10 svn http://forge.ipsl.jussieu.fr/libigcm/svn

#-H- NEMO_IGCM NEMO
#-H- NEMO_IGCM OPA
#-H- NEMO_IGCM LIM
#-H- NEMO_IGCM TOP
#-H- NEMO_IGCM IOIPSL/src - svn - tag v2_1_4
#-H- NEMO_IGCM libIGCM - svn -
#-H- NEMO_IGCM NEMO sources and configurations - svn - trunk
#-M- NEMO_IGCM opatlod@locean-ipsl.upmc.fr
#-C- NEMO_IGCM IOIPSL/tags/v2_1_4/src HEAD 8 IOIPSL/src modeles
#-C- NEMO_IGCM trunk/libIGCM 47 10 libIGCM .
#-C- NEMO_IGCM tags/nemo_v3_1_beta/NEMO HEAD 7 . modeles
#-C- NEMO_IGCM tags/nemo_v3_1_beta/UTIL HEAD 7 . modeles
#-C- NEMO_IGCM tags/nemo_v3_1_beta/CONFIG/GYRE_LOBSTER HEAD 7 GYRE_LOBSTER config
#-C- NEMO_IGCM tags/nemo_v3_1_beta/CONFIG/ORCA2_LIM HEAD 7 ORCA2_LIM config
#-C- NEMO_IGCM branches/libIGCM/ORCA2_LIM/IGCM00 HEAD 7 IGCM00 config/ORCA2_LIM

Simulation duration = 5 year

PeriodLength = 1Y

timestep: rdt = 5760 equivalent to ORCA_NPDT_JOUR = 15

Output Frequency Output Frequency Output Frequency
5d 1M 1Y
Calendar Type 360d ok ok ok
Calendar Type 365d ok ok ok
Calendar Type leap ongoing to do to do

NOTE: control in:

  • why in /dmnfs13/cont003/flavoni/IGCM_OUT/ORCA2_LIM/N360d_1m/OCE/Debug/*_ocean.output

Namelist namrun

job number no = 0

is EVER = 0????

N365d_1m_20011231_restart.nc

Control if file name is correct!!!! (my job is N365d_1m)



To do list :


  • simulation=100Y
    periodlenght=10y
    and sortiee=1Y

error: IGCM_debug_Exit : IGCM_config_PeriodStart 10Y invalid period length : choose in 1Y, 1M, 5D, 1D.

(see https://forge.ipsl.jussieu.fr/igcmg/wiki/private/ORCA2_LIM_libIGCM using FRED?)

  • test mpi
  • monitoring
  • atlas



NOTE files to change for NEMO :


  • CHANGE nemo.driver for 360d Calendar Type!!!!!!!!! and domain.F90

( see in http://forge.ipsl.jussieu.fr/igcmg/browser/CONFIG/IPSLCM/IPSLCM5/trunk/EXP00/COMP

and there is not "leap" parameter in all *.driver or *.card????

how does it work for Sébastien and Arnaud????????? )

  • fait_AA_make

difference with the old one:

in #- Compilation options ---

echo '#-Q- sx8mercure F_O = -f2003 nocbind -size_t64 -dw -Wf\"-A dbl4\" -sx8 -C vopt -Wf"-P nh" -Wf',-pvctl noassume loopcnt=10000 -L transform' -I $(MODDIR) -I $(MODDIR)/oce -I $(NCDF_INC)'

( old version:

echo '#-Q- sx8mercure F_O = -f2003 nocbind noopt_ieee -size_t64 -dw -Wf\"-A dbl4\" -sx6 -C vopt -Wf"-P nh" -Wf',-pvctl noassume loopcnt=10000 -L transform' -I $(MODDIR) -I $(MODDIR)/oce -I $(NCDF_INC)'

)

  • BB_make
  • AA_job

difference with the old one:
#RESOL=$(cat ${SUBMIT_DIR}/../.resol)
RESOL=

  • domain.F90

difference with the old one:

in line 171

WRITE(numout,*) ' leap year calendar (0/1/30) nleapy = ', nleapy

  • nemo.driver

difference with the old one:

added nleapy variable that corresponds to nbisex on opa.driver

# nleapy leap year calendar (0/1) (30 for 360d)

PAT_NLEAPY=$( supergrep nleapy ${SUBMIT_DIR}/PARAM/namelist )

in lines 141-151

case ${config_UserChoices_CalendarType} in

leap)
ORCA_NLEAPY=1;;
noleap)
ORCA_NLEAPY=0;;
360d)
ORCA_NLEAPY=30;;

esac

in line 158

-e "s%${PAT_NLEAPY}% nleapy=${ORCA_NLEAPY}%" \

  • fldread.F90

difference with the old one:

in line 74

INTEGER jf, ji, jj ! dummy indices

in line 94-99:

DO jj = 1, jpj

DO ji = 1, jpi

sd(jf)%fdta(ji,jj,1) = sd(jf)%fdta(ji,jj,2)

END DO

END DO

in lines 164-169:

sd(jf)%fnow(:,:) = ztintb * sd(jf)%fdta(:,:,1) + ztinta * sd(jf)%fdta(:,:,2)
DO jj = 1, jpj

DO ji = 1, jpi

sd(jf)%fnow(ji,jj) = ztintb * sd(jf)%fdta(ji,jj,1) + ztinta * sd(jf)%fdta(ji,jj,2)

END DO

END DO

in lines 172-181:

sd(jf)%fnow(:,:) = sd(jf)%fdta(:,:,2) ! piecewise constant field
DO jj = 1, jpj

DO ji = 1, jpi

sd(jf)%fnow(ji,jj) = sd(jf)%fdta(ji,jj,2) ! piecewise constant field

END DO

END DO

  • mod.def

difference with the old one:

#-S- 10 svn co -r 47 http://forge.ipsl.jussieu.fr/libigcm/svn
#-H- NEMO_IGCM IOIPSL/src - svn - tag v2_1_4
#-C- NEMO_IGCM IOIPSL/tags/v2_1_4/src HEAD 8 IOIPSL/src modeles
#-C- NEMO_IGCM trunk/libIGCM 47 10 libIGCM .
#-C- NEMO_IGCM tags/nemo_v3_1_beta/NEMO HEAD 7 . modeles
#-C- NEMO_IGCM tags/nemo_v3_1_beta/UTIL HEAD 7 . modeles
#-C- NEMO_IGCM tags/nemo_v3_1_beta/CONFIG/GYRE_LOBSTER HEAD 7 GYRE_LOBSTER config
#-C- NEMO_IGCM tags/nemo_v3_1_beta/CONFIG/ORCA2_LIM HEAD 7 ORCA2_LIM config
#-C- NEMO_IGCM branches/libIGCM/ORCA2_LIM/IGCM00 HEAD 7 IGCM00 config/ORCA2_LIM

( note: NEMO_IGCM branches/libIGCM/ORCA2_LIM/IGCM00 has to be the last one command, if not it is impossible to download in ORCA2_LIM directory; because it does not exists yet)

( old version:

#-S- 10 svn http://forge.ipsl.jussieu.fr/libigcm/svn
#-H- NEMO_IGCM IOIPSL/src - svn - tag v2_1_6
#-C- NEMO_IGCM IOIPSL/tags/v2_1_6/src HEAD 8 IOIPSL/src modeles
#-C- NEMO_IGCM tags/libIGCM_v1_1 HEAD 10 libIGCM .
#-C- NEMO_IGCM branches/libIGCM/ORCA2_LIM/IGCM00 HEAD 7 IGCM00 config/ORCA2_LIM
#-C- NEMO_IGCM trunk/NEMO HEAD 7 . modeles
#-C- NEMO_IGCM trunk/UTIL HEAD 7 . modeles
#-C- NEMO_IGCM trunk/NVTK HEAD 7 . config
#-C- NEMO_IGCM trunk/CONFIG/GYRE_LOBSTER HEAD 7 GYRE_LOBSTER config
#-C- NEMO_IGCM trunk/CONFIG/ORCA2_LIM HEAD 7 ORCA2_LIM config

)

Simona Flavoni last update: Timestamp?

Attachments (1)

Download all attachments as: .zip