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

gsl/develop RRFS-Smoke #141

Merged
merged 13 commits into from
Apr 21, 2022
Merged
Show file tree
Hide file tree
Changes from 5 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
4 changes: 2 additions & 2 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
branch = main
[submodule "ccpp/physics"]
path = ccpp/physics
url = https://github.com/NOAA-GSL/ccpp-physics
branch = gsl/develop
url = https://github.com/haiqinli/ccpp-physics
branch = gsl/develop-smoke
[submodule "upp"]
path = upp
url = https://github.com/NOAA-EMC/UPP
Expand Down
4 changes: 4 additions & 0 deletions ccpp/config/ccpp_prebuild_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,10 @@
'physics/physics/sfc_sice.f',
# HAFS FER_HIRES
'physics/physics/mp_fer_hires.F90',
# SMOKE
'physics/smoke/rrfs_smoke_wrapper.F90',
'physics/smoke/rrfs_smoke_postpbl.F90',
'physics/smoke/rrfs_smoke_lsdep_wrapper.F90',
# RRTMGP
'physics/physics/rrtmgp_lw_gas_optics.F90',
'physics/physics/rrtmgp_lw_cloud_optics.F90',
Expand Down
153 changes: 151 additions & 2 deletions ccpp/data/GFS_typedefs.F90

Large diffs are not rendered by default.

261 changes: 261 additions & 0 deletions ccpp/data/GFS_typedefs.meta
Original file line number Diff line number Diff line change
Expand Up @@ -261,6 +261,20 @@
dimensions = (horizontal_loop_extent,vertical_layer_dimension)
type = real
kind = kind_phys
[qgrs(:,:,index_for_smoke)]
standard_name = smoke_tracer_concentration
long_name = concentration of smoke
units = kg kg-1
dimensions = (horizontal_loop_extent,vertical_layer_dimension)
type = real
kind = kind_phys
[qgrs(:,:,index_for_dust)]
standard_name = dust_tracer_concentration
long_name = concentration of dust
units = kg kg-1
dimensions = (horizontal_loop_extent,vertical_layer_dimension)
type = real
kind = kind_phys
[diss_est]
standard_name = dissipation_estimate_of_air_temperature_at_model_layers
long_name = dissipation estimate model layer mean temperature
Expand Down Expand Up @@ -620,6 +634,27 @@
dimensions = (horizontal_loop_extent)
type = real
kind = kind_phys
[dust12m_in]
standard_name = fengsha_dust12m_input
long_name = fengsha dust input
units = various
dimensions = (horizontal_dimension,12,5)
type = real
kind = kind_phys
[emi_in]
standard_name = anthropogenic_background_input
long_name = anthropogenic background input
units = various
dimensions = (horizontal_dimension,1)
type = real
kind = kind_phys
[smoke_GBBEPx]
standard_name = emission_smoke_GBBEPx
long_name = emission fire GBBEPx
units = various
dimensions = (horizontal_dimension,24,3)
type = real
kind = kind_phys
Copy link
Collaborator

Choose a reason for hiding this comment

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

You're missing the active= lines for these and many other variables. The non-smoke configurations will fail unless you have active= lines for variables that are not always allocated.

