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

Implementing Ivan Ristic microphysics and convection scheme in v4.5.1 #1932

Open
wants to merge 14 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
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
18 changes: 11 additions & 7 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -585,9 +585,9 @@ em_real : wrf
ln -sf ../../run/aerosol_plev.formatted . ; \
ln -sf ../../run/eclipse_besselian_elements.dat . ; \
ln -sf ../../run/CCN_ACTIVATE.BIN . ; \
ln -sf ../../run/p3_lookupTable_1.dat-5.3-2momI . ; \
ln -sf ../../run/p3_lookupTable_1.dat-3momI_v5.1.7 . ; \
ln -sf ../../run/p3_lookupTable_2.dat-2momI_v5.2.3 . ; \
ln -sf ../../run/p3_lookupTable_1.dat-v5.4_2momI . ; \
ln -sf ../../run/p3_lookupTable_1.dat-v5.4_3momI . ; \
ln -sf ../../run/p3_lookupTable_2.dat-v5.3 . ; \
ln -sf ../../run/HLC.TBL . ; \
ln -sf ../../run/wind-turbine-1.tbl . ; \
ln -sf ../../run/ishmael-gamma-tab.bin . ; \
Expand Down Expand Up @@ -667,9 +667,9 @@ em_real : wrf
ln -sf ../../run/bulkdens.asc_s_0_03_0_9 . ; \
ln -sf ../../run/bulkradii.asc_s_0_03_0_9 . ; \
ln -sf ../../run/CCN_ACTIVATE.BIN . ; \
ln -sf ../../run/p3_lookupTable_1.dat-5.3-2momI . ; \
ln -sf ../../run/p3_lookupTable_1.dat-3momI_v5.1.7 . ; \
ln -sf ../../run/p3_lookupTable_2.dat-2momI_v5.2.3 . ; \
ln -sf ../../run/p3_lookupTable_1.dat-v5.4_2momI . ; \
ln -sf ../../run/p3_lookupTable_1.dat-v5.4_3momI . ; \
ln -sf ../../run/p3_lookupTable_2.dat-v5.3 . ; \
ln -sf ../../run/HLC.TBL . ; \
ln -sf ../../run/wind-turbine-1.tbl . ; \
ln -sf ../../run/ishmael-gamma-tab.bin . ; \
Expand Down Expand Up @@ -1026,7 +1026,7 @@ physics :
@ echo '--------------------------------------'
if [ $(WRF_CHEM) -eq 0 ] ; then \
( cd phys ; $(MAKE) submodules ; $(MAKE) CF2=" " ) ; \
if [ $(WRF_CMAQ) -eq 1 ] ; then \
if [ -n "$(WRF_CMAQ)" ] && [ $(WRF_CMAQ) -eq 1 ] ; then \
@ echo '----------- make cmaq ----------------' ; \
( rm -f main/libcmaqlib.a; cd cmaq ; $(MAKE) -f Makefile.twoway ) ; \
fi \
Expand Down Expand Up @@ -1095,6 +1095,10 @@ fortran_2003_fflush_test:
fortran_2008_gamma_test:
@cd tools ; /bin/rm -f fortran_2008_gamma_test.{exe,o} ; $(SFC) -o fortran_2008_gamma_test.exe fortran_2008_gamma_test.F ; cd ..

# rule used by configure to test for RPC support
rpc_test:
@cd tools ; /bin/rm -f rpc_test.exe ; $(SCC) -DUSE_TIRPC -o rpc_test.exe rpc_test.c ; $(SCC) -o rpc_test.exe rpc_test.c; cd ..

toolsdir :
@ echo '--------------------------------------'
if [ $(WRF_PLUS_CORE) -eq 0 ] ; then \
Expand Down
2 changes: 1 addition & 1 deletion README
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
WRF Model Version 4.4
WRF Model Version 4.5.1

https://www2.mmm.ucar.edu/wrf/users/

