Skip to content
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
1 change: 1 addition & 0 deletions ccpp/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,7 @@ endif()

#------------------------------------------------------------------------------
# Add model-specific flags for C/C++/Fortran preprocessor
add_definitions(-DCCPP)
if(NOT HYDRO)
add_definitions(-DMOIST_CAPPA -DUSE_COND -DNEMS_GSM)
endif()
Expand Down
6 changes: 3 additions & 3 deletions ccpp/config/ccpp_prebuild_config_fv3.py
Original file line number Diff line number Diff line change
Expand Up @@ -144,9 +144,9 @@
'physics/physics/CONV/Grell_Freitas/cu_gf_driver_pre.F90',
'physics/physics/CONV/Grell_Freitas/cu_gf_driver.F90',
'physics/physics/CONV/Grell_Freitas/cu_gf_driver_post.F90',
'physics/physics/CONV/C3/cu_c3_driver_pre.F90',
'physics/physics/CONV/C3/cu_c3_driver.F90',
'physics/physics/CONV/C3/cu_c3_driver_post.F90',
'physics/physics/CONV/C3/CCPP/cu_c3_driver_pre.F90',
'physics/physics/CONV/C3/CCPP/cu_c3_driver_ccpp.F90',
'physics/physics/CONV/C3/CCPP/cu_c3_driver_post.F90',
'physics/physics/CONV/RAS/rascnv.F90',
'physics/physics/GWD/cires_ugwp.F90',
'physics/physics/GWD/cires_ugwp_post.F90',
Expand Down
39 changes: 30 additions & 9 deletions ccpp/data/CCPP_typedefs.F90
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ module CCPP_typedefs
real (kind=kind_phys), pointer :: chh_ice(:) => null() !<
real (kind=kind_phys), pointer :: chh_land(:) => null() !<
real (kind=kind_phys), pointer :: chh_water(:) => null() !<
real (kind=kind_phys), pointer :: dummy(:,:) => null() !<
real (kind=kind_phys), pointer :: clcn(:,:) => null() !<
real (kind=kind_phys), pointer :: cldf(:) => null() !<
real (kind=kind_phys), pointer :: cldsa(:,:) => null() !<
Expand Down Expand Up @@ -104,6 +105,8 @@ module CCPP_typedefs
real (kind=kind_phys), pointer :: dusfcg(:) => null() !<
real (kind=kind_phys), pointer :: dusfc1(:) => null() !<
real (kind=kind_phys), pointer :: dvdftra(:,:,:) => null() !<
real (kind=kind_phys), pointer :: ten_t_pbl(:,:) => null() !<
real (kind=kind_phys), pointer :: ten_q_pbl(:,:) => null() !<
real (kind=kind_phys), pointer :: dvdt(:,:) => null() !<
real (kind=kind_phys), pointer :: dvsfcg(:) => null() !<
real (kind=kind_phys), pointer :: dvsfc1(:) => null() !<
Expand Down Expand Up @@ -559,6 +562,8 @@ subroutine gfs_interstitial_create (Interstitial, ixs, ixe, Model)
allocate (Interstitial%dusfcg (ixs:ixe))
allocate (Interstitial%dusfc1 (ixs:ixe))
allocate (Interstitial%dvdt (ixs:ixe,Model%levs))
allocate (Interstitial%ten_t_pbl (ixs:ixe,Model%levs))
allocate (Interstitial%ten_q_pbl (ixs:ixe,Model%levs))
allocate (Interstitial%dvsfcg (ixs:ixe))
allocate (Interstitial%dvsfc1 (ixs:ixe))
allocate (Interstitial%dvdftra (ixs:ixe,Model%levs,Interstitial%nvdiff))
Expand Down Expand Up @@ -718,12 +723,13 @@ subroutine gfs_interstitial_create (Interstitial, ixs, ixe, Model)
allocate (Interstitial%ztmax_land (ixs:ixe))
allocate (Interstitial%ztmax_water (ixs:ixe))

allocate (Interstitial%tv_lay (ixs:ixe, Model%levs))
allocate (Interstitial%relhum (ixs:ixe, Model%levs))
allocate (Interstitial%qs_lay (ixs:ixe, Model%levs))

