Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding new vertical levels and mpasout etc #565

Open
wants to merge 8 commits into
base: rrfs-mpas-jedi
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
62 changes: 62 additions & 0 deletions fix/meshes/L62.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
0
19
39.89062
63.42188
90.3125
120.8438
155.25
194.0312
237.8125
287.25
343.0312
405.8125
476.2812
555.2812
643.8125
743
854.0312
978.0625
1116.25
1269.844
1440.219
1628.781
1836.812
2065.531
2316.281
2590.469
2889.344
3213.969
3565.25
3943.719
4349.281
4781.375
5239.5
5723.531
6233.5
6769.125
7329.281
7911.781
8513.812
9132.656
9766.062
10411.91
11068.19
11734.5
12412.91
13106.44
13817.19
14545.78
15291.84
16054.88
16835.16
17634.62
18458.14
19314.44
20214.39
21167.08
22179.47
23262.34
24436.02
25731.17
27190.78
28884.23
65 changes: 65 additions & 0 deletions fix/meshes/L65.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
0
19
39.89062
63.42188
90.3125
120.8438
155.25
194.0312
237.8125
287.25
343.0312
405.8125
476.2812
555.2812
643.8125
743
854.0312
978.0625
1116.25
1269.844
1440.219
1628.781
1836.812
2065.531
2316.281
2590.469
2889.344
3213.969
3565.25
3943.719
4349.281
4781.375
5239.5
5723.531
6233.5
6769.125
7329.281
7911.781
8513.812
9132.656
9766.062
10411.91
11068.19
11734.5
12412.91
13106.44
13817.19
14545.78
15291.84
16054.88
16835.16
17634.62
18458.14
19314.44
20214.39
21167.08
22179.47
23262.34
24436.02
25731.17
27190.78
28884.23
30949.03
33656.09
37402.16
24 changes: 5 additions & 19 deletions parm/convection_permitting/namelist.atmosphere
Original file line number Diff line number Diff line change
Expand Up @@ -53,28 +53,14 @@
config_radtlw_interval = '00:15:00'
config_radtsw_interval = '00:15:00'
config_bucket_update = 'none'
config_physics_suite = '${physics_suite}'
config_microp_scheme = 'mp_thompson'
config_thompson_hail_aware = true
config_convection_scheme = 'off'
! config_physics_suite = '${physics_suite}'
config_physics_suite = 'hrrrv5'
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. We need to use line 56 and define correct physics_suite in exrrfs_fcst.sh
  2. To confirm, do we have a hrrrv5 physics suite ready at this moment?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is the namelist that works for the current GSL MPAS model, consistent with the GSL real-time runs. My previous tests using "convection_permitting" would crash. For details we need inputs from the physics people.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@chunhuazhou Thanks for the reply. We better NOT hardcode this to "hrrrv5", we can generate this on-the-fly in the exrrfs-fcst.sh script. So remove line 57, revert line 56, and specify "hrrrv5" in the script.

For the physics suite, I did not run the new GSL version of MPAS, so we will need @hu5970's input on this.

config_tempo_aerosolaware = .true.
config_tempo_hailaware = .true.
config_gwdo_scheme = 'bl_ugwp_gwdo'
config_lsm_scheme = 'sf_ruc'
! config_sfclayer_scheme = 'sf_monin_obukhov'
! config_pbl_scheme = 'bl_ysu'
num_soil_layers = 9
config_mynn_cloudpdf = 2
config_mynn_mixlength= 1
config_mynn_edmf = 1
config_mynn_edmf_mom = 1
config_mynn_edmf_tke = 0
config_mynn_edmf_output = 0
config_mynn_closure = 2.6
config_mynn_mixscalars = 1
config_mynn_mixclouds = 1
config_mynn_mixqt = 0
config_mynn_tkeadvect = .false.
config_mynn_tkebudget = 0
config_radt_cld_scheme='cld_fraction_mynn'
config_pbl_scheme = 'bl_mynnedmf'
/
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

so many model options are changed. But those are used by conus3km real-time runs. Need to figure out how to set conus 12km separately.

&soundings
config_sounding_interval = 'none'
Expand Down
3 changes: 2 additions & 1 deletion parm/convection_permitting/namelist.init_atmosphere
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
config_soilcat_data = 'BNU'
/
&vertical_grid
config_ztop = 25878.712
config_ztop = ${ztop}
config_nsmterrain = 1
config_smooth_surfaces = true
config_dzmin = 0.3
Expand All @@ -44,6 +44,7 @@
&preproc_stages
config_static_interp = false
config_native_gwd_static = false
config_native_gwd_gsl_static = false
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we need to set up lines 46 and 47 on the fly?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it is good to be like this, suggested by Mike Toy when I was having issues running the ic.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we don't use gsl_static, why do we bother to add this namelist option?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The default value is true but it might be only used when generating static.nc
So for ic and lbc tasks, it is better to set it to false.