Expand Down
2 changes: 1 addition & 1 deletion Registry/Registry.CONVERT
Original file line number Diff line number Diff line change
Expand Up @@ -516,4 +516,4 @@ package io_zzz io_form_restart==9 - -
package io_grib2 io_form_restart==10 - -
package io_pnetcdf io_form_restart==11 - -
package io_pio io_form_restart==12 - -

package io_adios2 io_form_restart==14 - -
51 changes: 37 additions & 14 deletions Registry/Registry.EM_COMMON

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions Registry/Registry.EM_COMMON.var
Original file line number Diff line number Diff line change
Expand Up @@ -405,6 +405,7 @@ package io_grib2 io_form_restart==10 - -
package io_pnetcdf io_form_restart==11 - -
package io_pio io_form_restart==12 - -
package io_netcdfpar io_form_restart==13 - -
package io_adios2 io_form_restart==14 - -

#WRF Hydro
package no_wrfhydro wrf_hydro==0 - -
Expand Down
4 changes: 3 additions & 1 deletion Registry/registry.chem
Original file line number Diff line number Diff line change
Expand Up @@ -3779,6 +3779,7 @@ rconfig integer cam_mam_mode namelist,chem 1 3
rconfig integer cam_mam_nspec namelist,chem 1 85 irh "cam_mam_nspec" "" ""
rconfig logical CAM_MP_MAM_cpled namelist,chem 1 .true. irh "CAM_MP_MAM_cpled" "" ""
rconfig integer mozart_ph_diag namelist,chem 1 0 rh "mozart_ph_diag" "" ""
rconfig logical mynn_chem_vertmx namelist,chem 1 .false. rh "mynn_chem_vertmx" "" ""

# CLM inputs
rconfig character megan_specifier namelist,physics max_mgnspc " " - "map from Megan2.1 to WRF species" "" ""
Expand Down Expand Up @@ -3904,7 +3905,7 @@ rconfig real af_lambda_start namelist,chem max_domains
rconfig real af_lambda_end namelist,chem max_domains 340. rh "end wavelength for AF output" "nm" ""
# Control for ISORROPIA in MADE/SORGAM schemes
rconfig logical do_isorropia namelist,chem 1 .false. rh "flag to use ISORROPIA"

rconfig logical do_n2o5het namelsit,chem 1 .false. rh "flag to do n2o5 heterogenous chemistry via chlorine pathway"

# CHEMISTRY PACKAGE DEFINITIONS
#
Expand Down Expand Up @@ -4186,6 +4187,7 @@ rconfig logical has_o3_exo_coldens namelist,chem 1 .false.
rconfig real du_at_grnd namelist,chem 1 300. rh "O3 at ground" "O3 at ground" "o3 Dobson units"
rconfig logical scale_o3_to_grnd_exo_coldens namelist,chem 1 .false. rh "scale o3 column to exo_coldens" "true = scale to exo model o3 column denisties" ""
rconfig logical scale_o3_to_du_at_grnd namelist,chem 1 .false. rh "scale o3 column to du_at_grnd" "true = scale to DU at ground" ""
rconfig logical scale_o3_to_gfs_tot namelist,chem 1 .false. rh "gfs_ozone_scale_opt" "true = scale to GFS DU at ground" ""

