NOTE: There have been DWD-internal intermediate versions 2.02a and 2.02a1 whose changes are part of the official realease 2.03.
The extra documentations for these versions should be also consulted!
Vertical adaptation of PBL profiles to COSMO orography for non-hydrostatic input models
Computation of pressure for non-hydrostatic input models
Ensemble mode for analysis files and new ensemble types
Re-formatting of the namelist output in 'OUTPUT'
New option for climatological height correction of deep soil temperatures
Removed clipping of T_S to -0.8 deg C for (partially) snow covered soil
Other bug fixes and technical changes
(by Ulrich Blahak)
New option for vertical adaptation of boundary layer profiles (T, u, v, w, rel. hum., hydrometeors) from the input orography to the COSMO orography in case of non-hydrostatic input models (COSMO, ICON, UM, CM): The new option can be selected by setting the new namelist parameter itype_profiles_vert_interp = 2 ("1" is the previous method, default is 2!) in /CONTRL/. This option changes the way in which profiles are extrapolated down into deeper valleys and "shortened" over higher mountains. In particular: - The dividing level below which the profiles are altered, is not the fixed model level at approx. 150 hPa AGL but is set to exactly 500 m AMGL ("Above Maximum Ground Level" = above the maximum of the input- and COSMO orographies). - The vertical gradients for T-, U-, and V- extrapolations right below the dividing level are not computed by a linear regression of the 4 points above the diding level, but are simply taken from the difference between 500 and 1000 m AMGL. For other quantities constant values are used for this extrapolation. The following methods or combinations of are used: - "Simple interpolation" (higher mountains): linear interpolation from intermediate profile - "Simple shift" (higher mountains): remove levels below 500 m AMGL as needed and shift PBL profile upwards so that values at 500 m from both sides match - "Gradient extrapol." (deeper valleys): linear extrapolation down from 500 m AMGL with the gradient between 1000 and 500 m AMGL to fill gap, shifting of original PBL-values to continuously match at 500 m AGL w.r.t. COSMO-oro - "Linear transition" (both for deeper valleys and higher mountains): linear transition from 500 m AMGL towards the surface so that surface values are conserved - "terrain following": the vertical velocity near the ground is further adapted in such a way that the flow is terrain-following at the surface and the terrain influence decreases with increasing distance from the COSMO-orography, using a decreasing weight up to a blending height of 4000 m AGL with a half-weight-height at about 750 m AGL. In particular, for the single fields in case of "deeper valleys in COSMO": - Generalized RH: "gradient extrapolation" + "linear transition" - T: "gradient extrapolation" - U, V: "gradient extrapolation" + "linear transition" - W: "gradient extrapolation" + "linear transition" + "terrain following blending" (see below) - Hyrom. + Tracers: "gradient extrapolation" + "linear transition" In particular, for the single fields in case of "higher mountains in COSMO": - Generalized RH: "simple interpolation" - T: "simple shift" - U, V: "simple interpolation" - W: "linear transition" + "terrain following" - Hyrom. + Tracers: "linear transition" - On top of this, slope-dependent PBL reduction for U, V, T, RH: The idea is that in mountaneous terrain, nightly stable boundary layers only persist at valley bottoms but not along steeper slopes because of katabatic winds. Normally, there are less slopes in the coarse models, associated with larger regions of pronounced PBL profiles, so in cases if COSMO has a considerably steeper slope, the PBL effects should be reduced. This is achieved by the following procedure: For heights below 500 m AMGL, slope- and HSURF-difference-dependent blending to "no-PBL-profile" (= extrapolated linear profile using the gradient 1000 m minus 500 m AGL). Slope-dependent blending starts at 10 % slope and ends at 20 %, but is reduced if coarse and COSMO-slopes are similar (|slope-difference| < 5 %). - Pressure is no longer interpolated but integrated vertically using the hydrostatic equation (has also been changed for the "previous" method, see below).
THIS CHANGES THE RESULTS FOR THE VERTICAL PROFILES OF T, U, V, W, QV, QC AND HYDROMETEORS.
(by Ulrich Blahak)
Corrected computation of pressure for nonhydrostatic input models (COSMO, ICON, UM, CM): Up to now, pressure deviation from the reference atmosphere was simply interpolated horizontally and vertically to the new COSMO grid simultaneously to temperature and moisture. Two problems are associated with this procedure: - First, the results of these interpolations violate the hydrostatic pressure balance, - Second, if the input and COSMO orography heights are different and vertical profiles have to be extrapolated down into deeper valleys or somehow reduced over mountains, this leads to further hydrostatic imbalance of the pressure field due to changes in the temperature- and moisture profiles. These problems contribute to the initial "noise" (sound-, gravity waves) in COSMO forecasts if the model starts from such an interpolated pressure field, particularly over mountaneous terrain. To mitigate these problems, the existing option "lbalance_pp=.TRUE." integrates the pressure respectively pressure deviation hydrostatically upwards based on the final COSMO T-, qv- and qc-profiles and leads to balanced values on the COSMO vertical grid. This integration starts at the surface with a surface pressure derived from the interpolated pressure deviation on the lowest main level. However, in case the profiles are extrapolated towards a lower COSMO orography, this pressure deviation is not consistent to the extrapolated temperature- and moisture profiles, so that the surface pressure and as a consequence the entire vertical pressure profile is erroneous, so that the initial noise in COSMO does not decrease significantly over mountaineous terrain by using this option. The following measureas are taken to improve the situation: 1) The option lbalance_pp is now always used (hardcoded to .TRUE.) and the namelist switch has been removed. This means that pressure is no longer interpolated but analytically computed. 2) The surface pressure on COSMO orography (the starting point for pressure integration) is still derived analytically from the pressure at lowest main level, but this pressure itself is now analytically integrated hydrostatically downwards from the level 500 m AMGL (see above) and using the final inter-/extrapolated profiles of T, qv and qc. Previously the interpolated PP was used for this, see above. 3) In the computation of surface pressure from the values at the lowest main level by the barometric height formula, the term dp0/rho0 has been replaced by g*dz, which is conceptually the same but the latter is more clean.
Mostly measure 2 leads to a large reduction of the initial noise over mountaineous terrain in COSMO runs that start from an interpolated analysis.
THIS CHANGES THE RESULTS FOR PRESSURE AND PRESSURE DEVIATION in case of the nonhydrostatic input models (COSMO, ICON, UM and CM)!
Added MESSy / MECO-n interface from Astrid Kerkweg. This interface is only active if compiled with the new preprocessor switches -DI2CINC ("INT2LM 2 COSMO in COSMO") -DMESSYTWOWAY (twoway-nesting of COSMO in ECHAM via MESSy -- MECO-n) Otherwise, the code is the same as before. The changes for this interface result from the fact that, for use in MESSY, INT2LM and COSMO are compiled and linked into one executable, and the ICON interpolation routines are called from the corresponding MESSY-interface in COSMO. NO CHANGE OF RESULTS!
Added the possibility to check/write ensemble meta data (EPS type, EPS member) also for the initial data, not only for boundary data. Along the lines of the already existing boundary ensemble mode, 5 new namelist parameters are available in the namelists /EPSCTL/ and /CONTRL/, see below. Added new ensemble types 1, 2, 3, 4 to the list of allowed localTypeOfEnsembleForecase. Is effective if leps_ana and/or leps_bc=.TRUE. and if checking for iepstyp_ana and/or iepstyp_bc on input (lchk_ana_typ and/or lchk_bc_typ = .TRUE.). NO CHANGE OF RESULTS!
Format of namelist parameter output (file OUTPUT) has been adapted for the namelist tool. NO CHANGE OF RESULTS!
New domain checking for ICON input: If debug level „high enough“, (idbg_level > 10), new ASCII output files „YUICON_COSMO_DOMAINS_[suv]“ are generated, showing the ICON- and overlapping COSMO domains as ASCII-ART geographic map. In case of not fully overlapping domains, a similar file „YUERROR_ICON_COSMO_DOMAINs_MISMATCH_[suv]“ is generated regardless of the debug leven and INT2LM stops with a corresponding error message. The generated ASCII-ART maps immediately show where the problem is located. Additionally, for ICONSUB generated data sets, the parameters of the rotated lat/lon grid are checked and additional diagnostic messages are generated. NO CHANGE OF RESULTS!
New switch "lmultlay_deepsoil_clim_hcorr" (logical, default: .TRUE.) to specify if blending to a climatological height correction of soil temperatures for deeper soil layers is desired. The normal method is to preserve the temperature differences to the lowest atmospheric temperature across the interpolation, and this method is then only applied in the upper soil levels with a decreasing weight with increasing depth. The climatological height correction is based on a constant temperature gradient of 0.007 K/m with respect to orography difference coarse minus fine levels. In this respect it is similar to the already existing option "lt_cl_corr" for the climatological deep-soil temperature t_cl in the old 2-layer soil model. IF SWITCHED ON, THIS CHANGES SOIL TEMPERATURE PROFILES FOR DEEPER LAYERS IN CASE OF MULTI-LAYER SOIL MODEL IN COSMO.
Previously the surface temperature T_S has been clipped to a maximum of -0.8 deg C for (partially) snow covered soil (W_SNOW > 0 and T_SNOW <= 2 deg C). However, this clipping propagates also down into the soil via conservation of vertical differences when computing the grid-mean soil temperatures and may cause artificial cold patches of soil in situations with very little snow cover. Clearly this is not appropriate. Also, if there is an insulating effect of the snow on soil temperature, it should already be contained in the input soil temperatures. Therefore, the artificial clipping has been removed. THIS CHANGES SOIL TEMPERATURE AND SURFACE TEMPERATURES FOR SNOW COVERED AREAS WHERE THE INPUT SOIL TEMPERATURE IS ABOVE -0.8 DEG C.
- Some missing deallocations of local fields, missing ierror=0 initializations. - Added REWIND(nuin) before reading a namelist from the file with the unit 'nuin'. This makes sure that the order of the namelists in the namelist file 'INPUT' does not play a role. - Added new preprocessor direcitve -DIOMSG_NOT_AVAIL for compilers which do not provide the IOMSG-mechanism for namelist reading (F2003-feature), such as NEC-SX or older versions of other vendors. See below for more explanations. NO CHANGE OF RESULTS! - Bugfix for computation soil temperatures in case of ICON input: Here the computation of the difference of the surface temperature to the uppermost soil temperature for the input data (which should be conserved to achieve a certain height correction for the soil temperatures to the LM surface heights) was done at the wrong place, so that effectively no height correction was done. This has been corrected. THIS CHANGES THE RESULTS FOR SURFACE TEMPERATURES T_SO IN THE INITIAL DATA SETS IN CASE OF ICON INPUT DATA. - Bugfix "src_decomposition.f90": corrected settings for nzbounds_X in case of east_add_in = 1, west_add_in = 1, etc. for climate model input ('CM'). These switches have to be set when COSMO is nested into a global model and the COSMO-domain crosses the date line or one of the poles. The bug however caused the setting of nzbounds to 0 also on interior processor domains, so that the processor grid was visible in the data and isolated point searches near processor domain borders could lead to crashes! Now nzbounds are reduced to 1 only at the outer domain boundaries. This fixes some reproducibility problems and problems with isolated points. THIS CHANGES THE RESULTS IN CASE OF 'CM' INPUT MODEL AND EAST_ADD_IN=1, WEST_ADD_IN=1, ETC. - Bugfix "src_read_coarse_grid.f90": added missing initialization of "record" in read_netcdf(). NO CHANGE OF RESULTS! - Bugfix "src_coarse_interpol.f90", SR "interpol_coarse_special_ec()": For IFS input (lec2lm), corrected the procedure to treat buggy IFS landpoints with negative soil moisture in interpol_coarse_special_ec(). This fixes also the problem of T_S becoming 0.0 at valid land points in the desert, where soil moisture is 0.0. OTHERWISE NO CHANGE OF RESULTS!
UB: Ulrich Blahak AK: Astrik Kerkweg HF: Helmut Frank BR: Burkhardt Rockel - data_epsctl.f90: ! Added iepsmem_ana, iepstot_ana, iepstyp_ana (UB) - data_fields_in.f90: ! Added MESSY interface enclosed in #IFDEF I2CINC (AK) - data_fields_lm.f90: ! Added MESSY interface enclosed in #IFDEF I2CINC (AK) - data_grid_in.f90: ! Added informations on ICONsub domains to type grid_for_icon. ! Added MESSY interface enclosed in #IFDEF I2CINC (AK) ! Added new namelist switch itype_profiles_vert_interp (UB) ! Added new namelist switch lmultlay_deepsoil_clim_hcorr (UB) - data_grid_lm.f90: ! Added MESSY interface enclosed in #IFDEF I2CINC (AK) - data_int2lm_control.f90: ! Added switch leps_ana to compute analysis in ensemble mode (UB) ! Added MESSY interface enclosed in #IFDEF I2CINC (AK) - data_int2lm_io.f90: ! Added MESSY interface enclosed in #IFDEF I2CINC (AK) - data_int2lm_parallel.f90: ! Added MESSY interface enclosed in #IFDEF I2CINC (AK) - external_data.f90: ! Added MESSY interface enclosed in #IFDEF I2CINC (AK) - icon_atmo_model.f90: ! Added keyword 'action' to the parameter lists of atmo_model_icon() and ! construct_atmo_model() and splitted construct_atmo_model() into two parts, ! action=='init' and action=='compute'. (UB) ! Added missing extra treatment of lum2lm and lcm2lm to llbc_smooth (UB) - icon_interp_utilities.f90: ! These routines are only needed on compute PEs, therefore replaced my_world_id ! by my_cart_id and icomm_world by icomm_cart. ! New subroutine print_domains_ascii_art() for a graphical ASCII-ART depiction ! of mismatching ICON- and COSMO-domains in the new output file(s) ! ERROR_ICON_COSMO_DOMAIN_MISMATCH_[suv].dat (for scalar, u- and v- points). ! Such a file is only produced in case there are COSMO grid points for which ! there is no enclosing ICON grid triangle. - icon_model_domain.f90: ! Initialization of string "icon_grid_type%h_uuid" with '<not checked>' ! in case of lcheck_uuidOfHGrid=.false. (UB) ! Added informations on ICONsub domains to type t_patch. Read them from ICON grid file ! into p_patch. (UB) ! All routines of this module are needed on compute PEs only, therefore replaced ! my_world_id by my_cart_id everywhere. (UB) - interp_utilities.f90: ! Added MESSY interface enclosed in #IFDEF I2CINC (AK) ! Added new tanh-like general blending function blendfunc() (UB) - io_utilities.f90: ! Added some tolerance to check_input_grid() in case of newer IFS grib1 ! input, because there the convention for longitudes seems to be ! 0 - 360 degrees, not -180 to 180 which it should be for grib1. ! Bugfix: added missing initialization of "record" in read_netcdf(). ! Some other cosmetic changes to read_netcdf(). - setup_int2lm.f90: ! Splitted atmo_model_icon() into two calls 'init' and 'compute'. ! Moved the calls to this routine to a ! later position, which is only executed on compute PEs. (UB) ! Added ICONSUB domain check. (UB) ! Added MESSY interface enclosed in #IFDEF I2CINC. (AK) - src_2d_fields.f90: ! Added time interpolation of fields for Kinne climatology. (UB, MS) ! Added MESSY interface enclosed in #IFDEF I2CINC (AK) ! Bugfix for computing soil temperatures for initial conditions in case of ICON input: ! Computation of dt_so_gl moved to src_icon_interpol.f90, because at the old position ! it had no effect at all on the surface temperature so that ! effectively no height correction for T_SO was done! (UB) ! Added blending to climatological height correction of soil temperature ! for deeper soil layers (new namelist switch lmultlay_deepsoil_clim_hcorr) (UB) ! Removed clipping of T_S to -0.8 deg C for (partially) snow covered soil, ! because such a clipping of the grid-mean T_S is not appropriate for partial ! snow cover and not needed for full snow cover, because the insulating effect ! of snow cover on soil temperature should already be contained in the input soil temperatures. (UB) - src_cleanup.f90: ! Added MESSY interface enclosed in #IFDEF I2CINC (AK) - src_coarse_interpol.f90: ! Added MESSY interface enclosed in #IFDEF I2CINC (AK) ! For IFS input (lec2lm), corrected the procedure to treat ! buggy IFS landpoints with negative soil moisture in interpol_coarse_special_ec(). ! This fixes also the problem of T_S becoming 0.0 at valid land points in the desert, ! where soil moisture is actually 0.0 (UB) - src_decomposition.f90: ! Added check_iconsub_domain() for ICONSUB generated domains. (UB) ! Added alternative domain check to decompose_coarse_grid () which ! allows large domains that cross the date line and have startlon < 0.0 at the ! same time. ! Added MESSY interface enclosed in #IFDEF I2CINC. (AK) ! Bugfix in decompose_cm() for nzbounds in case of east_add_in = 1, west_add_in = 1, etc. (UB) - src_gribtabs.f90: ! Added Nullifying of dummy pointers dum2 ... dum4 (AK, MM) ! Changed grib1 numbers of MACC aerosols (AERMRXX) from 100+i to 187+i (UB) - src_grids.f90: ! Added computation of lat_coarse_[muv], lon_coarse_[muv] in case of ICONSUB ! generated input files for domain check in SR check_iconsub_domain in ! src_decomposition.f90. (UB) ! Added MESSY interface enclosed in #IFDEF I2CINC (AK) - src_icon_interpol.f90: ! Added MESSY interface enclosed in #IFDEF I2CINC in a call to make_fn (AK) ! Corrected computation of surface pressure from lowest model level, ! because the old formulation using dp0/rho0 as g*dz is slightly inaccurate ! for the used type 2 of the reference atmosphere. ! Moved computation of dt_so_gl(:,:) from src_2d_fields.f90 to here as a bugfix. ! At the old position, it had no effect at all on the surface temperature, so ! that effectively no height correction T_SO was done! (UB) - src_lm_fields.f90: ! Added MESSY interface enclosed in #IFDEF I2CINC and #IFDEF MESSYTWOWAY. (AK) ! New switch lgrh (in normal int2lm always .TRUE.) to determine if grh ! should be used for moisture interpolation. Might be different in MESSY. (AK) ! Added option for linear vertical interpolation instead of cubic spline (UB) ! Bugfix initial value for nztau in vert_int_lm() and vert_z_lm() (UB) - src_lm_output.f90: ! Added grib metadata settings for initial condition ensemble (leps_ana=.TRUE.) ! along the lines of the boundary condition ensemble (leps_bc=.TRUE.). ! Not clear, if, for example, the 'localDefinitionNumber' should be ! the same or differnt. (UB) ! Added MESSY interface enclosed in #IFDEF I2CINC (AK) - src_namelists.f90: ! New namelist parameters leps_ana, iepsmem_ana, iepstot_ana, iepstyp_ana, lchk_ana_typ ! for initial conditions in analysis mode. (UB) ! Deactivated l_read_precalc for licon2lm. Not yet correctly implemented. (UB) ! Added MESSY interface enclosed in #IFDEF I2CINC (AK) ! Corrections for writing ALB_DIF and T_S on boundary files for climate version or netcdf output. (BR) ! Reading dimensions of external data field from netcdf file. (BR) ! Added new preprocessor direcitve -DIOMSG_NOT_AVAIL for compilers which do not provide the IOMSG-mechanism for namelist reading (F2003-feature), such as NEC-SX or older versions of other vendors. ! Removed lbalance_pp from namelist; the value is now always .TRUE. (UB) ! Added new namelist parameter itype_profiles_vert_interp (UB) ! Added new namelist switch lmultlay_deepsoil_clim_hcorr (UB) - src_read_coarse_grid.f90: ! Better error message in case of choosing too many model levels (UB) ! Added ensemble mode for initial data (leps_ana et al) (UB) ! Added MESSY interface enclosed in #IFDEF I2CINC (AK) ! MPI distribution of refatm parameters only for llm2lm and lget=.TRUE. (UB) ! Adaptions for saving some stack memory. ! Bugfix for reading GFS pressure level data: inhibit storing of data on levels ! that are not specified in namelist parameter "press_level" to avoid array ! bound violation. - src_read_ext.f90: ! Added possibility to read older ICON files where the name of the "cell" dimension ! is "ncells" instead. (HF) ! Added MESSY interface enclosed in #IFDEF I2CINC (AK) ! Check whether orographic filtering was already performed in producing the ! external data files (netcdf only) (BR) - src_read_hhl.f90: ! Added MESSY interface enclosed in #IFDEF I2CINC (AK) - src_vert_inter_lm.f90: ! Introduced some tolerance in the refatm check for COSMO input by using explicit ! decimal format in refatm_str instead of '*'. (UB) ! Added MESSY interface enclosed in #IFDEF I2CINC (AK) ! Corrected computation of surface pressure from lowest model level, ! because the old formulation using dp0/rho0 as g*dz is only strictly correct if ! lanalyt_calc_t0p0=.false. (UB) - clm_utilities.f90: ! New function (nc_get_dimlen) for determining the length of a dimension added
There are 7 additional namelist variables: /EPSCTL/ - iepsmem_ana (integer, default: -1) ID of the member in the ensemble of initial conditions (iepsmem_ana >= 0) - iepstyp_ana (integer, default: -1) ID of the initial conditions ensemble generation type (iepstyp_ana >= 0) - iepstot_ana (integer, default: 0) Total number of initial conditions ensemble members (iepstot_ana >= 0) - lchk_ana_typ (logical, default: .FALSE.) IF .TRUE., check ens member ID of input data (if leps_ana=.TRUE.) /CONTRL/ - leps_ana (logical, default: .FALSE.) To enable ensemble mode for analysis files, i.e., write ensemble meta data iepsmem_ana, iepstyp_ana, and iepstot_ana to the analyis file and enable the possibility of input checking by lchk_ana_typ=.TRUE. - itype_profiles_vert_interp (integer, default: 2) To choose the method for vertical adaptation of input profiles from the input orography to the COSMO orography, in case of non-hydrostatic input models (COSMO, ICON, UM, CM). "1" is the previous method, "2" is the new method. - lmultlay_deepsoil_clim_hcorr (logical, default: .TRUE.) To specify if blending to a climatological height correction of soil temperatures for deeper soil layers is desired. The normal method is to preserve the temperature differences to the lowest atmospheric temperature across the interpolation, and this method is then only applied in the upper soil levels with a decreasing weight with increasing depth. One parameter has been removed: /CONTRL/ - lbalance_pp (Internally it is set always to .TRUE. Now.)
There are 4 new preprocessor directives:
IOMSG_NOT_AVAIL
- If there are compilation problems with the Fortran2003 IOMSG-mechanism
(returning of detailed error messages for namelist reading), the use
of this feature may be turned off by setting "-DIOMSG_NOT_AVAIL" in
the compiler options.
However, for most compilers this problem can also be solved by switching
to a newer version and/or explicitly turning on the use of Fortran 2003 standard
by appropriate compiler options (consult the man-pages).
The only known exception to the author is the NEC-SX compiler, which does not provide this feature
even if the Fortran 2003 standard is enabled. In this case, "-DIOMSG_NOT_AVAIL"
is the only way out at the moment.
I2CINC
- For MESSy community:
This switch is needed if the source code of INT2LM should be integrated directly
in the COSMO code for use of the INT2LM interplation routines within COSMO,
which is the case in the MESSy framework.
MESSYTWOWAY
- For MESSy community: enable two-way online-coupling of COSMO in ECHAM.
ENABLE_LOCKFILES
- At some centers (e.g. MeteoSwiss), there are versions of mpe_io2.f90 which allow
the usage of lockfiles. This mechanism has been built in int2lm now, but is by
default not activated, so that compiling and linking against "normal" versions
of mpe_io2.f90 is still possible if -DENABLE_LOCKFILES is not specified in the compiler options.
Only if it is specified and if the local mpe_io2.f90 supports it, one can
set the new namelist switch llockfiles to .TRUE. and use the lock files mechanism. A version
of mpe_io.f90 that supports this mechanism is provided in the subdirectory „LOCAL“ of INT2LM.
There are changes of results for pressure and pressure perturbation in case of non-hydrostatic input models (COSMO, ICON, UM, CM). If the new option itype_profiles_vert_interp=2 is chosen, there are changes in the boundary layer profiles of T, u, v, w, qv and hydrometeors. There are changes of results for the soil temperatures in the initial data in case of ICON input, because of the now active height correction and in case of the new climatological soil temperature height correction for multi-layer soil model output. There are changes of the results of the surface- and soil temperatures for any input model at those (partially) snow-covered soil points where the input soil temperatures are warmer than -0.8 deg C, because the clipping to a maximum of -0.8 deg C at those points has been removed.