config_vertical_grid = true
config_met_interp = true
config_input_sst = false
Expand Down
3 changes: 2 additions & 1 deletion parm/mesoscale_reference/namelist.atmosphere
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,8 @@
/
&printout
config_print_global_minmax_vel = true
config_print_detailed_minmax_vel = false
config_print_detailed_minmax_vel = true
config_print_global_minmax_sca = true
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lines 36 and 37: Do we want to set them to true for all rrfs runs?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These are useful printouts. I think it is good to add them.

/
&IAU
config_IAU_option = 'off'
Expand Down
8 changes: 5 additions & 3 deletions parm/mesoscale_reference/namelist.init_atmosphere
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,11 @@
config_nfgsoillevels = ${nfgsoillevels}
/
&data_sources
config_geog_data_path = ''
config_geog_data_path = '/mnt/lfs5/BMC/wrfruc/HRRRv5/geog/'
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

config_geog_data_path can be empty in the rrfs-workflow

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added this to be consistent with what is set for the "convection_permitting". Can't be removed if desired.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, let's keep it as an empty string.

Also, to be consistent, let's remove the hardwired PATH in convection_permitting as well. Thanks!

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reverted. Thanks!

config_met_prefix = '${prefix}'
config_sfc_prefix = 'SST'
config_fg_interval = ${interval_seconds}
config_landuse_data = 'MODIFIED_IGBP_MODIS_NOAH'
config_landuse_data = 'MODIFIED_IGBP_MODIS_NOAH_15s'
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file is under parm/mesoscal_reference. Do we have to modify line 20?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added this to be consistent with what is set for the "convection_permitting". Can't be reverted if desired.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's keep the original version. We can revisit this if we have to make this change.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reverted. Thanks!

config_topo_data = 'GMTED2010'
config_vegfrac_data = 'MODIS'
config_albedo_data = 'MODIS'
Expand All @@ -26,20 +26,22 @@
config_use_spechumd = false
/
&vertical_grid
config_ztop = 30000.0
config_ztop = ${ztop}
config_nsmterrain = 1
config_smooth_surfaces = true
config_dzmin = 0.3
config_nsm = 30
config_tc_vertical_grid = true
config_blend_bdy_terrain = true
config_specified_zeta_levels = '${zeta_levels}'
/
&interpolation_control
config_extrap_airtemp = 'lapse-rate'
/
&preproc_stages
config_static_interp = false
config_native_gwd_static = false
config_native_gwd_gsl_static = false
config_vertical_grid = true
config_met_interp = true
config_input_sst = false
Expand Down
24 changes: 22 additions & 2 deletions parm/streams.atmosphere_fcst
Original file line number Diff line number Diff line change
@@ -1,10 +1,29 @@
<streams>
<immutable_stream name="invariant"
type="input"
precision="single"
filename_template="invariant.nc"
io_type="pnetcdf,cdf5"
input_interval="initial_only" />

<immutable_stream name="input"
type="input"
filename_template="init.nc"
io_type="pnetcdf,cdf5"
input_interval="initial_only" />

<immutable_stream name="da_state"
type="output"
precision="single"
clobber_mode="truncate"
filename_template="mpasout.$Y-$M-$D_$h.$m.$s.nc"
packages="jedi_da"
io_type="pnetcdf,cdf5"
output_interval="1:00:00" />
<var name="pressure" />
<var name="uReconstructZonal" />
<var name="uReconstructMeridional" />

<immutable_stream name="restart"
type="input;output"
filename_template="restart.$Y-$M-$D_$h.$m.$s.nc"
Expand All @@ -17,6 +36,7 @@
type="output"
filename_template="history.$Y-$M-$D_$h.$m.$s.nc"
io_type="pnetcdf,cdf5"
clobber_mode="replace_files"
output_interval="@history_interval@:00:00" >
<file name="stream_list/stream_list.atmosphere.output"/>
</stream>
Expand All @@ -40,7 +60,7 @@

<immutable_stream name="iau"
type="input"
filename_template="conus12km.AmB.$Y-$M-$D_$h.$m.$s.nc"
filename_template="AmB.$Y-$M-$D_$h.$m.$s.nc"
filename_interval="none"
packages="iau"
input_interval="initial_only" />
Expand All @@ -55,6 +75,6 @@

<immutable_stream name="ugwp_oro_data_in"
type="input"
filename_template="3km_conus.ugwp_oro_data.nc"
filename_template="ugwp_oro_data.nc"
input_interval="initial_only" />
</streams>
5 changes: 3 additions & 2 deletions scripts/exrrfs_fcst.sh
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,8 @@ fi
ln -snf ${UMBRELLA_DATA}/cycbdys/lbc*.nc .