package lnox_opt_none lnox_opt==0 - -
package lnox_opt_ott lnox_opt==1 - tracer:lnox_total
Expand Down
4 changes: 3 additions & 1 deletion Registry/registry.fire
Original file line number Diff line number Diff line change
Expand Up @@ -353,9 +353,10 @@ rconfig real fs_firebrand_gen_prop_temp namelist,fire 1 900.0
rconfig real fs_firebrand_gen_prop_tvel namelist,fire 1 0.0 - "fs_firebrand_gen_prop_tvel" "Firebrand initial proporty: Terminal Velocity [m/s] (set to zero for top of trajectory)"
rconfig real fs_firebrand_dens namelist,fire 1 513000.0 - "fs_firebrand_dens" "Density of firebrands [g/m3]"
rconfig real fs_firebrand_dens_char namelist,fire 1 299000.0 - "fs_firebrand_dens_char" "Density of char [g/m3]"
rconfig integer fs_firebrand_max_life_dt namelist,fire 1 600 - "fs_firebrand_max_life_dt" "Max lifetime of firebrands (in sec)"
rconfig integer fs_firebrand_max_life_dt namelist,fire 1 200 - "fs_firebrand_max_life_dt" "Max lifetime of firebrands (multiple of the model timestep - in sec)"
rconfig real fs_firebrand_land_hgt namelist,fire 1 0.15 - "fs_firebrand_land_hgt" "AGL height that firebrands land (in meters)"
rconfig logical fuel_crosswalk namelist,fire max_domains .false. - "flag - artifact from COFPS used in firebrand_spotting - it does not crosswalk between fuel models."
rconfig logical trackember namelist,fire 1 .false. - "flag - for test only. Write ember properties on rsl.error files at each timestep - huge rsl files!"
#
# ------------------------------------------------------------------------------------------------------------------------
# Dimensions
Expand Down Expand Up @@ -383,6 +384,7 @@ state real fs_spotting_lkhd ij misc 1 -
# Particle properties: fs_p_[property_name]
#
state integer fs_p_id {fs_maxsize} dyn_em 1 - - "fs_p_id" "particle unique ID" "ID"
state integer fs_p_src {fs_maxsize} dyn_em 1 - - "fs_p_src" "particle source ID - source MPI proc" "src"
state integer fs_p_dt {fs_maxsize} dyn_em 1 - - "fs_p_dt" "particle active time steps" "count"
state real fs_p_x {fs_maxsize} dyn_em 1 - - "fs_p_x" "particle x position" "index"
state real fs_p_y {fs_maxsize} dyn_em 1 - - "fs_p_y" "particle y position" "index"
Expand Down
4 changes: 4 additions & 0 deletions Registry/registry.io_boilerplate
Original file line number Diff line number Diff line change
Expand Up @@ -145,3 +145,7 @@ rconfig logical ignore_iofields_warning namelist,time_control 1 .
# nofill = true means only a single write, not the write/read/write sequence
rconfig logical ncd_nofill namelist,time_control 1 .true.

