1 min read

Categories

Tags

Some tips for E3SM users about create new cases and modify the setups.

Create new cases

ELM-MOSART two way coupling at global 0.5 degree
./create_newcase --case XX/newcase --res ne30_oEC --compset IMCLM45 --project climate

after creating the case, adjusting some xml user settings

./xmlchange RUN_STARTDATE=1972-01-01,STOP_OPTION=nyears,STOP_N=2,CLM_BLDNML_OPTS="-bgc cn -crop -irrig .true.",CLM_CONFIG_OPTS="-phys clm4_5 -bgc cn -crop on",DATM_CLMNCEP_YR_ALIGN=1972,REST_N=1,JOB_WALLCLOCK_TIME=2:00:00,JOB_QUEUE=slurm
MOSART only at global 0.5 degree
./create_newcase --case XX/newcase --res hcru_hcru --compset RMGLB05 --project climate
MOSART only at NLDAS grid
./create_newcase --case XX/newcase --res NLDAS_NLDAS --compset RM --project climate

Change number of nodes of the job

Just modify the env_mach_pes.xml file right after creating a new case. To do it, change every value in NTASKS to -1.

Some modifications not included in the source code

  • in MOSARTinund_Core_MOD.F90
    ! override the negative Hydraulic radius
    elseif ( rr_ .eq. 0._r8 ) then
        ManningEq = 0._r8
    else      ! rr_ < 0
        write( iulog, * ) trim( subname ) // ' WARNING_TIAN: Hydraulic radius is negative !'
        ManningEq = 0._r8 ! Tian Dec 2017
        !call shr_sys_abort( trim( subname ) // ' ERROR: Hydraulic radius is negative !' )
    end if
    
  • in RtmMod.F90
if ( TUnit%areaTotal(n) .le. 0._r8 ) then
              write( iulog, * ) trim( subname ) // ' WARNING_TIAN: TUnit%areaTotal(n) <= 0 for n=', n
              TUnit%areaTotal(n) = 1           !! Tian 10/9/2017
              !call shr_sys_abort( trim( subname ) // ' ERROR: TUnit%areaTotal(n) <= 0 ')
end if

if ( TUnit%hslp(n) .LT. 0._r8 ) then
              write( iulog, * ) trim( subname ) // ' WARNING_TIAN: TUnit%hslp(n) < 0 for n=', n
              TUnit%hslp(n) = 0._r8              !! Tian 10/9/2017
              !call shr_sys_abort( trim( subname ) // ' ERROR: TUnit%hslp(n) < 0 ')
end if

if ( TUnit%tslp(n) .LT. 0._r8 ) then
              write( iulog, * ) trim( subname ) // ' WARNING_TIAN: TUnit%tslp(n) < 0 for n=', n
              TUnit%tslp(n) = 0._r8              !! Tian 10/9/2017
              !call shr_sys_abort( trim( subname ) // ' ERROR: TUnit%tslp(n) < 0 ')
end if
            
if ( TUnit%rslp(n) .LT. 0._r8 ) then
              write( iulog, * ) trim( subname ) // ' WARNING_TIAN: TUnit%rslp(n) < 0 for n=', n
              TUnit%rslp(n) = 0._r8              !! Tian 10/9/2017
              !call shr_sys_abort( trim( subname ) // ' ERROR: TUnit%rslp(n) < 0 ')
end if