ln -snf ${FIXrrfs}/physics/${PHYSICS_SUITE}/* .
ln -snf ${FIXrrfs}/meshes/3km_conus.ugwp_oro_data.nc .
ln -snf ${FIXrrfs}/meshes/3km_conus.ugwp_oro_data.nc ./ugwp_oro_data.nc
ln -snf ${FIXrrfs}/meshes/${MESH_NAME}.invariant.nc_L65 ./invariant.nc
mkdir -p graphinfo stream_list
ln -snf ${FIXrrfs}/graphinfo/* graphinfo/
ln -snf ${FIXrrfs}/stream_list/${PHYSICS_SUITE}/* stream_list/
Expand All @@ -48,7 +49,7 @@ ln -snf ${FIXrrfs}/stream_list/${PHYSICS_SUITE}/* stream_list/
start_time=$(date -d "${CDATE:0:8} ${CDATE:8:2}" +%Y-%m-%d_%H:%M:%S)
run_duration=${fcst_len_hrs_thiscyc:-1}:00:00
physics_suite=${PHYSICS_SUITE:-'mesoscale_reference'}
jedi_da="false" #true
jedi_da="true" #true

if [[ "${MESH_NAME}" == "conus12km" ]]; then
pio_num_iotasks=6
Expand Down
11 changes: 8 additions & 3 deletions scripts/exrrfs_ic.sh
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,9 @@ start_time=$(date -d "${CDATE:0:8} ${CDATE:8:2}" +%Y-%m-%d_%H:%M:%S)
end_time=${start_time}
case ${MESH_NAME} in
conus12km)
nvertlevels=55
nsoillevels=4
;;
conus3km)
nvertlevels=59
nsoillevels=9
;;
*)
Expand All @@ -45,9 +43,12 @@ case ${MESH_NAME} in
;;
esac

zeta_levels=${FIXrrfs}/meshes/L65.txt

if [[ "${prefix}" == "RAP" || "${prefix}" == "HRRR" ]]; then
nfglevels=51
nfgsoillevels=9
zeta_levels=${FIXrrfs}/meshes/L62.txt
elif [[ "${prefix}" == "RRFS" ]]; then
nfglevels=66
nfgsoillevels=9
Expand All @@ -58,8 +59,12 @@ elif [[ "${prefix}" == "GEFS" ]]; then
nfglevels=32
nfgsoillevels=4
fi

echo ${zeta_levels}
ztop=$(tail -1 ${zeta_levels})
nvertlevels=$(( $(wc -l < ${zeta_levels}) - 1 ))

interval_seconds=3600 # just a place holder as we use metatask to run lbc hour by hour
zeta_levels=${FIXrrfs}/meshes/L60.txt
decomp_file_prefix="${MESH_NAME}.graph.info.part."
#
physics_suite=${PHYSICS_SUITE:-'PHYSICS_SUITE_not_defined'}
Expand Down
26 changes: 23 additions & 3 deletions scripts/exrrfs_lbc.sh
Original file line number Diff line number Diff line change
Expand Up @@ -46,11 +46,26 @@ EDATE=$($NDATE ${fhr_begin} ${CDATEin})
start_time=$(date -d "${EDATE:0:8} ${EDATE:8:2}" +%Y-%m-%d_%H:%M:%S)
EDATE=$($NDATE ${fhr_end} ${CDATEin})
end_time=$(date -d "${EDATE:0:8} ${EDATE:8:2}" +%Y-%m-%d_%H:%M:%S)
nvertlevels=55
nsoillevels=4

case ${MESH_NAME} in
conus12km)
nsoillevels=4
;;
conus3km)
nsoillevels=9
;;
*)
echo "unknow MESH_NAME=${MESH_NAME}"
export err=99; err_chk
;;
esac
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Soil levels are not related to the mesh. It is decided by the outside model.
If we use GFS to initialize the CONUS3km, the soil level should be 4 also.


zeta_levels=${FIXrrfs}/meshes/L65.txt

if [[ "${prefix}" == "RAP" || "${prefix}" == "HRRR" ]]; then
nfglevels=51
nfgsoillevels=9
zeta_levels=${FIXrrfs}/meshes/L62.txt
elif [[ "${prefix}" == "RRFS" ]]; then
nfglevels=66
nfgsoillevels=9
Expand All @@ -61,8 +76,13 @@ elif [[ "${prefix}" == "GEFS" ]]; then
nfglevels=32
nfgsoillevels=4
fi


echo ${zeta_levels}
ztop=$(tail -1 ${zeta_levels})
nvertlevels=$(( $(wc -l < ${zeta_levels}) - 1 ))

interval_seconds=$((10#${INTERVAL}*3600)) # just a place holder as we use metatask to run lbc hour by hour
zeta_levels=${FIXrrfs}/meshes/L60.txt
decomp_file_prefix="${MESH_NAME}.graph.info.part."
#
physics_suite=${PHYSICS_SUITE:-'PHYSICS_SUITE_not_defined'}
Expand Down