# for ADIOS2 specific features
rconfig logical adios2_compression_enable namelist,namelist_adios2 1 .true.
rconfig character adios2_blosc_compressor namelist,namelist_adios2 1 "lz4"
rconfig integer adios2_numaggregators namelist,namelist_adios2 1 0
6 changes: 3 additions & 3 deletions Registry/registry.noahmp
Original file line number Diff line number Diff line change
Expand Up @@ -202,9 +202,9 @@ state real soilenergy ij - 1 - hd=(interp_mask_land_fie
state real snowenergy ij - 1 - hd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "snowenergy" "energy content in snow relative to 273.16" "kJ/m2"

state real acc_ssoil ij - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acc_ssoil" "accumulated SSOIL between dt_soil" "W/m2"
state real acc_qinsur ij - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acc_qinsur" "accumulated QINSUR between dt_soil" "mm/s"
state real acc_qseva ij - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acc_qseva" "accumulated QSEVA between dt_soil" "mm/s"
state real acc_etrani ilj - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acc_etrani" "accumulated ETRANI between dt_soil" "mm/s"
state real acc_qinsur ij - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acc_qinsur" "accumulated QINSUR between dt_soil" "m/s*dt_soil/dt_noahmp"
state real acc_qseva ij - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acc_qseva" "accumulated QSEVA between dt_soil" "m/s*dt_soil/dt_noahmp"
state real acc_etrani ilj - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acc_etrani" "accumulated ETRANI between dt_soil" "m/s*dt_soil/dt_noahmp"
state real aceflxb ij - 1 - rhd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "aceflxb " "accumulated bottom soil heat flux" "kJ/m2"
state real eflxbxy ij - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "eflxbxy " "bottom soil heat flux" "W/m2"
state real acc_dwaterxy ij - 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "acc_dwater" "accumulated canopy,snow,soil water change between dt_soil" "mm"
Expand Down
6 changes: 6 additions & 0 deletions Registry/registry.var
Original file line number Diff line number Diff line change
Expand Up @@ -467,6 +467,8 @@ rconfig character crtm_irwater_coef namelist,wrfvar14 1 "Nalli.IRwater
rconfig character crtm_mwwater_coef namelist,wrfvar14 1 "FASTEM5.MWwater.EmisCoeff.bin" - "crtm_mwwater_coef" "" ""
rconfig character crtm_irland_coef namelist,wrfvar14 1 "USGS.IRland.EmisCoeff.bin" - "crtm_irland_coef" "" ""
rconfig character crtm_visland_coef namelist,wrfvar14 1 "USGS.VISland.EmisCoeff.bin" - "crtm_visland_coef" "" ""
rconfig logical ahi_use_symm_obs_err namelist,wrfvar14 1 .false. - "ahi_use_symm_obs_err" "" ""
rconfig logical ahi_apply_clrsky_bias namelist,wrfvar14 1 .false. - "ahi_apply_clrsky_bias" "" ""
rconfig integer num_pseudo namelist,wrfvar15 1 0 - "num_pseudo" "" ""
rconfig real pseudo_x namelist,wrfvar15 1 1.0 - "pseudo_x" "" ""
rconfig real pseudo_y namelist,wrfvar15 1 1.0 - "pseudo_y" "" ""
Expand Down Expand Up @@ -569,6 +571,7 @@ package wsm5scheme mp_physics==4 - moist:qv,qc
package fer_mp_hires mp_physics==5 - moist:qv,qc,qr,qi
package fer_mp_hires_advect mp_physics==15 - moist:qv,qc,qr,qi
package wsm6scheme mp_physics==6 - moist:qv,qc,qr,qi,qs,qg
package wsm6rscheme mp_physics==106 - moist:qv,qc,qr,qi,qs,qg
package gsfcgcescheme mp_physics==7 - moist:qv,qc,qr,qi,qs,qg
package thompson mp_physics==8 - moist:qv,qc,qr,qi,qs,qg
package milbrandt2mom mp_physics==9 - moist:qv,qc,qr,qi,qs,qg,qh
Expand All @@ -591,6 +594,7 @@ package ntu mp_physics==56 - moist:qv,qc
package etampnew mp_physics==95 - moist:qv,qc,qr,qs
package lscondscheme mp_physics==98 - moist:qv
package mkesslerscheme mp_physics==99 - moist:qv,qc,qr
package ivanr_micro mp_physics==150 - moist:qv,qc,qr,qi,qs
#
package mpnotset_4dvar mp_physics_4dvar==-1 - g_moist:g_qv;a_moist:a_qv
package passiveqv_4dvar mp_physics_4dvar==0 - g_moist:g_qv;a_moist:a_qv
Expand All @@ -601,6 +605,7 @@ package wsm5_4dvar mp_physics_4dvar==4 - g_moist:g_q
package fer_mp_hi_4dvar mp_physics_4dvar==5 - g_moist:g_qv,g_qc,g_qr,g_qi;a_moist:a_qv,a_qc,a_qr,a_qi
package fer_mp_hi_advect_4dvar mp_physics_4dvar==15 - g_moist:g_qv,g_qc,g_qr,g_qi;a_moist:a_qv,a_qc,a_qr,a_qi
package wsm6_4dvar mp_physics_4dvar==6 - g_moist:g_qv,g_qc,g_qr,g_qi,g_qs,g_qg;a_moist:a_qv,a_qc,a_qr,a_qi,a_qs,a_qg
package wsm6r_4dvar mp_physics_4dvar==106 - g_moist:g_qv,g_qc,g_qr,g_qi,g_qs,g_qg;a_moist:a_qv,a_qc,a_qr,a_qi,a_qs,a_qg
package gsfcgce_4dvar mp_physics_4dvar==7 - g_moist:g_qv,g_qc,g_qr,g_qi,g_qs,g_qg;a_moist:a_qv,a_qc,a_qr,a_qi,a_qs,a_qg
package thompson_4dvar mp_physics_4dvar==8 - g_moist:g_qv,g_qc,g_qr,g_qi,g_qs,g_qg;a_moist:a_qv,a_qc,a_qr,a_qi,a_qs,a_qg
package milbrandt2mom_4dvar mp_physics_4dvar==9 - g_moist:g_qv,g_qc,g_qr,g_qi,g_qs,g_qg,g_qh;a_moist:a_qv,a_qc,a_qr,a_qi,a_qs,a_qg,a_qh
Expand All @@ -623,6 +628,7 @@ package ntu_4dvar mp_physics_4dvar==56 - g_moist:g_q
package etampnew_4dvar mp_physics_4dvar==95 - g_moist:g_qv,g_qc,g_qr,g_qs;a_moist:a_qv,a_qc,a_qr,a_qs
package lscond_4dvar mp_physics_4dvar==98 - g_moist:g_qv;a_moist:a_qv
package mkessler_4dvar mp_physics_4dvar==99 - g_moist:g_qv,g_qc,g_qr;a_moist:a_qv,a_qc,a_qr
package ivanr_micro_4dvar mp_physics_4dvar==150 - g_moist:g_qv,g_qc,g_qr,g_qi,g_qs;a_moist:a_qv,a_qc,a_qr,a_qi,a_qs

package surfdragscheme bl_pbl_physics==98 - -
package ducuscheme cu_physics==98 - -
Expand Down
2 changes: 2 additions & 0 deletions Registry/registry.wrfplus
Original file line number Diff line number Diff line change
Expand Up @@ -886,6 +886,8 @@ package ntu_plus mp_physics_plus==56 - g_moist:g_qv,
package etampnew_plus mp_physics_plus==95 - g_moist:g_qv,g_qc,g_qr,g_qs;a_moist:a_qv,a_qc,a_qr,a_qs
package lscond_plus mp_physics_plus==98 - g_moist:g_qv;a_moist:a_qv
package mkessler_plus mp_physics_plus==99 - g_moist:g_qv,g_qc,g_qr;a_moist:a_qv,a_qc,a_qr
package ivanr_micro_plus mp_physics_plus==150 - g_moist:g_qv,g_qc,g_qr,g_qi,g_qs;a_moist:a_qv,a_qc,a_qr,a_qi,a_qs
package wsm6r_plus mp_physics_plus==106 - g_moist:g_qv,g_qc,g_qr,g_qi,g_qs,g_qg;a_moist:a_qv,a_qc,a_qr,a_qi,a_qs,a_qg

rconfig integer cu_used_plus derived 1 0 - "cu_used_plus" "turn on if any cumulus scheme is used"
rconfig integer shcu_used_plus derived 1 0 - "shcu_used_plus" "turn on if any shallow cumulus scheme is used"
Expand Down
52 changes: 52 additions & 0 deletions arch/Config.pl
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
$sw_netcdf_path = "" ;
$sw_pnetcdf_path = "" ;
$sw_netcdfpar_path = "" ;
$sw_adios2_path = "" ;
$sw_hdf5_path="";
$sw_phdf5_path="";
$sw_jasperlib_path="";
Expand Down Expand Up @@ -103,6 +104,10 @@
{
$sw_netcdfpar_path = substr( $ARGV[0], 11 ) ;
}
if ( substr( $ARGV[0], 1, 7 ) eq "adios2=" )
{
$sw_adios2_path = substr( $ARGV[0], 8 ) ;
}
if ( substr( $ARGV[0], 1, 5 ) eq "hdf5=" )
{
$sw_hdf5_path = substr( $ARGV[0], 6 ) ;
Expand Down Expand Up @@ -612,6 +617,7 @@
$_ =~ s/CONFIGURE_NETCDF_PATH/$sw_netcdf_path/g ;
$_ =~ s/CONFIGURE_PNETCDF_PATH/$sw_pnetcdf_path/g ;
$_ =~ s/CONFIGURE_NETCDFPAR_PATH/$sw_netcdfpar_path/g ;
$_ =~ s/CONFIGURE_ADIOS2_PATH/$sw_adios2_path/g ;
$_ =~ s/CONFIGURE_HDF5_PATH/$sw_hdf5_path/g ;
$_ =~ s/CONFIGURE_PHDF5_PATH/$sw_phdf5_path/g ;
$_ =~ s/CONFIGURE_LDFLAGS/$sw_ldflags/g ;
Expand Down Expand Up @@ -702,6 +708,29 @@
$_ =~ s:CONFIGURE_PNETCDF_LIB_PATH::g ;
}

if ( $sw_adios2_path )
{ $_ =~ s/CONFIGURE_WRFIO_ADIOS2/wrfio_adios2/g ;
$_ =~ s:CONFIGURE_ADIOS2_FLAG:-DADIOS2: ;
if ( -d "$sw_adios2_path/lib" )
{
$adios2_libdir = "$sw_adios2_path/lib" ;
}
elsif ( -d "$sw_adios2_path/lib64" )
{
$adios2_libdir = "$sw_adios2_path/lib64" ;
}
else
{
die "ADIOS2 environment variable was set, but neither $sw_adios2_path/lib nor $sw_adios2_path/lib64 were found." ;
}
$_ =~ s:CONFIGURE_ADIOS2_LIB_PATH:-L\$\(WRF_SRC_ROOT_DIR\)/external/io_adios2 -lwrfio_adios2 -L$adios2_libdir -ladios2_fortran_mpi -ladios2_fortran:;
}
else
{ $_ =~ s/CONFIGURE_WRFIO_ADIOS2//g ;
$_ =~ s:CONFIGURE_ADIOS2_FLAG::g ;
$_ =~ s:CONFIGURE_ADIOS2_LIB_PATH::g ;
}

if ( $sw_hdf5_path )
{ $_ =~ s:CONFIGURE_HDF5_LIB_PATH:-L$sw_hdf5_path/lib -lhdf5hl_fortran -lhdf5_hl -lhdf5_fortran -lhdf5 -lm -lz: ;
$_ =~ s:CONFIGURE_HDF5_FLAG:-DHDF5: ;
Expand Down Expand Up @@ -1067,6 +1096,29 @@
$_ =~ s:CONFIGURE_PNETCDF_LIB_PATH::g ;
}

if ( $sw_adios2_path )
{ $_ =~ s/CONFIGURE_WRFIO_ADIOS2/wrfio_adios2/g ;
$_ =~ s:CONFIGURE_ADIOS2_FLAG:-DADIOS2: ;
if ( -d "$sw_adios2_path/lib" )
{
$adios2_libdir = "$sw_adios2_path/lib" ;
}
elsif ( -d "$sw_adios2_path/lib64" )
{
$adios2_libdir = "$sw_adios2_path/lib64" ;
}
else
{
die "ADIOS2 environment variable was set, but neither $sw_adios2_path/lib nor $sw_adios2_path/lib64 were found." ;
}
$_ =~ s:CONFIGURE_ADIOS2_LIB_PATH:-L\$\(WRF_SRC_ROOT_DIR\)/external/io_adios2 -lwrfio_adios2 -L$adios2_libdir -ladios2_fortran_mpi -ladios2_fortran:;
}
else
{ $_ =~ s/CONFIGURE_WRFIO_ADIOS2//g ;
$_ =~ s:CONFIGURE_ADIOS2_FLAG::g ;
$_ =~ s:CONFIGURE_ADIOS2_LIB_PATH::g ;
}

if ( $sw_hdf5_path )
{ $_ =~ s:CONFIGURE_HDF5_LIB_PATH:-L$sw_hdf5_path/lib -lhdf5hl_fortran -lhdf5_hl -lhdf5_fortran -lhdf5 -lm -lz: ;
$_ =~ s:CONFIGURE_HDF5_FLAG:-DHDF5: ;
Expand Down
Loading