How to spin-up ORCA2_ICE_PISCES from restart files, even with icebergs

Dear all,

Hello, I am a beginner.
I’m trying to spin-up ORCA2_ICE_PISCES from restart files(during about 150-200 years). I have some question.

  1. Question on restart files
    After NEMO has run for 1 year, a series of restart files was created and saved in the restarts directory. The restart files were of 4 types : restart, restart_trc, restart_ice and icebergs_restart.
    I rebuilt the pieces of restart, restart_trc and restart_ice files into a single file each. (I used a python script to rebuild files. But I failed to rebuild icebergs_restart files. maybe grid problem…) Anyway, I ran NEMO from only 3 types of restart files. But, it worked.
  • 1 ) So my question is that the icebergs_restart files are not necessary for spin-up (150-200years) from restart files?
  1. Question on namelist for spin-up
    I understand the namelists imprecisely, so I’m testing it.
!-----------------------------------------------------------------------
&namrun        !   parameters of the run
!-----------------------------------------------------------------------
   nn_istate   =       0   !  output the initial state (1) or not (0)
   nn_it000    =       17521 !first time step
   nn_itend    = 40880 ! last time step (std 5840); (5840*year)+nn_it000-1
   ln_rstart   = .ture.
   nn_euler    =    1
   nn_rstctl   =    2
   cn_ocerst_in    = "ORCA2_00017520_restart"
   cn_ocerst_indir = "./restarts"
   cn_ocerst_out   = "restart"
   cn_ocerst_outdir= "./restarts"
   nn_stock    =  11680 ! frequency of creation of a restart file (modulo referenced to 1); (5840*year)

!-----------------------------------------------------------------------
&namtsd        !    Temperature & Salinity Data  (init/dmp)             (default: OFF)
!-----------------------------------------------------------------------
   !                       ! =T  read T-S fields for:
   ln_tsd_init = .true.          !  ocean initialisation
   ln_tsd_dmp  = .true.          !  T-S restoring   (see namtra_dmp)
!------------------------------------------------------------------------------
&nampar         !   Generic parameters
!------------------------------------------------------------------------------
   cn_icerst_in     = "ORCA2_00017520_restart_ice"   !  suffix of ice restart name (input)
   cn_icerst_out    = "restart_ice"   !  suffix of ice restart name (output)
   cn_icerst_indir  = "./restarts"             !  directory to read   input ice restarts
   cn_icerst_outdir = "./restarts"             !  directory to write output ice restarts

!------------------------------------------------------------------------------
&namini         !   Ice initialization
!------------------------------------------------------------------------------
        ln_iceini        = .false.
        nn_iceini_file   =   2
/
!-----------------------------------------------------------------------
&namtrc_run      !   run information
!-----------------------------------------------------------------------
   nn_dttrc      =  1        !  time step frequency for passive sn_tracers
   ln_top_euler  = .true.
   ln_rsttr      = .true.   !  start from a restart file (T) or not (F)
   nn_rsttr      =   2       !

   cn_trcrst_in  = "ORCA2_00017520_restart_trc"   !  suffix of pass. sn_tracer restart name (input)
   cn_trcrst_indir = "./restarts"           !  directory from which to read input passive tracer restarts
   cn_trcrst_out = "restart_trc"   !  suffix of pass. sn_tracer restart name (output)
   cn_trcrst_outdir = "./restarts"          !  directory to which to write output passive tracer restarts

So my questions are

  • 2 ) In my namelist, I set the nn_euler in &namrun to 1. Is it right?
    Do I have to change the value every time I restart?

  • 3 ) I want to initialise from a restart file for spin-up. So how do I set up the namelist for ln_tsd_init and ln_tsd_dmp in &namtsd ?

And please let me know if there are any corrections or comments on my namelist.

Thank you in advance.

Best regards,

Hwa-Jin Choi

Hi Hwa-Jin, Firstly, you only need to rebuild your restart files if you are changing your domain decomposition between job-steps (or simply want to have a global view of the model state). When you set a restart filename such as: ORCA2_00017520_restart_trc in the namelist, NEMO will first try to locate a ORCA2_00017520_restart_trc.nc file. If there is no such file, it will then try to open the distributed files:
ORCA2_00017520_restart_trc_XXXX.nc where XXXX is the zero-padded, 4-digit proc number.

However, if you do wish to change decomposition (i.e. run with a different number of MPI processes) or produce a combined restart for archive or analysis, then you will have to rebuild the files. The rebuild_nemo tool in tools/REBUILD_NEMO is the recommended way, But other tools are available. rebuild_nemo will rebuild the 2D and 3D spatial fields but an extra step is required to produce a full restart for the icebergs. First use rebuild_nemo to create an iceberg restart with its 2D fields and then use the tools/REBUILD_NEMO/icb_combrest.py to add the linked-list information that details all the live bergs. Comments in the python script summarise the action:

