Skip to content
Closed
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
6 changes: 6 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,15 @@
[submodule ".ci/hpc-workflows"]
path = .ci/hpc-workflows
url = https://github.com/islas/hpc-workflows
[submodule "phys/physics_mmm"]
path = phys/physics_mmm
url = https://github.com/NCAR/MMM-physics.git
[submodule "phys/MYNN-EDMF"]
path = phys/MYNN-EDMF
url = https://github.com/NCAR/MYNN-EDMF
[submodule "phys/TEMPO"]
path = phys/TEMPO
url = https://github.com/NCAR/TEMPO.git
[submodule "phys/MYNN-SFC"]
path = phys/MYNN-SFC
url = https://github.com/NCAR/MYNN-SFC.git
52 changes: 45 additions & 7 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -176,6 +176,12 @@ set( INTIO ON CACHE BOOL "INTIO" )
set( KEEP_INT_AROUND ON CACHE BOOL "KEEP_INT_AROUND" )
set( LIMIT_ARGS ON CACHE BOOL "LIMIT_ARGS" )

# WRF DA
set( ENABLE_CRTM ON CACHE BOOL "ENABLE_CRTM" ) # todo this is always set unless env var = 0 in make
set( ENABLE_WAVELET ON CACHE BOOL "ENABLE_WAVELET" ) # todo I think this should always be on
set( ENABLE_BUFR ON CACHE BOOL "ENABLE_BUFR" ) # todo I think the config is defaulting this on


# Toggles, how do we want to best address these options? Environment vars are not
# the best
set( WRFIO_NCD_NO_LARGE_FILE_SUPPORT OFF CACHE BOOL "WRFIO_NCD_NO_LARGE_FILE_SUPPORT" )
Expand Down Expand Up @@ -591,6 +597,12 @@ print_option( INTIO 20 )
print_option( KEEP_INT_AROUND 20 )
print_option( LIMIT_ARGS 20 )


print_option( ENABLE_CRTM 20 )
print_option( ENABLE_WAVELET 20 )
print_option( ENABLE_BUFR 20 )


print_option( FORCE_NETCDF_CLASSIC 20 )
print_option( BUILD_RRTMG_FAST 20 )
print_option( BUILD_RRTMK 20 )
Expand Down Expand Up @@ -845,8 +857,18 @@ else()
list( APPEND PROJECT_COMPILE_DEFINITIONS_OPTIONS WRFPLUS=0 )
endif()

if ( "${WRF_CORE}" STREQUAL "DA_CORE" OR "${WRF_CORE}" STREQUAL "DA_4D_VAR" )
list( APPEND PROJECT_COMPILE_DEFINITIONS_OPTIONS DA_CORE=1 )
if ( "${WRF_CORE}" STREQUAL "DA" OR "${WRF_CORE}" STREQUAL "DA_4D_VAR" )
if ( ${ENABLE_WAVELET} )
list( APPEND PROJECT_COMPILE_DEFINITIONS_OPTIONS WAVELET )
endif()
if ( ${ENABLE_CRTM} )
list( APPEND PROJECT_COMPILE_DEFINITIONS_OPTIONS CRTM )
endif()
if ( ${ENABLE_BUFR} )
list( APPEND PROJECT_COMPILE_DEFINITIONS_OPTIONS BUFR )
endif()

list( APPEND PROJECT_COMPILE_DEFINITIONS_OPTIONS DA_CORE=1 -DFFTPACK -DNORESHAPE )
else()
list( APPEND PROJECT_COMPILE_DEFINITIONS_OPTIONS DA_CORE=0 )
endif()
Expand Down Expand Up @@ -964,7 +986,6 @@ add_dependencies(
)

# Add directly to core
add_subdirectory( phys )
add_subdirectory( share )
add_subdirectory( frame )
add_subdirectory( inc )
Expand All @@ -981,10 +1002,15 @@ if ( ${WRF_CORE} STREQUAL "PLUS" )
add_subdirectory( wrftladj )
endif()

add_subdirectory( dyn_em )


add_subdirectory( main )
if ( ${WRF_CORE} STREQUAL "DA" OR ${WRF_CORE} STREQUAL "DA_4D_VAR" )
# We don't create any of the drivers for WRF in DA mode
add_subdirectory( var )
else()
# DA does not use any of this
add_subdirectory( dyn_em )
add_subdirectory( phys )
add_subdirectory( main )
endif()

