-
Notifications
You must be signed in to change notification settings - Fork 49
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
RRTMGP w/ GFS SDFs + some houskeeping #181
Changes from 4 commits
ee18201
97e6065
b21888c
36e2aa1
7d4e4fe
23cfdd6
d44574e
7880249
e08b726
358c844
6fdb2e0
6df7ffa
d47076f
3c20679
19f5ba9
3dc5469
c68d43f
3ffa4ea
c26b5d1
e9c2a99
ed3c398
fb8f571
d516098
1a0edd6
933be41
f69c484
7d05fd0
2c385b0
f61a3a1
c8083ec
ea8d224
dc45f04
1c67ebf
daedf29
1fbac74
96307b7
2bfc95a
fa9ebce
2003405
5943e70
9dc877d
5b8b41c
6fe8b56
8b43512
8a8988f
eef88c9
985202f
e5d510c
25f65a9
aa294ea
0473355
7280d37
9e01f20
8207944
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
+5 −6 | physics/GFS_rrtmgp_lw_post.F90 | |
+18 −0 | physics/GFS_rrtmgp_lw_post.meta | |
+31 −27 | physics/GFS_rrtmgp_pre.F90 | |
+6 −4 | physics/GFS_rrtmgp_sw_post.F90 | |
+18 −0 | physics/GFS_rrtmgp_sw_post.meta | |
+1 −1 | physics/rrtmgp_lw_cloud_optics.F90 | |
+11 −4 | physics/rrtmgp_lw_gas_optics.F90 | |
+7 −4 | physics/rrtmgp_sw_cloud_optics.F90 | |
+26 −9 | physics/rrtmgp_sw_gas_optics.F90 | |
+1 −1 | physics/rte-rrtmgp |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,150 @@ | ||
&gfs_physics_nml | ||
fhzero = 6 | ||
h2o_phys = .true. | ||
ldiag3d = .true. | ||
fhcyc = 24 | ||
use_ufo = .true. | ||
pre_rad = .false. | ||
ncld = 5 | ||
imp_physics = 11 | ||
pdfcld = .false. | ||
fhswr = 3600. | ||
fhlwr = 3600. | ||
ialb = 1 | ||
iems = 1 | ||
iaer = 5111 | ||
icliq_sw = 2 | ||
iovr_lw = 3 | ||
iovr_sw = 3 | ||
ico2 = 2 | ||
isubc_sw = 2 | ||
isubc_lw = 2 | ||
isol = 2 | ||
lwhtr = .true. | ||
swhtr = .true. | ||
cnvgwd = .true. | ||
shal_cnv = .true. | ||
cal_pre = .false. | ||
redrag = .true. | ||
dspheat = .true. | ||
hybedmf = .false. | ||
satmedmf = .true. | ||
isatmedmf = 1 | ||
lheatstrg = .true. | ||
random_clds = .false. | ||
trans_trac = .true. | ||
cnvcld = .true. | ||
imfshalcnv = 2 | ||
imfdeepcnv = 2 | ||
cdmbgwd = 4.0,0.15,1.0,1.0 | ||
prslrd0 = 0. | ||
ivegsrc = 1 | ||
isot = 1 | ||
lsoil = 4 | ||
lsm = 1 | ||
iopt_dveg = 1 | ||
iopt_crs = 1 | ||
iopt_btr = 1 | ||
iopt_run = 1 | ||
iopt_sfc = 1 | ||
iopt_frz = 1 | ||
iopt_inf = 1 | ||
iopt_rad = 1 | ||
iopt_alb = 2 | ||
iopt_snf = 4 | ||
iopt_tbot = 2 | ||
iopt_stc = 1 | ||
debug = .false. | ||
oz_phys = .false. | ||
oz_phys_2015 = .true. | ||
nstf_name = 2,1,0,0,0 | ||
nst_anl = .true. | ||
psautco = 0.0008,0.0005 | ||
prautco = 0.00015,0.00015 | ||
lgfdlmprad = .true. | ||
effr_in = .true. | ||
ldiag_ugwp = .false. | ||
do_ugwp = .false. | ||
do_tofd = .true. | ||
do_sppt = .false. | ||
do_shum = .false. | ||
do_skeb = .false. | ||
do_sfcperts = .false. | ||
do_RRTMGP = .true. | ||
active_gases = 'h2o_co2_o3_n2o_ch4_o2' | ||
ngases = 6 | ||
rrtmgp_root = '../../ccpp/physics/physics/rte-rrtmgp/' | ||
lw_file_gas = 'rrtmgp/data/rrtmgp-data-lw-g256-2018-12-04.nc' | ||
lw_file_clouds = 'extensions/cloud_optics/rrtmgp-cloud-optics-coeffs-lw.nc' | ||
sw_file_gas = 'rrtmgp/data/rrtmgp-data-sw-g224-2018-12-04.nc' | ||
sw_file_clouds = 'extensions/cloud_optics/rrtmgp-cloud-optics-coeffs-sw.nc' | ||
rrtmgp_cld_optics = 0 | ||
rrtmgp_ngauss_ang = 3 | ||
rrtmgp_nrghice = 3 | ||
/ | ||
|
||
&gfdl_cloud_microphysics_nml | ||
sedi_transport = .true. | ||
do_sedi_heat = .false. | ||
rad_snow = .true. | ||
rad_graupel = .true. | ||
rad_rain = .true. | ||
const_vi = .F. | ||
const_vs = .F. | ||
const_vg = .F. | ||
const_vr = .F. | ||
vi_max = 1. | ||
vs_max = 2. | ||
vg_max = 12. | ||
vr_max = 12. | ||
qi_lim = 1. | ||
prog_ccn = .false. | ||
do_qa = .false. | ||
fast_sat_adj = .false. | ||
tau_l2v = 225. | ||
tau_v2l = 150. | ||
tau_g2v = 900. | ||
rthresh = 10.e-6 ! This is a key parameter for cloud water | ||
dw_land = 0.16 | ||
dw_ocean = 0.10 | ||
ql_gen = 1.0e-3 | ||
ql_mlt = 1.0e-3 | ||
qi0_crt = 8.0E-5 | ||
qs0_crt = 1.0e-3 | ||
tau_i2s = 1000. | ||
c_psaci = 0.05 | ||
c_pgacs = 0.01 | ||
rh_inc = 0.30 | ||
rh_inr = 0.30 | ||
rh_ins = 0.30 | ||
ccn_l = 300. | ||
ccn_o = 100. | ||
c_paut = 0.5 | ||
c_cracw = 0.8 | ||
use_ppm = .false. | ||
use_ccn = .true. | ||
mono_prof = .true. | ||
z_slope_liq = .true. | ||
z_slope_ice = .true. | ||
de_ice = .false. | ||
fix_negative = .true. | ||
icloud_f = 1 | ||
mp_time = 150. | ||
reiflag = 2 | ||
/ | ||
|
||
&cires_ugwp_nml | ||
knob_ugwp_solver = 2 | ||
knob_ugwp_source = 1,1,0,0 | ||
knob_ugwp_wvspec = 1,25,25,25 | ||
knob_ugwp_azdir = 2,4,4,4 | ||
knob_ugwp_stoch = 0,0,0,0 | ||
knob_ugwp_effac = 1,1,1,1 | ||
knob_ugwp_doaxyz = 1 | ||
knob_ugwp_doheat = 1 | ||
knob_ugwp_dokdis = 1 | ||
knob_ugwp_ndx4lh = 1 | ||
knob_ugwp_version = 0 | ||
launch_level = 27 | ||
/ | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,88 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
|
||
<suite name="SCM_GFS_v16beta_RRTMGP" lib="ccppphys" ver="4"> | ||
<group name="time_vary"> | ||
<subcycle loop="1"> | ||
<scheme>GFS_time_vary_pre</scheme> | ||
<scheme>GFS_rrtmgp_setup</scheme> | ||
<scheme>GFS_rad_time_vary</scheme> | ||
<scheme>GFS_phys_time_vary</scheme> | ||
</subcycle> | ||
</group> | ||
<group name="radiation"> | ||
<subcycle loop="1"> | ||
<scheme>GFS_suite_interstitial_rad_reset</scheme> | ||
<scheme>GFS_rrtmgp_pre</scheme> | ||
<scheme>GFS_rrtmgp_sw_pre</scheme> | ||
<scheme>rrtmgp_sw_gas_optics</scheme> | ||
<scheme>rrtmgp_sw_aerosol_optics</scheme> | ||
<scheme>rrtmgp_sw_cloud_optics</scheme> | ||
<scheme>rrtmgp_sw_cloud_sampling</scheme> | ||
<scheme>rrtmgp_sw_rte</scheme> | ||
<scheme>GFS_rrtmgp_sw_post</scheme> | ||
<scheme>rrtmgp_lw_pre</scheme> | ||
<scheme>rrtmgp_lw_gas_optics</scheme> | ||
<scheme>rrtmgp_lw_aerosol_optics</scheme> | ||
<scheme>rrtmgp_lw_cloud_optics</scheme> | ||
<scheme>rrtmgp_lw_cloud_sampling</scheme> | ||
<scheme>rrtmgp_lw_rte</scheme> | ||
<scheme>GFS_rrtmgp_lw_post</scheme> | ||
</subcycle> | ||
</group> | ||
<group name="physics"> | ||
<subcycle loop="1"> | ||
<scheme>GFS_suite_interstitial_phys_reset</scheme> | ||
<scheme>GFS_suite_stateout_reset</scheme> | ||
<scheme>get_prs_fv3</scheme> | ||
<scheme>GFS_suite_interstitial_1</scheme> | ||
<scheme>GFS_surface_generic_pre</scheme> | ||
<scheme>GFS_surface_composites_pre</scheme> | ||
<scheme>dcyc2t3</scheme> | ||
<scheme>GFS_surface_composites_inter</scheme> | ||
<scheme>GFS_suite_interstitial_2</scheme> | ||
</subcycle> | ||
<!-- Surface iteration loop --> | ||
<subcycle loop="2"> | ||
<scheme>sfc_diff</scheme> | ||
<scheme>GFS_surface_loop_control_part1</scheme> | ||
<scheme>sfc_nst_pre</scheme> | ||
<scheme>sfc_nst</scheme> | ||
<scheme>sfc_nst_post</scheme> | ||
<scheme>lsm_noah</scheme> | ||
<scheme>sfc_sice</scheme> | ||
<scheme>GFS_surface_loop_control_part2</scheme> | ||
</subcycle> | ||
<!-- End of surface iteration loop --> | ||
<subcycle loop="1"> | ||
<scheme>GFS_surface_composites_post</scheme> | ||
<scheme>sfc_diag</scheme> | ||
<scheme>sfc_diag_post</scheme> | ||
<scheme>GFS_surface_generic_post</scheme> | ||
<scheme>GFS_PBL_generic_pre</scheme> | ||
<scheme>satmedmfvdifq</scheme> | ||
<scheme>GFS_PBL_generic_post</scheme> | ||
<scheme>GFS_GWD_generic_pre</scheme> | ||
<scheme>cires_ugwp</scheme> | ||
<scheme>cires_ugwp_post</scheme> | ||
<scheme>GFS_GWD_generic_post</scheme> | ||
<scheme>rayleigh_damp</scheme> | ||
<scheme>GFS_suite_stateout_update</scheme> | ||
<scheme>ozphys_2015</scheme> | ||
<scheme>h2ophys</scheme> | ||
<scheme>GFS_DCNV_generic_pre</scheme> | ||
<scheme>get_phi_fv3</scheme> | ||
<scheme>GFS_suite_interstitial_3</scheme> | ||
<scheme>samfdeepcnv</scheme> | ||
<scheme>GFS_DCNV_generic_post</scheme> | ||
<scheme>GFS_SCNV_generic_pre</scheme> | ||
<scheme>samfshalcnv</scheme> | ||
<scheme>GFS_SCNV_generic_post</scheme> | ||
<scheme>GFS_suite_interstitial_4</scheme> | ||
<scheme>cnvc90</scheme> | ||
<scheme>GFS_MP_generic_pre</scheme> | ||
<scheme>gfdl_cloud_microphys</scheme> | ||
<scheme>GFS_MP_generic_post</scheme> | ||
<scheme>maximum_hourly_diagnostics</scheme> | ||
</subcycle> | ||
</group> | ||
</suite> |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
#!/bin/tcsh | ||
|
||
echo "Setting environment variables for SCM-CCPP on NOAA-ESRL-PSD/Apollo with icc/ifort" | ||
|
||
#load the modules in order to compile the GMTB SCM | ||
echo "Loading intel and netcdf modules..." | ||
module purge | ||
module load intel/19.0.1 | ||
module load netcdf | ||
module load cmake | ||
module load python | ||
module load py-netcdf4/1.2.7 | ||
module load py-numpy/1.13.1 | ||
module load py-matplotlib/2.0.2 | ||
|
||
echo "Setting CC/CXX/FC environment variables" | ||
setenv CC icc | ||
setenv CXX icpc | ||
setenv FC ifort | ||
setenv NETCDF /apps/spack/opt/spack/linux-centos6-x86_64/intel-19.0.1/netcdf-4.6.2-h6ldxvajx4mivywh6t4q64n2ysozaj3j/ | ||
setenv BACIO_LIB4 /home/dswales/libs/NCEPlibs/lib/libbacio_4.a | ||
setenv SP_LIBd /home/dswales/libs/NCEPlibs/lib/libsp_v2.0.2_d.a | ||
setenv W3NCO_LIBd /home/dswales/libs/NCEPlibs/lib/libw3nco_d.a | ||
|
||
|
||
#prepend the anaconda installation to the path so that the anaconda version of python (with its many installed modules) is used; check if the path already contains the right path first | ||
echo "Checking if the path to the anaconda python distribution is in PATH" | ||
echo $PATH | grep '/contrib/ananconda/2.3.0/bin$' >&/dev/null | ||
if ( $? != 0 ) then | ||
echo "anaconda path not found in PATH; prepending anaconda path to PATH environment variable" | ||
setenv PATH /contrib/anaconda/2.3.0/bin:$PATH | ||
else | ||
echo "PATH already has the anaconda path in it" | ||
endif | ||
|
||
#install f90nml for the local user | ||
|
||
#check to see if f90nml is installed locally | ||
echo "Checking if f90nml python module is installed" | ||
python -c "import f90nml" | ||
|
||
if ( $? != 0 ) then | ||
echo "Not found; installing f90nml" | ||
cd etc/scripts/f90nml-0.19 | ||
python setup.py install --user | ||
cd ../.. | ||
else | ||
echo "f90nml is installed" | ||
endif |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -1850,12 +1850,6 @@ module GFS_typedefs | |
real (kind=kind_phys), pointer :: cld_resnow(:,:) => null() !< Cloud snow effective radius | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @dustinswales I don't see these same changes in NCAR/fv3atm#46. Were they previously committed there? We try to keep the two GFS_typedefs as close to each other as possible. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @grantfirl |
||
real (kind=kind_phys), pointer :: cld_rwp(:,:) => null() !< Cloud rain water path | ||
real (kind=kind_phys), pointer :: cld_rerain(:,:) => null() !< Cloud rain effective radius | ||
real (kind=kind_phys), pointer :: hsw0(:,:) => null() !< RRTMGP shortwave heating-rate (clear-sky) | ||
real (kind=kind_phys), pointer :: hswc(:,:) => null() !< RRTMGP shortwave heating-rate (all-sky) | ||
real (kind=kind_phys), pointer :: hswb(:,:,:) => null() !< RRTMGP shortwave heating-rate (all-sky), by band | ||
real (kind=kind_phys), pointer :: hlw0(:,:) => null() !< RRTMGP longwave heating-rate (clear-sky) | ||
real (kind=kind_phys), pointer :: hlwc(:,:) => null() !< RRTMGP longwave heating-rate (all-sky) | ||
real (kind=kind_phys), pointer :: hlwb(:,:,:) => null() !< RRTMGP longwave heating-rate (all-sky), by band | ||
real (kind=kind_phys), pointer :: fluxlwUP_allsky(:,:) => null() !< RRTMGP upward longwave all-sky flux profile | ||
real (kind=kind_phys), pointer :: fluxlwDOWN_allsky(:,:) => null() !< RRTMGP downward longwave all-sky flux profile | ||
real (kind=kind_phys), pointer :: fluxlwUP_clrsky(:,:) => null() !< RRTMGP upward longwave clr-sky flux profile | ||
|
@@ -5765,12 +5759,6 @@ subroutine interstitial_create (Interstitial, IM, Model) | |
allocate (Interstitial%cld_resnow (IM, Model%levs)) | ||
allocate (Interstitial%cld_rwp (IM, Model%levs)) | ||
allocate (Interstitial%cld_rerain (IM, Model%levs)) | ||
allocate (Interstitial%hsw0 (IM, Model%levs)) | ||
allocate (Interstitial%hswc (IM, Model%levs)) | ||
allocate (Interstitial%hswb (IM, Model%levs, Model%rrtmgp_nGptsSW)) | ||
allocate (Interstitial%hlw0 (IM, Model%levs)) | ||
allocate (Interstitial%hlwc (IM, Model%levs)) | ||
allocate (Interstitial%hlwb (IM, Model%levs, Model%rrtmgp_nGptsLW)) | ||
allocate (Interstitial%icseed_lw (IM)) | ||
allocate (Interstitial%icseed_sw (IM)) | ||
allocate (Interstitial%flxprf_lw (IM, Model%levs+1)) | ||
|
@@ -6133,12 +6121,6 @@ subroutine interstitial_rad_reset (Interstitial, Model) | |
Interstitial%cld_resnow = clear_val | ||
Interstitial%cld_rwp = clear_val | ||
Interstitial%cld_rerain = clear_val | ||
Interstitial%hsw0 = clear_val | ||
Interstitial%hswc = clear_val | ||
Interstitial%hswb = clear_val | ||
Interstitial%hlw0 = clear_val | ||
Interstitial%hlwc = clear_val | ||
Interstitial%hlwb = clear_val | ||
Interstitial%icseed_lw = clear_val | ||
Interstitial%icseed_sw = clear_val | ||
Interstitial%sfc_emiss_byband = clear_val | ||
|
@@ -6727,12 +6709,6 @@ subroutine interstitial_print(Interstitial, Model, mpirank, omprank, blkno) | |
write (0,*) 'sum(Interstitial%cld_resnow ) = ', sum(Interstitial%cld_resnow ) | ||
write (0,*) 'sum(Interstitial%cld_rwp ) = ', sum(Interstitial%cld_rwp ) | ||
write (0,*) 'sum(Interstitial%cld_rerain ) = ', sum(Interstitial%cld_rerain ) | ||
write (0,*) 'sum(Interstitial%hsw0 ) = ', sum(Interstitial%hsw0 ) | ||
write (0,*) 'sum(Interstitial%hswc ) = ', sum(Interstitial%hswc ) | ||
write (0,*) 'sum(Interstitial%hswb ) = ', sum(Interstitial%hswb ) | ||
write (0,*) 'sum(Interstitial%hlw0 ) = ', sum(Interstitial%hlw0 ) | ||
write (0,*) 'sum(Interstitial%hlwc ) = ', sum(Interstitial%hlwc ) | ||
write (0,*) 'sum(Interstitial%hlwb ) = ', sum(Interstitial%hlwb ) | ||
write (0,*) 'sum(Interstitial%icseed_lw ) = ', sum(Interstitial%icseed_lw ) | ||
write (0,*) 'sum(Interstitial%icseed_sw ) = ', sum(Interstitial%icseed_sw ) | ||
write (0,*) 'sum(Interstitial%fluxlwUP_allsky ) = ', sum(Interstitial%fluxlwUP_allsky ) | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
After testing, we'd like to see this reverted.