! RRTMGP
if (Model%do_RRTMGP) then
allocate (Interstitial%tracer (ixs:ixe, Model%levs,Model%ntrac))
allocate (Interstitial%tv_lay (ixs:ixe, Model%levs))
allocate (Interstitial%relhum (ixs:ixe, Model%levs))
allocate (Interstitial%qs_lay (ixs:ixe, Model%levs))
allocate (Interstitial%q_lay (ixs:ixe, Model%levs))
allocate (Interstitial%deltaZ (ixs:ixe, Model%levs))
allocate (Interstitial%deltaZc (ixs:ixe, Model%levs))
Expand Down Expand Up @@ -796,6 +802,9 @@ subroutine gfs_interstitial_create (Interstitial, ixs, ixe, Model)
allocate (Interstitial%kdis_ngw (ixs:ixe,Model%levs))
end if

!-- C3 convection
allocate (Interstitial%dummy (ixs:ixe,Model%levs))

!-- GSL drag suite
if (Model%gwd_opt==3 .or. Model%gwd_opt==33 .or. &
Model%gwd_opt==2 .or. Model%gwd_opt==22 ) then
Expand Down Expand Up @@ -915,6 +924,8 @@ subroutine gfs_interstitial_destroy (Interstitial, Model)
deallocate (Interstitial%dvsfcg)
deallocate (Interstitial%dvsfc1)
deallocate (Interstitial%dvdftra)
deallocate (Interstitial%ten_t_pbl)
deallocate (Interstitial%ten_q_pbl)
deallocate (Interstitial%dzlyr)
deallocate (Interstitial%elvmax)
deallocate (Interstitial%ep1d)
Expand Down Expand Up @@ -1071,12 +1082,14 @@ subroutine gfs_interstitial_destroy (Interstitial, Model)
deallocate (Interstitial%ztmax_land)
deallocate (Interstitial%ztmax_water)

deallocate (Interstitial%tv_lay)
deallocate (Interstitial%relhum)
deallocate (Interstitial%qs_lay)


! RRTMGP
if (Model%do_RRTMGP) then
deallocate (Interstitial%tracer)
deallocate (Interstitial%tv_lay)
deallocate (Interstitial%relhum)
deallocate (Interstitial%qs_lay)
deallocate (Interstitial%q_lay)
deallocate (Interstitial%deltaZ)
deallocate (Interstitial%deltaZc)
Expand Down Expand Up @@ -1148,6 +1161,9 @@ subroutine gfs_interstitial_destroy (Interstitial, Model)
deallocate (Interstitial%kdis_ngw)
end if

!--C3 convection
deallocate (Interstitial%dummy)

!-- GSL drag suite
if (Model%gwd_opt==3 .or. Model%gwd_opt==33 .or. &
Model%gwd_opt==2 .or. Model%gwd_opt==22 ) then
Expand Down Expand Up @@ -1462,6 +1478,8 @@ subroutine gfs_interstitial_reset (Interstitial, Model)
Interstitial%dvsfcg = clear_val
Interstitial%dvsfc1 = clear_val
Interstitial%dvdftra = clear_val
Interstitial%ten_t_pbl = clear_val
Interstitial%ten_q_pbl = clear_val
Interstitial%dzlyr = clear_val
Interstitial%elvmax = clear_val
Interstitial%ep1d = clear_val
Expand Down Expand Up @@ -1629,12 +1647,13 @@ subroutine gfs_interstitial_reset (Interstitial, Model)
Interstitial%ztmax_land = clear_val
Interstitial%ztmax_water = clear_val

Interstitial%tv_lay = clear_val
Interstitial%relhum = clear_val
Interstitial%qs_lay = clear_val

! RRTMGP
if (Model%do_RRTMGP) then
Interstitial%tracer = clear_val
Interstitial%tv_lay = clear_val
Interstitial%relhum = clear_val
Interstitial%qs_lay = clear_val
Interstitial%q_lay = clear_val
Interstitial%deltaZ = clear_val
Interstitial%deltaZc = clear_val
Expand Down Expand Up @@ -1712,6 +1731,8 @@ subroutine gfs_interstitial_reset (Interstitial, Model)
Interstitial%kdis_ngw = clear_val
end if

!-- C3
Interstitial%dummy = clear_val
!-- GSL drag suite
if (Model%gwd_opt==3 .or. Model%gwd_opt==33 .or. &
Model%gwd_opt==2 .or. Model%gwd_opt==22 ) then
Expand Down
24 changes: 21 additions & 3 deletions ccpp/data/CCPP_typedefs.meta
Original file line number Diff line number Diff line change
Expand Up @@ -388,6 +388,13 @@
dimensions = (horizontal_dimension)
type = real
kind = kind_phys
[dummy]
standard_name = dummy
long_name = dummy
units = none
dimensions = (horizontal_dimension,vertical_layer_dimension)
type = real
kind = kind_phys
[cnv_dqldt]
standard_name = tendency_of_cloud_water_due_to_convective_microphysics
long_name = tendency of cloud water due to convective microphysics
Expand Down Expand Up @@ -663,6 +670,20 @@
dimensions = (horizontal_dimension)
type = real
kind = kind_phys
[ten_t_pbl]
standard_name = tendency_of_air_temperature_due_to_PBL
long_name = tendency of air temperature calculated by the PBL scheme
units = K s-1
dimensions = (horizontal_dimension,vertical_layer_dimension)
type = real
kind = kind_phys
[ten_q_pbl]
standard_name = tendency_of_specific_humidity_concentration_due_to_PBL
long_name = tendency of tracer concentration calculated by one physics scheme
units = kg kg-1 s-1
dimensions = (horizontal_dimension,vertical_layer_dimension)
type = real
kind = kind_phys
[dvdftra]
standard_name = tendency_of_vertically_diffused_tracer_concentration
long_name = tendency of the tracers due to vertical diffusion in PBL scheme
Expand Down Expand Up @@ -2522,7 +2543,6 @@
dimensions = (horizontal_dimension,vertical_layer_dimension)
type = real
kind = kind_phys
active = (flag_for_rrtmgp_radiation_scheme)
[q_lay]
standard_name = water_vapor_mixing_ratio
long_name = water vaport mixing ratio
Expand Down Expand Up @@ -2570,15 +2590,13 @@
dimensions = (horizontal_dimension,vertical_layer_dimension)
type = real
kind = kind_phys
active = (flag_for_rrtmgp_radiation_scheme)
[relhum]
standard_name = relative_humidity
long_name = layer relative humidity
units = frac
dimensions = (horizontal_dimension,vertical_layer_dimension)
type = real
kind = kind_phys
active = (flag_for_rrtmgp_radiation_scheme)
[deltaZ]
standard_name = layer_thickness
long_name = layer_thickness
Expand Down
2 changes: 1 addition & 1 deletion ccpp/suites/suite_FV3_GFS_v17_coupled_p8_c3.xml
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@
<scheme>get_phi_fv3</scheme>
<scheme>GFS_suite_interstitial_3</scheme>
<scheme>cu_c3_driver_pre</scheme>
<scheme>cu_c3_driver</scheme>
<scheme>cu_c3_driver_ccpp</scheme>
<scheme>GFS_DCNV_generic_post</scheme>
<scheme>GFS_suite_interstitial_4</scheme>
<scheme>cnvc90</scheme>
Expand Down
2 changes: 1 addition & 1 deletion ccpp/suites/suite_FV3_GFS_v17_p8_c3.xml
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@
<scheme>get_phi_fv3</scheme>
<scheme>GFS_suite_interstitial_3</scheme>
<scheme>cu_c3_driver_pre</scheme>
<scheme>cu_c3_driver</scheme>
<scheme>cu_c3_driver_ccpp</scheme>
<scheme>GFS_DCNV_generic_post</scheme>
<scheme>GFS_suite_interstitial_4</scheme>
<scheme>cnvc90</scheme>
Expand Down
2 changes: 1 addition & 1 deletion ccpp/suites/suite_FV3_HRRR_c3.xml
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@
<scheme>get_phi_fv3</scheme>
<scheme>GFS_suite_interstitial_3</scheme>
<scheme>cu_c3_driver_pre</scheme>
<scheme>cu_c3_driver</scheme>
<scheme>cu_c3_driver_ccpp</scheme>
<scheme>GFS_DCNV_generic_post</scheme>
<scheme>GFS_suite_interstitial_4</scheme>
<scheme>cnvc90</scheme>
Expand Down
2 changes: 1 addition & 1 deletion ccpp/suites/suite_FV3_global_nest_v1.xml
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@
<scheme>get_phi_fv3</scheme>
<scheme>GFS_suite_interstitial_3</scheme>
<scheme>cu_c3_driver_pre</scheme>
<scheme>cu_c3_driver</scheme>
<scheme>cu_c3_driver_ccpp</scheme>
<scheme>GFS_DCNV_generic_post</scheme>
<scheme>GFS_suite_interstitial_4</scheme>
<scheme>cnvc90</scheme>
Expand Down
Loading