5 Restart Simulation

The following scripts are provided by the author to restart a WRF-CTSM simulation. This procedure is experimental and not officially documented by the CTSM or WRF development teams; therefore, it comes without any guarantee. Please check the conversation on the WRF-CSTM restart issue.

5.1 Set CTSM Restart

Modify lnd_in

  • Change initial data

    • From:

       finidat = '/work/n02/n02/yuansun/cesm/cesm_inputdata/lnd/clm2/initdata_esmf/ctsm5.3/clmi.f19_interp_from.I1850Clm50BgcCrop-ciso.1366-01-01.0.9x1.25_gx1v7_simyr1850_c240223.nc'
      
    • To:

      nrevsn = '/work/n02/n02/yuansun/wrf/runs/wrf_GM3d/configuration/CTSM/input/restart_/ctsm_lilac0.clm2.r.2022-03-10-00000.nc'
      
  • Turn off interplotation

    • From:

      use_init_interp = .true.
      
    • To:

      use_init_interp = .false.
      

Modify lilac_in

  • change caseid to be different from the previous simulation

    • From:

      caseid = 'ctsm_lilac'
      
    • To:

      caseid = 'ctsm_lilac1'
      

Manipulate Restart Data

  • In case we want to restart based on wrfrst_d01_2022-03-04_00:00:00, we need to change the time for *.clm2.r.* and *.lilac.r.* .

    export RESTART_DATE="2022-03-10"
    export start_ymd=20220310
    
    ncap2 -O -s "timemgr_rst_start_ymd=${start_ymd}; timemgr_rst_ref_ymd=${start_ymd}" ${PREV_RESTART_DIR}${PREV_LILAC_NAME}.clm2.r.${RESTART_DATE}-00000.nc ${runs_ctsm}/input/restart_${NUM_RESTART}/${PREV_LILAC_NAME}.clm2.r.${RESTART_DATE}-00000.nc
    
    ncap2 -O -s "start_ymd=${start_ymd}" ${PREV_RESTART_DIR}${PREV_LILAC_NAME}.lilac.r.${RESTART_DATE}-00000.nc ${runs_ctsm}/input/restart_${NUM_RESTART}/${PREV_LILAC_NAME}.lilac.r.${RESTART_DATE}-00000.nc
    

5.2 Run real.exe

  • Modify namelist.input by setting start_ to the restart time.

  • Use real.exe to generate a new wrfbdy.d01 and wrfinput.d01 aligning with the restart time.

5.3 Run WRF-CTSM Restart Simulation

  • Modify namelist.input to inform a restart simulation

    • From:

      restart                             = .false.,
      
    • To:

      restart                             = .true.,
      
  • In the job scripyt, add the modified lnd_in, lilac_in, *clm2.r.*, *.lilac.r.* as well as repointer file into the case run directory

    ln -sf ${PREV_RESTART_DIR}rpointer.lilac .
    ln -sf ${PREV_RESTART_DIR}rpointer.lnd.${RESTART_DATE}-00000 ./rpointer.lnd
    ln -sf ${runs_ctsm}/input/restart_${NUM_RESTART}/${PREV_LILAC_NAME}.clm2.r.${RESTART_DATE}-00000.nc .
    ln -sf ${runs_ctsm}/input/restart_${NUM_RESTART}/${PREV_LILAC_NAME}.lilac.r.${RESTART_DATE}-00000.nc .