[z0base]
standard_name = baseline_surface_roughness_length
long_name = baseline surface roughness length for momentum in meter
Expand Down Expand Up @@ -2292,6 +2327,13 @@
type = real
kind = kind_phys
active = (control_for_stochastic_land_surface_perturbation /= 0)
[dqdti]
standard_name = instantaneous_water_vapor_specific_humidity_tendency_due_to_convection
long_name = instantaneous moisture tendency due to convection
units = kg kg-1 s-1
dimensions = (horizontal_loop_extent,vertical_layer_dimension)
type = real
kind = kind_phys
[nwfa2d]
standard_name = tendency_of_hygroscopic_aerosols_at_surface_adjacent_layer
long_name = instantaneous water-friendly sfc aerosol source
Expand All @@ -2308,6 +2350,111 @@
type = real
kind = kind_phys
active = (control_for_microphysics_scheme == identifier_for_thompson_microphysics_scheme .and. flag_for_aerosol_physics)
[emdust]
standard_name = emission_of_dust_for_smoke
long_name = emission of dust for smoke
units = ug m-2 s-1
dimensions = (horizontal_loop_extent)
type = real
kind = kind_phys
[emseas]
standard_name = emission_of_seas_for_smoke
long_name = emission of seas for smoke
units = ug m-2 s-1
dimensions = (horizontal_loop_extent)
type = real
kind = kind_phys
[emanoc]
standard_name = emission_of_anoc_for_thompson_mp
long_name = emission of anoc for thompson mp
units = ug m-2 s-1
dimensions = (horizontal_loop_extent)
type = real
kind = kind_phys
[ebb_smoke_hr]
standard_name = surfce_emission_of_smoke
long_name = emission of surface smoke
units = ug m-2 s-1
dimensions = (horizontal_loop_extent)
type = real
kind = kind_phys
[frp_hr]
standard_name = frp_hourly
long_name = hourly frp
units = mw
dimensions = (horizontal_loop_extent)
type = real
kind = kind_phys
[frp_std_hr]
standard_name = frp_std_hourly
long_name = hourly std frp
units = mw
dimensions = (horizontal_loop_extent)
type = real
kind = kind_phys
[fhist]
standard_name = fhist
long_name = fire hist
units = none
dimensions = (horizontal_loop_extent)
type = real
kind = kind_phys
[coef_bb_dc]
standard_name = coef_bb_dc
long_name = coef bb dc from plumerise
units = none
dimensions = (horizontal_loop_extent)
type = real
kind = kind_phys
[ebu_smoke]
standard_name = ebu_smoke
long_name = smoke buffer of ebu
units = various
dimensions = (horizontal_loop_extent,vertical_layer_dimension)
type = real
kind = kind_phys
[smoke_ext]
standard_name = smoke_ext
long_name = smoke optical extinction
units = various
dimensions = (horizontal_loop_extent,vertical_layer_dimension)
type = real
kind = kind_phys
[dust_ext]
standard_name = dust_ext
long_name = dust optical extinction
units = various
dimensions = (horizontal_loop_extent,vertical_layer_dimension)
type = real
kind = kind_phys
[chem3d]
standard_name = chem3d_mynn_pbl_transport
long_name = mynn pbl transport of smoke and dust
units = various
dimensions = (horizontal_loop_extent,vertical_layer_dimension,2)
type = real
kind = kind_phys
[min_fplume]
standard_name = min_fplume
long_name = miminum plume height
units = none
dimensions = (horizontal_loop_extent)
type = real
kind = kind_phys
[max_fplume]
standard_name = max_fplume
long_name = maximum plume height
units = none
dimensions = (horizontal_loop_extent)
type = real
kind = kind_phys
[rrfs_hwp]
standard_name = rrfs_hwp
long_name = rrfs hourly fire weather potential
units = none
dimensions = (horizontal_loop_extent)
type = real
kind = kind_phys
[ushfsfci]
standard_name = surface_upward_sensible_heat_flux_for_chemistry_coupling
long_name = instantaneous upward sensible heat flux for chemistry coupling
Expand Down Expand Up @@ -2657,6 +2804,12 @@
units = flag
dimensions = ()
type = logical
[rrfs_smoke]
standard_name = flag_for_rrfs_smoke_coupling
long_name = flag controlling rrfs_smoke collection (default off)
units = flag
dimensions = ()
type = logical
[cpl_imp_mrg]
standard_name = flag_for_merging_imported_data
long_name = flag controlling cpl_imp_mrg for imported data (default off)
Expand Down Expand Up @@ -5010,6 +5163,30 @@
units = index
dimensions = ()
type = integer
[ntsmoke]
standard_name = index_for_smoke
long_name = tracer index for smoke
units = index
dimensions = ()
type = integer
[ntdust]
standard_name = index_for_dust
long_name = tracer index for dust
units = index
dimensions = ()
type = integer
[nchem]
standard_name = number_of_chemical_species_vertically_mixed
long_name = number of chemical vertically mixed
units = count
dimensions = ()
type = integer
[ndvel]
standard_name = number_of_chemical_species_deposited
long_name = number of chemical pbl deposited
units = count
dimensions = ()
type = integer
[ntchm]
standard_name = number_of_chemical_tracers
long_name = number of chemical tracers
Expand Down Expand Up @@ -5107,6 +5284,90 @@
units = index
dimensions = ()
type = integer
[mix_chem]
standard_name = rrfs_smoke_mynn_tracer_mixing
long_name = flag for rrfs smoke mynn tracer mixing
units = flag
dimensions = ()
type = logical
[fire_turb]
standard_name = rrfs_smoke_mynn_enh_vermix
long_name = flag for rrfs smoke mynn enh vermix
units = flag
dimensions = ()
type = logical
[seas_opt]
standard_name = rrfs_smoke_sea_salt_opt
long_name = rrfs smoke sea salt emission option
units = index
dimensions = ()
type = integer
[dust_opt]
standard_name = rrfs_smoke_dust_opt
long_name = rrfs smoke dust chem option
units = index
dimensions = ()
type = integer
[biomass_burn_opt]
standard_name = rrfs_smoke_biomass_burn_opt
long_name = rrfs smoke biomass burning option
units = index
dimensions = ()
type = integer
[drydep_opt]
standard_name = rrfs_smoke_drydep_opt
long_name = rrfs smoke dry deposition option
units = index
dimensions = ()
type = integer
[wetdep_ls_opt]
standard_name = rrfs_smoke_wetdep_ls_opt
long_name = rrfs smoke large scale wet deposition option
units = index
dimensions = ()
type = integer
[do_plumerise]
standard_name = rrfs_smoke_plumerise_flag
long_name = rrfs smoke plumerise option
units = index
dimensions = ()
type = logical
[plumerisefire_frq]
standard_name = rrfs_smoke_plumerisefire_frq
long_name = rrfs smoke add smoke option
units = index
dimensions = ()
type = integer
[addsmoke_flag]
standard_name = rrfs_smoke_addsmoke_flag
long_name = rrfs smoke add smoke option
units = index
dimensions = ()
type = integer
[smoke_forecast]
standard_name = rrfs_smoke_smoke_forecast_opt
long_name = flag for rrfs smoke forecast
units = flag
dimensions = ()
type = logical
[aero_ind_fdb]
standard_name = rrfs_smoke_aero_ind_fdb_opt
long_name = flag for rrfs wfa ifa emission
units = flag
dimensions = ()
type = logical
[aero_dir_fdb]
standard_name = rrfs_smoke_dust_rad_fdb_opt
long_name = flag for rrfs smoke dust rad feedback
units = flag
dimensions = ()
type = logical
[rrfs_smoke_debug]
standard_name = rrfs_smoke_plumerise_debug
long_name = flag for rrfs smoke plumerise debug
units = flag
dimensions = ()
type = logical
[ncnvcld3d]
standard_name = number_of_convective_cloud_variables_in_xyz_dimensioned_restart_array
long_name = number of convective 3d clouds fields
Expand Down
Loading