- Created by Glenn Carver, last modified on Mar 29, 2016
Introduction
The Held-Suarez test case is a well known benchmark for evaluating the dynamical cores of atmospheric models (see references at end). It uses a flat earth with simple Newtonian relaxation of the temperature field to a zonally symmetric state and Rayleigh damping of the low-level winds to represent boundary-layer friction.
The text below explains how to initialize OpenIFS for this idealized case. It assumes the model will be spun up from rest.
Model Physics
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).
Configuration
The changes to the OpenIFS namelist and source code to run the model are as follows:
Changes to the Namelist variables:
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
&NAMFPC NFPPHY=0, ! No surface fields in post-processing ! remove 133 from MFP3DF and MFP3DFP NFP3DFT=0, NFP3DFV=0,
Activate Held-Suarez testcase
Namelists
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 Held-Suarez physics will be called under ec_phys_drv NTESTCASE=15, ! flat orog, uniform surface pressure and no wind; or anything large enough ! in order to go to the "else" case in suspecg2.F90 RU00_DYN=0., ! initial idealized zonal wind; no wind initially RT00_DYN=315., ! initial idealized temperature (K) RP00_DYN=100000., ! initial idealized pressure; uniform pressure NOISEVOR=1, ! some noise to break the symmetry
NTESTCASE
is used in ifs/setup/suspecg2.F90
to essentially set the initial orography to zero and a constant surface pressure. A large value is selected to ensure the code goes into the ELSE clauses and avoids the other test cases. Other orography configurations are possible but the code must be checked as there is some interaction between the NTESTCASE
and N3DINI
variables.
&NAMCT0 N3DINI=7, ! thermal profile to start Held-Suarez 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 surface forcing boundary conditions, LMCCIEC = false, ! .. and their interpolation in time from the climatology files &NAMPHY LREASUR=false, ! This may be needed to avoid reading surface fields.
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).
Changes to code
These changes relate to OpenIFS version 38r1. For later versions please check the code or contact openifs-support@ecmwf.int.
(a) Edit ifs/setup/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
to
LLDYN=LDYNCORE.AND.NOT.(LAQUA.OR.LHELDSUAREZ)
to ensure that routine SUPHEC is called for the simplified Held-Suarez physics (this is a bug in OpenIFS 38r1).
(b) Check the code in ifs/setup/suspecg2.F90 (under K3DINI=7 in suspecg2: line 1049 onwards) and edit if necessary. In some versions of OpenIFS, the temperature profile (under K3DINI=7 in suspecg2) is different from what was prescribed in the original paper (same profile as at pole everywhere). The code below is used to go back to the original profile. This corrects the initial fields:
ELSEIF ( K3DINI == 7 ) THEN ! code changes ZPRESHX(0)=YRVAB%VAH(0)+YRVAB%VBH(0)*ZVP00 DO JLEV=NFLEVG,1,-1 ZPRESHX(JLEV)=YRVAB%VAH(JLEV)+YRVAB%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 ! end of code changes CALL REESPE(NFLEVL,NFLEVG,ZTEMP,ZT) WRITE (0,*) ' ROUTINE SUSPECG2, DYNAMICAL CORE' ,& &' TEMPERATURE SET TO ',ZTEMP(1,1),ZT(1,1),YRGSGEOM_NB%GEMU(1) ELSE
where:
RDELTA_T - Held-Suarez test: pole - equator temperature difference RDELTA_THETA - Held-Suarez test: tropical heating differential
Other parameters that change the Held-Suarez configuration are defined in yomdyncore.F90
.
Initial conditions
You can use any initial files as initial conditions. The initial file in this case is only used to set the model's horizontal and vertical resolution. The prognostic variables read from the file will be overwritten by the code in suspecg2. The orography is flat. There is no initial mean wind, only perturbation in the vorticity to break the symmetry. It may be possible to start from a real case to accelerate convergence towards a real climate, in which case there is no need to use the NOISEVAR variable. However, it can be tricky to keep the model stable at the start. The easiest approach is to start from no wind and run long enough (about a year) until the model reaches an equilibrium.
References
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
Acknowledgements
OpenIFS would like to thanks Aneesh Subramanian (University of Oxford) and Sylvie Malardel (ECMWF) for their contribution in preparing this material.
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. The model was run at T159 spectral resolution.
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. The model was run at T159 spectral resolution.