################################################################################
# Add subdirectory with case info
Expand Down Expand Up @@ -1070,6 +1096,12 @@ target_include_directories(
$<$<TARGET_EXISTS:g2lib>:$<TARGET_PROPERTY:g2lib,Fortran_MODULE_DIRECTORY>>
$<$<TARGET_EXISTS:bacio-1.3>:$<TARGET_PROPERTY:bacio-1.3,Fortran_MODULE_DIRECTORY>>

# DA libs
$<$<TARGET_EXISTS:CRTM>:$<TARGET_PROPERTY:CRTM,Fortran_MODULE_DIRECTORY>>
$<$<TARGET_EXISTS:waveletf>:$<TARGET_PROPERTY:waveletf,Fortran_MODULE_DIRECTORY>>
$<$<TARGET_EXISTS:bufr>:$<TARGET_PROPERTY:bufr,Fortran_MODULE_DIRECTORY>>


PRIVATE

${PROJECT_SOURCE_DIR}/dyn_em
Expand Down Expand Up @@ -1138,6 +1170,12 @@ target_link_libraries( ${PROJECT_NAME}_Core
$<TARGET_NAME_IF_EXISTS:bacio-1.3>

$<TARGET_NAME_IF_EXISTS:RSL_LITE>

# DA libs
$<TARGET_NAME_IF_EXISTS:CRTM>
$<TARGET_NAME_IF_EXISTS:wavelet>
$<TARGET_NAME_IF_EXISTS:waveletf>
$<TARGET_NAME_IF_EXISTS:bufr>
)

################################################################################
Expand Down
2 changes: 1 addition & 1 deletion LICENSE.txt
100644 → 100755
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
WRF was developed at the National Center for Atmospheric Research (NCAR) which is operated by the University Corporation for Atmospheric Research (UCAR). NCAR and UCAR make no proprietary claims, either statutory or otherwise, to this version and release of WRF and consider WRF to be in the public domain for use by any person or entity for any purpose without any fee or charge. UCAR requests that any WRF user include this notice on any partial or full copies of WRF. WRF is provided on an "AS IS" basis and any warranties, either express or implied, including but not limited to implied warranties of non-infringement, originality, merchantability and fitness for a particular purpose, are disclaimed. In no event shall UCAR be liable for any damages, whatsoever, whether direct, indirect, consequential or special, that arise out of or in connection with the access, use or performance of WRF, including infringement actions.

WRF® is a registered trademark of the University Corporation for Atmospheric Research (UCAR).
WRF® is a registered trademark of the University Corporation for Atmospheric Research (UCAR).
8 changes: 8 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -138,6 +138,13 @@ wrf : framework_only
echo "MYNN-EDMF submodule files populating WRF directories" ; \
echo "------------------------------------------------------------------------------" ; \
fi
@if [ \( ! -f phys/module_mp_tempo_driver.F90 \) -o \( ! -f phys/module_mp_tempo_main.F90 \) -o \
\( ! -f phys/module_mp_tempo_cfgs.F90 \) -o \( ! -f phys/module_mp_tempo_aerosols.F90 \) -o \
\( ! -f phys/module_mp_tempo_ml.F90 \) -o \( ! -f phys/module_mp_tempo_diags.F90 \) -o \
\( ! -f phys/module_mp_tempo_utils.F90 \) -o \( ! -f phys/module_mp_tempo_params.F90 \) ] ; then \
echo " " ; \
echo "------------------------------------------------------------------------------" ; \
echo "Error Error Error TEMPO submodule files not populating WRF directories" ; \
@if [ \( ! -f phys/module_sf_mynnsfc_driver.F \) -o \
\( ! -f phys/module_sf_mynnsfc_land.F \) -o \
\( ! -f phys/module_sf_mynnsfc_water.F \) -o \
Expand All @@ -151,6 +158,7 @@ wrf : framework_only
exit 31 ; \
else \
echo "------------------------------------------------------------------------------" ; \
echo "TEMPO submodule files populating WRF directories" ; \
echo "MYNN-SFC submodule files populating WRF directories" ; \
echo "------------------------------------------------------------------------------" ; \
fi
Expand Down
29 changes: 23 additions & 6 deletions Registry/Registry.EM_COMMON
Original file line number Diff line number Diff line change
Expand Up @@ -411,7 +411,9 @@ state real bldtacttime - - - - r "bld
state real cudtacttime - - - - r "cudtacttime" "CUDTACTTIME" "CPS ACTIVATION TIME in s"
state real ltngacttime - - - - r "ltngacttime" "LTNGACTTIME" "LTNG ACTIVATION TIME in s"
state real power ij misc 1 - irh "Power" "Power production" "W"

# THE FOLLOWING LINES OF CODE ARE LICENSED UNDER doc/licenses/fraunhofer_license.txt
state real thrust ij misc 1 - irh "thrust" "Thrust force" "N"
# END LICENSE

# State for derived time quantities.
state integer itimestep - - - - rh "itimestep" "" ""
Expand Down Expand Up @@ -933,8 +935,17 @@ state real DRELG_URB2D ij misc 1 - rd=(interp_m
state real FLXHUMR_URB2D ij misc 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "FLXHUMR_URB" "WATER FLUX ON ROOF IMPERVIOUS SURFACE" "m/s"
state real FLXHUMB_URB2D ij misc 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "FLXHUMB_URB" "WATER FLUX ON WALL IMPERVIOUS SURFACE" "m/s"
state real FLXHUMG_URB2D ij misc 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "FLXHUMG_URB" "WATER FLUX ON ROAD IMPERVIOUS SURFACE" "m/s"
# added by Chenghao Wang
state real TVG_URB2D ij misc 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "TVG_URB" "URBAN VEGETATED GROUND TEMPERATURE" "K"
state real TT_URB2D ij misc 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "TT_URB" "URBAN TREE TEMPERATURE" "K"
state real XXXVG_URB2D ij misc 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "XXXVG_URB" "M-O LENGTH ABOVE URBAN VEGETATED GROUND" "dimensionless"
state real CMCG_URB2D ij misc 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "CMCG_URB" "CANOPY INTERCEPTED WATER ON VEGETATED GROUND" "m"
state real FLXHUMVG_URB2D ij misc 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "FLXHUMVG_URB" "WATER FLUX ON VEGETATED GROUND" "m/s"
state real FLXHUMT_URB2D ij misc 1 - rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "FLXHUMT_URB" "WATER FLUX ON URBAN TREES" "m/s"
state real TGRL_URB3D ilj misc 1 Z rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "TGRL_URB" "GREEN ROOF LAYER TEMPERATURE"
state real SMR_URB3D ilj misc 1 Z rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "SMR_URB" "GREEN ROOF LAYER SOIL MOISTURE"
state real TVGL_URB3D ilj misc 1 Z rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "TVGL_URB" "VEGETATED GROUND LAYER TEMPERATURE" "K"
state real SMG_URB3D ilj misc 1 Z rd=(interp_mask_land_field:lu_index)u=(copy_fcnm) "SMG_URB" "VEGETATED GROUND LAYER SOIL MOISTURE" "dimensionless"
state real TRL_URB3D ilj misc 1 Z rd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "TRL_URB" "ROOF LAYER TEMPERATURE" "K"
state real TBL_URB3D ilj misc 1 Z rd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "TBL_URB" "WALL LAYER TEMPERATURE" "K"
state real TGL_URB3D ilj misc 1 Z rd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "TGL_URB" "ROAD LAYER TEMPERATURE" "K"
Expand Down Expand Up @@ -2425,7 +2436,8 @@ rconfig integer nssl_3moment namelist,physics 1 0
rconfig integer nssl_density_on namelist,physics 1 -1 rh "NSSL graupel/hail density flag" "" ""
rconfig integer nssl_ssat_output namelist,physics 1 0 rh "NSSL ssat output flag" "" ""


rconfig integer tempo_aerosolaware namelist,physics 1 1 rh "TEMPO aerosol-aware flag" "" ""
rconfig integer tempo_hailaware namelist,physics 1 1 rh "TEMPO hail-aware flag" "" ""

rconfig integer CCNTY namelist,physics 1 2 rh "Aerosol background type for NTU microphysics" "" ""

Expand Down Expand Up @@ -3007,6 +3019,9 @@ state integer nodyn_dummy - dyn_nodyn - - - "" "" ""
rconfig integer windfarm_opt namelist,physics max_domains 0 rh "windfarm_opt" "" ""
rconfig integer windfarm_ij namelist,physics 1 0 rh "windfarm_ij" "" ""
rconfig real windfarm_tke_factor namelist,physics 1 0.25 rh "windfarm_tke_factor" "" ""
# THE FOLLOWING LINES OF CODE ARE LICENSED UNDER doc/licenses/fraunhofer_license.txt
rconfig integer windfarm_induction namelist,physics 1 1 rh "Fitch axial induction correction" "" ""
# END LICENSE
#
# Ideal case selection
rconfig integer ideal_case namelist,ideal 1 0 rh "ideal_case" "" ""
Expand Down Expand Up @@ -3044,6 +3059,7 @@ package wdm7scheme mp_physics==26 - moist:qv,qc
package udmscheme mp_physics==27 - moist:qv,qc,qr,qi,qs,qg,qh;scalar:qnn,qnc,qnr;state:re_cloud,re_ice,re_snow
package thompsonaero mp_physics==28 - moist:qv,qc,qr,qi,qs,qg;scalar:qni,qnr,qnc,qnwfa,qnifa,qnbca;state:re_cloud,re_ice,re_snow,qnwfa2d,qnifa2d,taod5503d,taod5502d
package thompsongh mp_physics==38 - moist:qv,qc,qr,qi,qs,qg;scalar:qni,qnr,qnc,qng,qvolg,qnwfa,qnifa,qnbca;state:re_cloud,re_ice,re_snow,qnwfa2d,qnifa2d,taod5503d,taod5502d
package tempo mp_physics==88 - moist:qv,qc,qr,qi,qs,qg;scalar:qni,qnr;state:re_cloud,re_ice,re_snow
package p3_1category mp_physics==50 - moist:qv,qc,qr,qi;scalar:qni,qnr,qir,qib;state:re_cloud,re_ice,vmi3d,rhopo3d,di3d,refl_10cm,th_old,qv_old
package p3_1category_nc mp_physics==51 - moist:qv,qc,qr,qi;scalar:qnc,qni,qnr,qir,qib;state:re_cloud,re_ice,vmi3d,rhopo3d,di3d,refl_10cm,th_old,qv_old
package p3_2category mp_physics==52 - moist:qv,qc,qr,qi,qi2;scalar:qnc,qni,qnr,qir,qib,qni2,qir2,qib2;state:re_cloud,re_ice,vmi3d,rhopo3d,di3d,vmi3d_2,rhopo3d_2,di3d_2,refl_10cm,th_old,qv_old
Expand All @@ -3066,7 +3082,8 @@ package nssl_graupelvol nssl_density_on==1 - scalar:qvol
package nssl_hailvol nssl_density_on==2 - scalar:qvolg,qvolh
package nssl_ssat_out nssl_ssat_output==1 - state:ssat
package nssl_ssati_out nssl_ssat_output==2 - state:ssat,ssati

package tempo_aerosol tempo_aerosolaware==1 - scalar:qnc,qnwfa,qnifa;state:qnwfa2d,qnifa2d
package tempo_hail tempo_hailaware==1 - scalar:qng,qvolg

package radar_refl compute_radar_ref==1 - state:refl_10cm,refd_max
endif
Expand Down Expand Up @@ -3150,7 +3167,8 @@ package temfsfcscheme sf_sfclay_physics==10 - state:wm_
package idealscmsfcscheme sf_sfclay_physics==89 - -
package sfclayscheme sf_sfclay_physics==91 - -

package noahucmscheme sf_urban_physics==1 - state:trb_urb4d,tw1_urb4d,tw2_urb4d,tgb_urb4d,sfw1_urb3d,sfw2_urb3d,sfr_urb3d,sfg_urb3d,a_u_bep,a_v_bep,a_t_bep,a_q_bep,a_e_bep,b_u_bep,b_v_bep,b_t_bep,b_q_bep,b_e_bep,dlg_bep,dl_u_bep,sf_bep,vl_bep,mh_urb2d,stdh_urb2d,lf_urb2d,lp_urb2d,hgt_urb2d,lb_urb2d,tgr_urb2d,cmcr_urb2d,drelr_urb2d,drelb_urb2d,drelg_urb2d,flxhumr_urb2d,flxhumb_urb2d,flxhumg_urb2d,tgrl_urb3d,smr_urb3d,cmgr_sfcdif,chgr_sfcdif,trl_urb3d,tgl_urb3d,tbl_urb3d,ahe,lf_urb2d_s,z0_urb2d,zd_urb2d
# added by Chenghao Wang
package noahucmscheme sf_urban_physics==1 - state:trb_urb4d,tw1_urb4d,tw2_urb4d,tgb_urb4d,sfw1_urb3d,sfw2_urb3d,sfr_urb3d,sfg_urb3d,a_u_bep,a_v_bep,a_t_bep,a_q_bep,a_e_bep,b_u_bep,b_v_bep,b_t_bep,b_q_bep,b_e_bep,dlg_bep,dl_u_bep,sf_bep,vl_bep,mh_urb2d,stdh_urb2d,lf_urb2d,lp_urb2d,hgt_urb2d,lb_urb2d,tgr_urb2d,cmcr_urb2d,drelr_urb2d,drelb_urb2d,drelg_urb2d,flxhumr_urb2d,flxhumb_urb2d,flxhumg_urb2d,tvg_urb2d,tt_urb2d,xxxvg_urb2d,cmcg_urb2d,flxhumvg_urb2d,flxhumt_urb2d,tgrl_urb3d,smr_urb3d,tvgl_urb3d,smg_urb3d,cmgr_sfcdif,chgr_sfcdif,trl_urb3d,tgl_urb3d,tbl_urb3d,ahe,lf_urb2d_s,z0_urb2d,zd_urb2d
package bepscheme sf_urban_physics==2 - state:a_u_bep,a_v_bep,a_t_bep,a_q_bep,a_e_bep,b_u_bep,b_v_bep,b_t_bep,b_q_bep,b_e_bep,dlg_bep,dl_u_bep,sf_bep,vl_bep,trb_urb4d,tw1_urb4d,tw2_urb4d,tgb_urb4d,sfw1_urb3d,sfw2_urb3d,sfr_urb3d,sfg_urb3d,hi_urb2d,lp_urb2d,hgt_urb2d,lb_urb2d,trl_urb3d,tgl_urb3d,tbl_urb3d,tsk_rural
package bep_bemscheme sf_urban_physics==3 - state:a_u_bep,a_v_bep,a_t_bep,a_q_bep,a_e_bep,b_u_bep,b_v_bep,b_t_bep,b_q_bep,b_e_bep,dlg_bep,dl_u_bep,sf_bep,vl_bep,trb_urb4d,tw1_urb4d,tw2_urb4d,tgb_urb4d,tlev_urb3d,qlev_urb3d,tw1lev_urb3d,tw2lev_urb3d,tglev_urb3d,tflev_urb3d,sf_ac_urb3d,lf_ac_urb3d,cm_ac_urb3d,sfvent_urb3d,lfvent_urb3d,sfwin1_urb3d,sfwin2_urb3d,sfw1_urb3d,sfw2_urb3d,sfr_urb3d,sfg_urb3d,hi_urb2d,lp_urb2d,hgt_urb2d,lb_urb2d,trl_urb3d,tgl_urb3d,tbl_urb3d,tsk_rural,ep_pv_urb3d,t_pv_urb3d,trv_urb4d,qr_urb4d,qgr_urb3d,tgr_urb3d,drain_urb4d,draingr_urb3d,sfrv_urb3d,lfrv_urb3d,dgr_urb3d,dg_urb3d,lfr_urb3d,lfg_urb3d

Expand Down Expand Up @@ -3395,7 +3413,7 @@ package wrfhydro wrf_hydro==1 - state:SOLDRAIN

#WRF Windfarm
package no_windfarm windfarm_opt==0 - -
package fitchscheme windfarm_opt==1 - state:power
package fitchscheme windfarm_opt==1 - state:power,thrust
# Yulong add for WLM
package mavscheme windfarm_opt==2 - state:power

Expand Down Expand Up @@ -3674,4 +3692,3 @@ rconfig real windfarm_deg namelist,physics max_domains

# outputs for RCON model.
state real CLOUDNC ij misc 1 - rh "CLOUDNC" "ACCUMULATED TOTAL GRID SCALE CLOUD PRECIPITATION" "mm"

8 changes: 0 additions & 8 deletions arch/Externals.cfg
Original file line number Diff line number Diff line change
@@ -1,10 +1,2 @@
[MMM-physics]
local_path = ./phys/physics_mmm
protocol = git
repo_url = https://github.com/NCAR/MMM-physics.git
tag = 20240626-MPASv8.2

required = True

[externals_description]
schema_version = 1.0.0
4 changes: 4 additions & 0 deletions clean
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,10 @@ if ( "$arg" == '-a' || "$arg" == '-aa' ) then
run/MPTABLE.TBL
/bin/rm -f phys/module_bl_mynnedmf.F phys/module_bl_mynnedmf_common.F \
phys/module_bl_mynnedmf_driver.F
/bin/rm -f phys/module_mp_tempo_cfgs.F90 phys/module_mp_tempo_params.F90 \
phys/module_mp_tempo_utils.F90 phys/module_mp_tempo_diags.F90 \
phys/module_mp_tempo_ml.F90 phys/module_mp_tempo_driver.F90 \
phys/module_mp_tempo_aerosols.F90 phys/module_mp_tempo_main.F90
endif
endif

Expand Down
Loading
Loading