The physics in the IFS model is approximated to an idealized relaxation towards a radiative-convective equilibrium profile.
Radiation and Convection are parameterized as :
Q = -k(T-T_{eq}) |
where Q is the heating/cooling and k is the relaxation coefficient towards Radiative-Convective equilibrium (Held and Suarez, 1994; Wedi and Smolarkiewicz, 2009).
The changes to the OpenIFS scripts and source code to run the model are as follows:
It is important to correctly set the NAMELIST to configure the Held-Suarez testcase. The variables shown below need to be changed from normal forecast settings.
&NAEPHY LEPHYS=false, ! turns off all physics LERADI=false, ! ..and radiation &NAMPHY LREASUR=false, ! This may be needed to avoid reading surface fields. |
&NAMFPC NFPPHY=0, ! No surface fields in post-processing ! remove 133 from MFP3DF and MFP3DFP NFP3DFT=0, NFP3DFV=0, |
To activate, change these variables in the model dynamical core and control setup namelists:
&NAMDYNCORE LDYNCORE=true, ! the initial prognostic fields are set up in suspecg2 LHELDSUAREZ=true, ! the idealized simplified HS physics will be called under ec_phys_drv NTESTCASE=15, ! or anything large enough in order to go to the "else" case in ! suspecg2: flat orog, uniform surface pressure and no wind RU00_DYN=0., ! no wind RT00_DYN=315., RP00_DYN=100000., ! uniform pressure NOISEVOR=1, ! some noise to break the symmetry |
&NAMCT0 N3DINI=7, ! thermal profile to start HS case in suspecg2 NFRPOS = 1, ! post-processing output frequency; set to every timestep NPOSTS(0)=1, ! number of outputs NPOSTS(1)= xxx, ! the first output (array index '1') will be at time step xxx, ! to test you can try xxx= last time step of your run (NSTOP)). |
For more information on controlling the model output, see How to control OpenIFS output |
&NAMMCC LMCCEC = false, ! turn off updating of the boundary conditions, LMCCIEC = false, ! .. and their interpolation in time from the climatology files |
For more details about the action of these namelist variables, please see the namelist file in 'ifs/namelist' and it's corresponding module in 'ifs/module' (e.g. ifs/namelist/namct0.nam.h and ifs/module/yomct0.F90).
These changes relate to OpenIFS version 38r1. For later versions please check the code or contact openifs-support@ecmwf.int. |
Edit suphy.F90 and change line containing:
USE YOMDYNCORE, ONLY: LAQUA, LDYNCORE |
to
USE YOMDYNCORE, ONLY: LAQUA, LDYNCORE, LHELDSUAREZ |
and the line containing
LLDYN=LDYNCORE.AND.NOT.(LAQUA.OR.LHELDSUAREZ) |
to
LLDYN=LDYNCORE.AND.NOT.LAQUA |
Edit code in suspecg2.F90 (under K3DINI=7 in suspecg2)
ZPRESHX(0)=VAH(0)+VBH(0)*ZVP00 DO JLEV=NFLEVG,1,-1 ZPRESHX(JLEV)=VAH(JLEV)+VBH(JLEV)*ZVP00 ENDDO DO JLEV=1,NFLEVG DO JWORD=1,NGPTOT ZPRS=0.5_JPRB*(ZPRESHX(JLEV)+ZPRESHX(JLEV-1)) ZTLAT = 315._JPRB- RDELTA_T*SIN(GELAT(JWORD))**2 ZTALT = RDELTA_THETA * LOG(ZPRS/ZVP00)*COS(GELAT(JWORD))**2 ZT(JWORD,JLEV) = MAX ( 200._JPRB,& & (ZTLAT -ZTALT)*(ZPRS/ZVP00)**(RD/RCPD) ) ENDDO ENDDO |
You can use any initial files as initial conditions. The prognostic variables will be overwritten. The orography is flat. There is no initial mean wind, only perturbation in the vorticity to break the symmetry.
Held I, Suarez M. 1994. A proposal for the intercomparison of the dynamical cores of atmospheric general circulation models. Bull. Am. Meteorol. Soc. 73: 1825–1830.
Wedi, N. P. and Smolarkiewicz, P. K. (2009), A framework for testing global non-hydrostatic models. Q.J.R. Meteorol. Soc., 135: 469–484. doi:10.1002/qj.377
Fig. 1 : Zonal mean wind field from a 1500 day long model run for the Held-Suarez testcase. The model fields are averaged for the last 1000 days.
Fig. 2 : Zonal mean temperature field from a 1500 day long model run for the Held-Suarez testcase. The model fields are averaged for the last 1000 days.
Acknowledgement
<script type="text/javascript" src="https://software.ecmwf.int/issues/s/en_UKet2vtj/787/12/1.2.5/_/download/batch/com.atlassian.jira.collector.plugin.jira-issue-collector-plugin:issuecollector/com.atlassian.jira.collector.plugin.jira-issue-collector-plugin:issuecollector.js?collectorId=5fd84ec6"></script> |