Basic iceberg trajectory restart post-processing python script.
This script collects iceberg information from the distributed restarts written out by each processing region and writes the information into a global restart file. The global restart file must already exist and contain the collated 2D spatial fields as prepared by utilities such as rebuild_nemo. This python script simply adds the iceberg position and state data that is held using the unlimited dimension 'n' which has been ignored by rebuild_nemo. Each processing region that contains icebergs will (probably) have a different number of icebergs (indicated by differing values for the current size of the unlimited dimension). This script collects all icebergs into a single unordered list.

nn_euler should always be 1 when starting from a restart. It is actually forced to zero when ln_rstart=F to enable starting from a climatology, so there are rarely reasons to change this setting.

If ln_rstart=F, you can set ln_tsd_init=T to enable the reading of initial T and S conditions. Just set the name of your restart and the name of the variables in the sn_tem and sn_sal structures. The default settings in the namelist_ref are for a 12-monthly climatology file. For a restart, with just one time-level, set the frequency to -12. and the time interpolation to .false. It should work.

Thank you very much for your answer.
Thanks to your comment, I rebuild iceberg restart using REBUILD_NEMO tool and icb_combrest.py.
Could you please check the settings in namtsd and namberg?
For restart, with one time level, time interpolation to .false., climatology to .false. and yearly are right?
And, I wish to use the iceberg restart file, do I need to set ln_use_calving to true ?
I checked the iceberg restart file and the value of the calving variable is 0… Is this right…?

!-----------------------------------------------------------------------
&namtsd        !    Temperature & Salinity Data  (init/dmp)             (default: OFF)
!-----------------------------------------------------------------------
   !                       ! =T  read T-S fields for:
   ln_tsd_init = .false.          !  ocean initialisation
   ln_tsd_dmp  = .false.          !  T-S restoring   (see namtra_dmp)

   cn_dir = './'     !  root directory for the T-S data location
   !___________!_________________________!___________________!___________!_____________!________!___________!__________________!__________!_______________!
   !           !  file name              ! frequency (hours) ! variable  ! time interp.!  clim  ! 'yearly'/ ! weights filename ! rotation ! land/sea mask !
   !           !                         !  (if <0  months)  !   name    !   (logical) !  (T/F) ! 'monthly' !                  ! pairing  !    filename   !
   sn_tem = 'ORCA2_00017520_restart',     -12.     ,'tn',   .false.    , .false. , 'yearly'  ,    ''    ,    ''    ,    ''
   sn_sal = 'ORCA2_00017520_restart',     -12.     ,'sn',   .false.    , .false. , 'yearly'  ,    ''    ,    ''    ,    ''
/
!-----------------------------------------------------------------------
&namberg       !   iceberg parameters                                   (default: OFF)
!-----------------------------------------------------------------------
   ln_icebergs = .true.    ! activate iceberg floats (force =F with "key_agrif")

   ln_use_calving          = .true. ! Use calving data even when nn_test_icebergs > 0

   cn_dir = './restarts'  !  root directory for the location of drag coefficient files
   !______!___________!___________________!______________!______________!_________!___________!__________!__________!_______________!
   !      ! file name ! frequency (hours) !   variable   ! time interp. !  clim   ! 'yearly'/ ! weights  ! rotation ! land/sea mask !
   !      !           !  (if <0  months)  !     name     !   (logical)  !  (T/F ) ! 'monthly' ! filename ! pairing  ! filename      !
   sn_icb =  'ORCA2_icebergs_00005840_restart',       -12.         , 'calving'    ,   .false.     , .false.  , 'yearly'  , ''       , ''       , ''
/

Please let me know if there are any corrections or comments on the namelist.

Thanks for you help,

Hwa-Jin Choi

For your namtsd settings, I think you need climatology=.true. otherwise NEMO will append a date string to the input filename. The content of that date string depends on the setting of yearly. In your case your filenames are already complete so set climatology=.true.

The calving file determines where and with what frequency calving events occur. In forced ocean mode, without a coupled ice-sheet model, that is a climatology which you should continue to apply throughout the run. You will find the total number of icebergs continues to increase over the first few years but it should eventually reach a state where icebergs numbers level off. Calving is not a continuous event so a zero value in the restart is not an issue. So long as your icebergs numbers are growing or being maintained then you must have calving events happening somewhere, some-when.

Thank you so much for letting me know in detail. :smile:

Cheers,

Hwa-Jin Choi