Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
A
autoicon
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
w2w
autoicon
Commits
1c738b7a
Commit
1c738b7a
authored
1 year ago
by
Takumi.Matsunobu
Browse files
Options
Downloads
Patches
Plain Diff
Update namelist change
parent
0bd7cb36
No related branches found
Branches containing commit
No related tags found
No related merge requests found
Pipeline
#19103
canceled
1 year ago
Stage: run_tests
Changes
2
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
namelists/real-from-d2-ana/icon_atmosphere.namelist
+348
-0
348 additions, 0 deletions
namelists/real-from-d2-ana/icon_atmosphere.namelist
templates/real-from-d2-ana/prepare_namelist.py
+30
-20
30 additions, 20 deletions
templates/real-from-d2-ana/prepare_namelist.py
with
378 additions
and
20 deletions
namelists/real-from-d2-ana/icon_atmosphere.namelist
+
348
−
0
View file @
1c738b7a
¶llel_nml
nproma = 32
/
&run_nml
num_lev = 65
lvert_nest = .false. ! use vertical nesting if a nest is active
dtime = 20 ! timestep in seconds
ldynamics = .true. ! dynamics
ltransport = .true.
iforcing = 3 ! NWP forcing
lart = .false. ! ICON-ART main switch
ltestcase = .false. ! false: run with real data
msg_level = 20 ! default: 5, much more: 20
ltimer = .true. ! set .true. for detailed timer output
timers_level = 1 ! can be increased up to 10 for detailed timer output
ntracer = 5
check_uuid_gracefully = .true.
output = "nml"
ldass_lhn = .False.
debug_check_level = 1
/
&grid_nml
dynamics_parent_grid_id = 0
dynamics_grid_filename = 'icon_grid_0047_R19B07_L.nc'
radiation_grid_filename = 'icon_grid_0046_R19B06_LR.nc',
lredgrid_phys = .true.
l_limited_area = .true.
/
&nwp_phy_nml
inwp_psp = 1 ! PSP scheme 0(turn off) 1(turn one) 2(turn on with non-D wind pert)
psp_scale = 5.0 ! scaling factor for stochastic perturbations scheme
psp_rnd_seed = 31
psp_apply_ddt_core = .False. ! True if vertical wind perturbations should be applied at the explicit dynamical core timestep
inwp_gscp = 4 ! 1: default, 2: graupel scheme for convection-permitting scales
ccn_type_gscp4 = 8 ! CB new namelist parameter:
ccn_type_gscp5 = 8 ! CB new namelist parameter:
!6: 100 maritime, 7: 500 intermediate, 8: 1700 continental, 9: 3200 polluted continental
cloudnue_value = 0 ! CB new namelist parameter for shape parameter (nu) of CDSD:
! -> cloud_cosmo5 (mu=1/3): 0 (REF), 1, 2, 4, 8
! -> cloud_nue1mue1 (mu=1): 1 (REF), 2, 4, 8
mu_rain = 0.5 ! new tuning becoming operational in July 2018
rain_n0_factor = 0.1 ! "
inwp_convection = 1
lshallowconv_only = .true.
inwp_radiation = 1
inwp_cldcover = 1 ! 0: no cld, 1: new diagnostic, 3: COSMO, 5: grid scale
inwp_turb = 1
inwp_satad = 1
inwp_sso = 1
inwp_gwd = 0
inwp_surface = 1
icapdcycl = 3 ! CAPE modification, improve diurnal cycle over tropical land
latm_above_top = .true.
efdt_min_raylfric = 7200.
itype_z0 = 2 ! 1: default, 2: turn off SSO part of z0
icpl_aero_conv = 1
icpl_aero_gscp = 0
icpl_o3_tp = 1
dt_conv = 120
dt_rad = 720
dt_sso = 120
dt_gwd = 120
ldetrain_conv_prec = .true. ! .true. should be used in R03B08 EU-nest only
lrtm_filename = 'rrtmg_lw.nc'
cldopt_filename = 'ECHAM6_CldOptProps.nc'
/
&turbdiff_nml
tkhmin = 0.5 ! new default since rev. 16527
tkmmin = 0.75 !
tkmmin_strat = 4
pat_len = 750.
c_diff = 0.2
rat_sea = 7.0 ! operational since May 2017
ltkesso = .true.
frcsmot = 0.2 ! these 2 switches together apply vertical smoothing of the TKE source terms
imode_frcsmot = 2 ! in the tropics (only), which reduces the moist bias in the tropical lower troposphere
itype_sher = 2
ltkeshs = .true.
a_hshr = 2.0
alpha0 = 0.0123
alpha0_max = 0.0335 ! Charnock parameter tuning
alpha1 = 0.75
icldm_turb = 2 ! ** new recommendation for v2.0.15 in conjunction with evaporation fix for grid-scale rain **
tur_len = 300.
q_crit = 2.0
imode_tkesso = 2
/
&radiation_nml
irad_o3 = 79
irad_aero = 6
albedo_type = 2 ! 1: default, 2: MODIS
vmr_co2 = 390.e-06 ! values representative for 2012
vmr_ch4 = 1800.e-09
vmr_n2o = 322.0e-09
vmr_o2 = 0.20946
vmr_cfc11 = 240.e-12
vmr_cfc12 = 532.e-12
/
&nonhydrostatic_nml
iadv_rhotheta = 2
ivctype = 2
itime_scheme = 4
exner_expol = 0.333
vwind_offctr = 0.2
damp_height = 12500.
rayleigh_coeff = 5.0
lhdiff_rcf = .true.
divdamp_fac = 0.004 ! factor 8 iff divdamp_order=2 !!!
divdamp_order = 24 ! use 24 for forecast, 2 for IAU
divdamp_type = 32 ! (3): 2 for assimilation cycle
divdamp_trans_start = 12500. ! use 2500. in assimilation cycle
divdamp_trans_end = 17500. ! use 5000. in assimilation cycle
ndyn_substeps = 5
l_open_ubc = .false.
igradp_method = 3
l_zdiffu_t = .true.
thslp_zdiffu = 0.02
thhgtd_zdiffu = 125.
htop_moist_proc = 22500.
hbot_qvsubstep = 22500 ! revised (to avoid too large CFL)
/
&sleve_nml
min_lay_thckn = 20.
max_lay_thckn = 25000.
htop_thcknlimit = 15000. ! 15 km is the default
top_height = 22000.
stretch_fac = 0.65
decay_scale_1 = 4000.
decay_scale_2 = 2500.
decay_exp = 1.2
flat_height = 16000.
/
&dynamics_nml
iequations = 3
idiv_method = 1
divavg_cntrwgt = 0.50
lcoriolis = .true.
/
&transport_nml
ctracer_list = '12345'
ivadv_tracer = 3,3,3,3,3
itype_hlimit = 3,4,4,4,4
ihadv_tracer = 52,2,2,2,2
/
&diffusion_nml
hdiff_order = 5
itype_vn_diffu = 1
itype_t_diffu = 2
hdiff_efdt_ratio = 24. ! 24.0 for R2B6; recommendation for R3B7: 30.0
hdiff_smag_fac = 0.025 ! 0.025 for R2B6; recommendation for R3B7: 0.02
lhdiff_vn = .true.
lhdiff_temp = .true.
/
&interpol_nml
nudge_zone_width = 10
nudge_max_coeff = 0.075
lsq_high_ord = 3
l_intp_c2l = .true.
l_mono_c2l = .true.
support_baryctr_intp = .false.
/
&gridref_nml
grf_intmethod_e = 6
grf_intmethod_ct = 2
grf_tracfbk = 2
denom_diffu_v = 150.
/
&nwp_tuning_nml
itune_albedo = 1 ! somewhat reduced albedo (w.r.t. MODIS data) over Sahara
tune_gkdrag = 0.0
tune_gkwake = 0.25
tune_gfrcrit = 0.333
tune_gust_factor = 7.25
tune_dust_abs = 1.
tune_zvz0i = 1.25 ! new tuning since June 2018
tune_box_liq_asy = 3.5 ! new tuning becoming operational in July 2018
tune_minsnowfrac = 0.3
tune_sgsclifac = 1.0 ! new tuning becoming operational in July 2019
/
&extpar_nml
! extpar_filename = 'icon_extpar_0044_R19B07_L_20180625_tiles.nc'
itype_vegetation_cycle = 1 !operational using 2(ihan)
itopo = 1
n_iter_smooth_topo = 1,1
heightdiff_threshold = 2250.
hgtdiff_max_smooth_topo = 750.,750.,
read_nc_via_cdi = .true.
/
&lnd_nml
ntiles = 3
lmulti_snow = .false.
itype_heatcond = 3
idiag_snowfrac = 20
itype_snowevap = 2
lsnowtile = .true. !.false.
lseaice = .true.
llake = .true.
lprog_albsi = .true.
itype_lndtbl = 4
itype_root = 2
itype_evsl = 4
itype_trvg = 3 ! operational since 14 March 2018, requires FG cycling of EVAP_PL (internal name plantevap)
cwimax_ml = 5.e-4
c_soil = 1.25
c_soil_urb = 0.5
sstice_mode = 2 ! requires extpar >= 20170202
/
&limarea_nml
itype_latbc = 1
latbc_filename = './icbc/M031/latbc_<dddhh>.grib'
latbc_boundary_grid = 'icon_grid_0047_R19B07_L_lbc.nc'
dtime_latbc = 10800 !3600
init_latbc_from_fg = .true.
latbc_varnames_map_file = 'map_file.latbc'
/
&initicon_nml
init_mode = 5 ! 1: operation mode, 5: IAU, 6: 5+sma_inc
dt_iau = 600 ! Window for incr.analysis update
dt_shift = -300 ! Offset for incr.analysis update
type_iau_wgt = 1 ! IAU weighting function (const.)
iterate_iau = .true. ! iterate IAU cycle with one-sided and centered windows
zpbl1 = 500.
zpbl2 = 1000.
lread_ana = .true. ! (T) Read dwdana
lp2cintp_incr = .false. ! parent-to-child-interpolation
lp2cintp_sfcana = .false. ! of analyses (.false. for DET!)
dwdfg_filename = 'icbc/M031/fc.grib'
! lread_ana = .False.
dwdana_filename = 'icbc/M031/an_inc.grib'
ana_varnames_map_file = 'map_file.ana'
! check_ana(1)%list = 'P','QV','T','U','V'
! check_ana(2)%list = 'FRESHSNW','H_SNOW'
ltile_coldstart = .false. ! intermediate mode until tile-based I/O is available
ltile_init = .false.
use_lakeiceana = .false.
qcana_mode = 2 ! (0) no QC-increments,
qiana_mode = 1 ! 0/1: ignore/use QI increments
qrsgana_mode = 1 ! 0/1: ignore/use QR,QS,QG increments
/
&ensemble_pert_nml
use_ensemble_pert = .true.
itype_pert_gen = 2
timedep_pert = 2
/
&gribout_nml
perturbationNumber = 9
/
! ----------------------------------------------- !
! --- ICON-D2: output fields - regular grid at pressure levels --- !
! -----------------------------------------------
&output_nml
filetype = 4
output_time_unit = 1 ! 1: seconds
file_interval = 'PT3600S'
output_interval = 'PT3600S'
output_start = '#OUTPUT_START#'
output_end = '#OUTPUT_END#'
steps_per_file = 1
taxis_tunit = 2
mode = 1 ! 1: forecast mode (relative t-axis), 2: climate mode (absolute t-axis)
include_last = .true.
output_filename = 'idfrf' ! file name base
filename_format = 'output/<output_filename><ddhhmmss><levtype>'
remap = 1,
reg_def_mode = 1
north_pole = -170.0,40.0
reg_lon_def = -7.5, 0.02, 5.5
reg_lat_def = -6.3, 0.02, 8.0
pl_varlist = 'geopot','temp','THETA_V','U','V','W','RH','TKE','QV','QC','QR','RHO'
p_levels = 95000., 85000., 50000., 25000.,
output_grid = .false.
/
! ----------------------------------------------- !
! --- ICON-D2: output fields - regular grid at model levels --- !
! -----------------------------------------------
&output_nml
filetype = 4
output_time_unit = 1 ! 1: seconds
file_interval = 'PT3600S'
output_interval = 'PT3600S'
output_start = '#OUTPUT_START#'
output_end = '#OUTPUT_END#'
steps_per_file = 1
taxis_tunit = 2
mode = 1 ! 1: forecast mode (relative t-axis), 2: climate mode (absolute t-axis)
include_last = .true.
output_filename = 'idfrf' ! file name base
filename_format = 'output/<output_filename><ddhhmmss><levtype>'
remap = 1,
reg_def_mode = 1
north_pole = -170.0,40.0
reg_lon_def = -7.5, 0.02, 5.5
reg_lat_def = -6.3, 0.02, 8.0
ml_varlist = 'CAPE_ML', 'CIN_ML','tqc','tqv','tqr','tqi','tqs','tqg','tqh','pres_msl','pres_sfc','T_2m','U_10m','V_10m','TOT_PREC','CLDEPTH','CLCT_MOD','HZEROCL','TMIN_2M','TMAX_2M','dbz_cmax', !,'group:pbl_vars'
output_grid = .false.
/
! ----------------------------------------------- !
! --- ICON-D2: PSP output fields - regular grid at model levels --- !
! -----------------------------------------------
&output_nml
filetype = 4
output_time_unit = 1 ! 1: seconds
file_interval = 'PT3600S'
output_interval = 'PT3600S'
output_start = '#OUTPUT_START#'
output_end = '#OUTPUT_END#'
steps_per_file = 1
taxis_tunit = 2
mode = 1 ! 1: forecast mode (relative t-axis), 2: climate mode (absolute t-axis)
include_last = .true.
output_filename = 'idfrf' ! file name base
filename_format = 'output/<output_filename><ddhhmmss><levtype>_psp'
remap = 1,
reg_def_mode = 1
north_pole = -170.0,40.0
reg_lon_def = -7.5, 0.02, 5.5
reg_lat_def = -6.3, 0.02, 8.0
! ml_varlist = 'group:psp',
output_grid = .false.
/
This diff is collapsed.
Click to expand it.
templates/real-from-d2-ana/prepare_namelist.py
+
30
−
20
View file @
1c738b7a
...
@@ -35,9 +35,11 @@ Chunk_START_DATE = datetime(year=int(START_YEAR), month=int(START_MONTH), day=in
...
@@ -35,9 +35,11 @@ Chunk_START_DATE = datetime(year=int(START_YEAR), month=int(START_MONTH), day=in
Chunk_END_DATE
=
datetime
(
year
=
int
(
END_YEAR
),
month
=
int
(
END_MONTH
),
day
=
int
(
END_DAY
),
hour
=
int
(
END_HOUR
))
Chunk_END_DATE
=
datetime
(
year
=
int
(
END_YEAR
),
month
=
int
(
END_MONTH
),
day
=
int
(
END_DAY
),
hour
=
int
(
END_HOUR
))
# Read first-guess and analysis filenames from files:
# Read first-guess and analysis filenames from files:
first_guess_filename
=
(
RUNDIR
/
f
"
fc_R19B07.
{
(
Chunk_START_DATE
-
timedelta
(
minutes
=
5
)).
strftime
(
'
%Y%m%d%H%M
'
)
}
00_an.
{
MEMBER
[
1
:
]
}
"
)
first_guess_filename
=
(
analysis_filename
=
(
RUNDIR
/
f
"
an_R19B07.
{
Chunk_START_DATE
.
strftime
(
'
%Y%m%d%H%M
'
)
}
00_an.
{
MEMBER
[
1
:
]
}
"
)
RUNDIR
/
f
"
fc_R19B07.
{
(
Chunk_START_DATE
-
timedelta
(
minutes
=
5
)).
strftime
(
'
%Y%m%d%H%M
'
)
}
00_an.
{
MEMBER
[
1
:
]
}
"
analysis_inc_filename
=
(
RUNDIR
/
f
"
an_R19B07.
{
Chunk_START_DATE
.
strftime
(
'
%Y%m%d%H%M
'
)
}
00_inc.
{
MEMBER
[
1
:
]
}
"
)
)
analysis_filename
=
RUNDIR
/
f
"
an_R19B07.
{
Chunk_START_DATE
.
strftime
(
'
%Y%m%d%H%M
'
)
}
00_an.
{
MEMBER
[
1
:
]
}
"
analysis_inc_filename
=
RUNDIR
/
f
"
an_R19B07.
{
Chunk_START_DATE
.
strftime
(
'
%Y%m%d%H%M
'
)
}
00_inc.
{
MEMBER
[
1
:
]
}
"
# Read custom namelist parameters from configuration
# Read custom namelist parameters from configuration
atmosphere_namelist_string
=
"""
atmosphere_namelist_string
=
"""
...
@@ -53,29 +55,38 @@ checkpoint_time = int((Chunk_END_DATE - Chunk_START_DATE).total_seconds())
...
@@ -53,29 +55,38 @@ checkpoint_time = int((Chunk_END_DATE - Chunk_START_DATE).total_seconds())
# TODO: Is that really necessary?
# TODO: Is that really necessary?
# Add 10 minutes to allow the model to write the restarts
# Add 10 minutes to allow the model to write the restarts
#Chunk_END_DATE = Chunk_END_DATE + timedelta(minutes=10)
#
Chunk_END_DATE = Chunk_END_DATE + timedelta(minutes=10)
atmosphere_namelist_replacements
=
{
atmosphere_namelist_replacements
=
{
"
time_nml
"
:
{
"
time_nml
"
:
{
"
dt_restart
"
:
checkpoint_time
},
"
dt_restart
"
:
checkpoint_time
"
io_nml
"
:
{
"
dt_checkpoint
"
:
checkpoint_time
},
},
"
io_nml
"
:
{
"
dt_checkpoint
"
:
checkpoint_time
},
"
grid_nml
"
:
{
"
grid_nml
"
:
{
"
dynamics_grid_filename
"
:
"
%simulation.dynamics_grid_filename%
"
,
"
dynamics_grid_filename
"
:
"
%simulation.dynamics_grid_filename%
"
,
"
radiation_grid_filename
"
:
"
%simulation.radiation_grid_filename%
"
,
"
radiation_grid_filename
"
:
"
%simulation.radiation_grid_filename%
"
,
},
},
"
extpar_nml
"
:
{
"
extpar_nml
"
:
{
"
extpar_filename
"
:
"
%simulation.external_parameters_filename%
"
,
"
extpar_filename
"
:
"
%simulation.external_parameters_filename%
"
,
},
},
"
initicon_nml
"
:
{
"
initicon_nml
"
:
{
"
dwdfg_filename
"
:
first_guess_filename
,
"
dwdfg_filename
"
:
first_guess_filename
,
"
dwdana_filename
"
:
analysis_filename
,
"
dwdana_filename
"
:
analysis_inc_filename
,
}
},
"
limarea_nml
"
:
{
"
latbc_filename
"
:
"
./icbc/M031/latbc_<dddhh>.grib
"
,
"
latbc_boundary_grid
"
:
"
icon_grid_0047_R19B07_L_lbc.nc
"
,
},
"
nwp_phy_nml
"
:
{
"
psp_rnd_seed
"
:
int
(
MEMBER
[
1
:]),
"
psp_apply_ddt_core
"
:
'
.False.
'
,
# True if vertical wind perturbations should be applied at the explicit dynamical core timestep
"
inwp_gscp
"
:
4
,
# 1: default, 2: graupel scheme for convection-permitting scales
"
ccn_type_gscp4
"
:
8
,
# CB new namelist parameter:
"
ccn_type_gscp5
"
:
8
,
# CB new namelist parameter:
# 6: 100 maritime, 7: 500 intermediate, 8: 1700 continental, 9: 3200 polluted continental
"
cloudnue_value
"
:
0
,
# CB new namelist parameter for shape parameter (nu) of CDSD:
# -> cloud_cosmo5 (mu=1/3): 0 (REF), 1, 2, 4, 8
# -> cloud_nue1mue1 (mu=1): 1 (REF), 2, 4, 8
},
}
}
master_namelist_replacements
=
{
master_namelist_replacements
=
{
...
@@ -85,7 +96,7 @@ master_namelist_replacements = {
...
@@ -85,7 +96,7 @@ master_namelist_replacements = {
"
master_time_control_nml
"
:
{
"
master_time_control_nml
"
:
{
"
experimentStartDate
"
:
Chunk_START_DATE
.
strftime
(
date_format
),
"
experimentStartDate
"
:
Chunk_START_DATE
.
strftime
(
date_format
),
"
experimentStopDate
"
:
Chunk_END_DATE
.
strftime
(
date_format
),
"
experimentStopDate
"
:
Chunk_END_DATE
.
strftime
(
date_format
),
}
}
,
}
}
...
@@ -142,7 +153,7 @@ def main():
...
@@ -142,7 +153,7 @@ def main():
print
(
"
Patched atmosphere namelist:
"
)
print
(
"
Patched atmosphere namelist:
"
)
print
(
atmosphere_namelist
)
print
(
atmosphere_namelist
)
atmosphere_output_namelist
=
(
RUNDIR
/
"
icon_atmosphere.namelist
"
)
atmosphere_output_namelist
=
RUNDIR
/
"
icon_atmosphere.namelist
"
f90nml
.
write
(
nml
=
atmosphere_namelist
,
nml_path
=
atmosphere_output_namelist
.
as_posix
(),
force
=
True
)
f90nml
.
write
(
nml
=
atmosphere_namelist
,
nml_path
=
atmosphere_output_namelist
.
as_posix
(),
force
=
True
)
master_namelist
=
f90nml
.
read
(
MASTER_NAMELIST_PATH
.
as_posix
())
master_namelist
=
f90nml
.
read
(
MASTER_NAMELIST_PATH
.
as_posix
())
...
@@ -156,10 +167,9 @@ def main():
...
@@ -156,10 +167,9 @@ def main():
master_namelist
.
patch
(
master_custom_namelist
)
master_namelist
.
patch
(
master_custom_namelist
)
print
(
"
Patched master namelist:
"
)
print
(
"
Patched master namelist:
"
)
print
(
master_namelist
)
print
(
master_namelist
)
master_output_namelist
=
(
RUNDIR
/
"
icon_master.namelist
"
)
master_output_namelist
=
RUNDIR
/
"
icon_master.namelist
"
f90nml
.
write
(
nml
=
master_namelist
,
nml_path
=
master_output_namelist
.
as_posix
(),
force
=
True
)
f90nml
.
write
(
nml
=
master_namelist
,
nml_path
=
master_output_namelist
.
as_posix
(),
force
=
True
)
if
__name__
==
'
__main__
'
:
if
__name__
==
"
__main__
"
:
main
()
main
()
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment