Skip to content

Commit

Permalink
Add Montornes's solar eclipse modelling (wrf-model#1285)
Browse files Browse the repository at this point in the history
TYPE: new feature

KEYWORDS: radiation, eclipse

SOURCE: Isaac Rowe (University of Kentucky); original source: Alex Montornès (University of Barcelona), internal

DESCRIPTION OF CHANGES:
Alex Montornès developed a modification to the radiation schemes for WRF 3.6 to model the effect of eclipse based on the Bessel's method. This PR aims to bring the work back into the latest version of WRF for four shortwave schemes: RRTMG, Dudhia, Goddard, and old Goddard. 

LIST OF MODIFIED FILES: 
Makefile
Registry/Registry.EM_COMMON
Registry/Registry.NMM
clean
dyn_em/module_first_rk_step_part1.F
dyn_nmm/module_PHYSICS_CALLS.F
phys/Makefile
phys/module_ra_eclipse.F
phys/module_ra_goddard.F
phys/module_ra_gsfcsw.F
phys/module_ra_rrtmg_sw.F
phys/module_ra_sw.F
phys/module_radiation_driver.F
run/eclipse_besselian_elements.dat
run/README.namelist
share/module_check_a_mundo.F

TESTS CONDUCTED: 
1. Jenkins tests all passed.
2. The model is run with and without the eclipse mods for the August 2017 eclipse event over US. A figure is shown below: the left is SWDOWN valid at 1800 UTC without eclipse mod, and right is with eclipse mod:
![eclipse](https://user-images.githubusercontent.com/12705680/108938290-0d9d5800-760d-11eb-80b8-6c6229156741.png)

RELEASE NOTE: Add a new option (ra_sw_eclipse) to model the effect of eclipses based on the the Bessel's method in four radiation schemes: RRTMG, Dudhia, Goddard, and old Goddard. Additional output includes the location of the eclipse: ELAT_TRACK and ELON_TRACK. For reference, see this paper: Montornès, A., Codina, B., Zack, J. W., and Sola, Y.: Implementation of Bessel's method for solar eclipses prediction in the WRF-ARW model, Atmos. Chem. Phys., 16, 5949–5967, https://doi.org/10.5194/acp-16-5949-2016, 2016. (Thanks to Alex Montornès of University of Barcelona and Issac Rowe of University of Kentucky.)
  • Loading branch information
irowebbn authored and vlakshmanan-scala committed Apr 4, 2024
1 parent 478571b commit 629a6fb
Show file tree
Hide file tree
Showing 16 changed files with 835 additions and 34 deletions.
3 changes: 3 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -555,6 +555,7 @@ em_real : wrf
ln -sf ../../run/aerosol_lat.formatted . ; \
ln -sf ../../run/aerosol_lon.formatted . ; \
ln -sf ../../run/aerosol_plev.formatted . ; \
ln -sf ../../run/eclipse_besselian_elements.dat . ; \
ln -sf ../../run/CCN_ACTIVATE.BIN . ; \
ln -sf ../../run/p3_lookup_table_1.dat-v4.1 . ; \
ln -sf ../../run/p3_lookup_table_2.dat-v4.1 . ; \
Expand Down Expand Up @@ -617,6 +618,7 @@ em_real : wrf
ln -sf ../../run/aerosol_lat.formatted . ; \
ln -sf ../../run/aerosol_lon.formatted . ; \
ln -sf ../../run/aerosol_plev.formatted . ; \
ln -sf ../../run/eclipse_besselian_elements.dat . ; \
ln -sf ../../run/capacity.asc . ; \
ln -sf ../../run/coeff_p.asc . ; \
ln -sf ../../run/coeff_q.asc . ; \
Expand Down Expand Up @@ -911,6 +913,7 @@ nmm_real : nmm_wrf
ln -sf ../../run/aerosol_lat.formatted . ; \
ln -sf ../../run/aerosol_lon.formatted . ; \
ln -sf ../../run/aerosol_plev.formatted . ; \
ln -sf ../../run/eclipse_besselian_elements.dat . ; \
ln -sf ../../run/capacity.asc . ; \
ln -sf ../../run/coeff_p.asc . ; \
ln -sf ../../run/coeff_q.asc . ; \
Expand Down
6 changes: 6 additions & 0 deletions Registry/Registry.EM_COMMON
Original file line number Diff line number Diff line change
Expand Up @@ -966,6 +966,10 @@ state real CHC_SFCDIF ij misc 1 - r "C
state real CMGR_SFCDIF ij misc 1 - r "CMGR_SFCDIF" "" ""
state real CHGR_SFCDIF ij misc 1 - r "CHGR_SFCDIF" "" ""

state integer ECMASK ij misc 1 - rh "ECMASK" "ECLIPSE MASK" "dimensionless"
state real ECOBSC ij misc 1 - rh "ECOBSC" "ECLIPSE OBSCURITY" "dimensionless"
state real elon_track - misc 1 - rh "elon_track" "ECLIPSE LON" "degrees"
state real elat_track - misc 1 - rh "elat_track" "ECLIPSE LAT" "degrees"

# solar location variables from radiation driver
state real COSZEN ij misc 1 - rh "COSZEN" "COS of SOLAR ZENITH ANGLE" "dimensionless"
Expand Down Expand Up @@ -2331,6 +2335,7 @@ rconfig integer do_radar_ref namelist,physics 1 0
rconfig integer compute_radar_ref derived 1 0 - "compute_radar_ref" "0/1 flag: compute radar reflectivity, either do_radar_ref=1 .or. (milbrandt or NSSL schemes)"
rconfig integer ra_lw_physics namelist,physics max_domains -1 rh "ra_lw_physics" "" ""
rconfig integer ra_sw_physics namelist,physics max_domains -1 rh "ra_sw_physics" "" ""
rconfig integer ra_sw_eclipse namelist,physics 1 0 rh "ra_sw_eclipse" "0/1 flag: 1=turn eclipse on" ""
rconfig real radt namelist,physics max_domains 0 h "RADT" "" ""
rconfig real naer namelist,physics max_domains 1e9 rh "NAER" "" ""
rconfig integer sf_sfclay_physics namelist,physics max_domains -1 rh "sf_sfclay_physics" "" ""
Expand Down Expand Up @@ -2956,6 +2961,7 @@ package rrtmg_swscheme_fast ra_sw_physics==24 - ozmixm:mth01,
package goddardswscheme ra_sw_physics==5 - state:tswdn,tswup,sswdn,sswup,taucldc,taucldi,re_cloud_gsfc,re_rain_gsfc,re_ice_gsfc,re_snow_gsfc,re_graupel_gsfc,re_hail_gsfc,cod2d_out,ctop2d_out,re_cloud,re_ice,re_snow
package flgswscheme ra_sw_physics==7 - -
package gfdlswscheme ra_sw_physics==99 - -
package eclipsescheme ra_sw_eclipse==1 - state:ecmask,ecobsc,elat_track,elon_track

package nosfcscheme sf_sfclay_physics==0 - -
package sfclayrevscheme sf_sfclay_physics==1 - -
Expand Down
2 changes: 2 additions & 0 deletions Registry/Registry.NMM
Original file line number Diff line number Diff line change
Expand Up @@ -1444,6 +1444,7 @@ rconfig integer do_radar_ref namelist,physics 1 0
rconfig integer compute_radar_ref derived 1 0 - "compute_radar_ref" "0/1 flag: compute radar reflectivity, either do_radar_ref=1 .or. (milbrandt or NSSL schemes)"
rconfig integer ra_lw_physics namelist,physics max_domains 0 rh0123 "ra_lw_physics" "" ""
rconfig integer ra_sw_physics namelist,physics max_domains 0 rh0123 "ra_sw_physics" "" ""
rconfig integer ra_sw_eclipse namelist,physics 1 0 rh "ra_sw_eclipse" "" ""
rconfig real radt namelist,physics max_domains 0 h "RADT" "" ""
rconfig integer sf_sfclay_physics namelist,physics max_domains 0 rh0123 "sf_sfclay_physics" "" ""
rconfig integer sf_surface_physics namelist,physics max_domains 0 rh0123 "sf_surface_physics" "" ""
Expand Down Expand Up @@ -1848,6 +1849,7 @@ package flgswscheme ra_sw_physics==7 - -
package gfdlswscheme ra_sw_physics==99 - -
package hwrfswscheme ra_sw_physics==98 - state:o3rad
package heldsuarez ra_lw_physics==31 - -
package eclipsescheme ra_sw_eclipse==1 - -

package nosfcscheme sf_sfclay_physics==0 - -
package sfclayscheme sf_sfclay_physics==91 - -
Expand Down
1 change: 1 addition & 0 deletions clean
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ if ( "$arg" == '-a' || "$arg" == '-aa' ) then
*/constants.asc */p3_lookup_table_1.dat \
*/masses.asc */kernels_z.asc */capacity.asc */termvels.asc */coeff_p.asc */coeff_q.asc \
*/gribmap.txt */tr??t?? */co2_trans */namelist.output */ishmael-gamma-tab.bin \
*/eclipse_besselian_elements.dat \
*/HLC.TBL */wind-turbine-1.tbl \
*/ishmael-qi-qc.bin */ishmael-qi-qr.bin ) >& /dev/null
( cd test/em_fire; rm -rf two_fires rain )
Expand Down
5 changes: 4 additions & 1 deletion dyn_em/module_first_rk_step_part1.F
Original file line number Diff line number Diff line change
Expand Up @@ -434,7 +434,10 @@ SUBROUTINE first_rk_step_part1 ( grid , config_flags &
& ,slope_rad=config_flags%slope_rad,topo_shading=config_flags%topo_shading &
& ,shadowmask=grid%shadowmask &
& ,ht=grid%ht,dx=grid%dx,dy=grid%dy,dx2d=grid%dx2d,area2d=grid%area2d &
& ,diffuse_frac=grid%diffuse_frac &
& ,diffuse_frac=grid%diffuse_frac &
& ,obscur=grid%ECOBSC, mask=grid%ECMASK &
& ,elat_track=grid%elat_track,elon_track=grid%elon_track &
& ,SW_ECLIPSE=config_flags%ra_sw_eclipse &
& ,IS_CAMMGMP_USED = grid%is_CAMMGMP_used &
& ,cw_rad=grid%cw_rad &
& ,shcu_physics=config_flags%shcu_physics &
Expand Down
1 change: 1 addition & 0 deletions dyn_nmm/module_PHYSICS_CALLS.F
Original file line number Diff line number Diff line change
Expand Up @@ -503,6 +503,7 @@ SUBROUTINE RADIATION(NTSD,DT,JULDAY,JULYR,XTIME,JULIAN &
& ,F_ICE_PHY=F_ICE,F_RAIN_PHY=F_RAIN &
& ,LWCF=LWCF,SWCF=SWCF &
& ,O3INPUT=config_flags%O3INPUT,AER_OPT=config_flags%AER_OPT,O3RAD=grid%o3rad &
& ,SW_ECLIPSE=config_flags%ra_sw_eclipse &
& ,SF_SURFACE_PHYSICS=CONFIG_FLAGS%SF_SURFACE_PHYSICS &
& ,QV=MOIST_TRANS(IMS,KMS,JMS,P_QV),F_QV=F_QV &
& ,QC=MOIST_TRANS(IMS,KMS,JMS,P_QC),F_QC=F_QC &
Expand Down
1 change: 1 addition & 0 deletions phys/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,7 @@ MODULES = \
module_ra_flg.o \
module_ra_HWRF.o \
module_ra_hs.o \
module_ra_eclipse.o \
module_ra_aerosol.o \
module_ra_farms.o \
module_sf_sfclay.o \
Expand Down
Loading

0 comments on commit 629a6fb

Please sign in to comment.