Skip to content

Commit

Permalink
Add in precribed CRE experiment and transition zone for prescribed Ra…
Browse files Browse the repository at this point in the history
…diative Heating experiment
  • Loading branch information
Bryce E Harrop committed Dec 23, 2023
1 parent ac8d65e commit 231e731
Show file tree
Hide file tree
Showing 7 changed files with 947 additions and 9 deletions.
37 changes: 37 additions & 0 deletions components/cam/bld/namelist_files/namelist_definition.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5122,6 +5122,43 @@ The atm physics timestep for the run that produced the prescribed radiative heat
Default: 0.0
</entry>

<!-- presc_cre : we add the prescribed mean CREs definitions here because
they follow the model of prescribed ozone. -->
<entry id="presc_cre_datapath" type="char*256" input_pathname="abs"
category="cam_chem" group="presc_cre_nl" valid_values="" >
Full pathname of the directory that contains the files specified in
<varname>presc_cre_filelist</varname>.
Default: None, do not prescribe mean CRE by default.
</entry>

<entry id="presc_cre_file" type="char*256"
input_pathname="rel:presc_cre_datapath" category="cam_chem"
group="presc_cre_nl" valid_values="" >
Filename of dataset for prescribed mean CREs.
Default: None, do not prescribe mean CREs by default.
</entry>

<entry id="presc_cre_type" type="char*32" category="cam_chem"
group="presc_cre_nl"
valid_values="CYCLICAL,SERIAL,INTERP_MISSING_MONTHS,FIXED" >
Type of time interpolation for data in prescribed mean CRE files.
Can be set to 'CYCLICAL', 'SERIAL', 'INTERP_MISSING_MONTHS', or 'FIXED'.
Default: 'SERIAL'
</entry>

<entry id="presc_cre_num_file_years" type="real" category="cam_chem"
group="presc_cre_nl" valid_values="" >
The number of years in the prescribed mean CRE data file
if <varname>presc_cre_type</varname> is 'CYCLICAL'.
Default: 0.0
</entry>

<entry id="presc_cre_input_dtime" type="real" category="cam_chem"
group="presc_cre_nl" valid_values="" >
The time offset needed to align the mean CRE data (in seconds)
Default: 0.0
</entry>

<!-- prescribed_volcaero -->

<entry id="prescribed_volcaero_datapath" type="char*256" input_pathname="abs" category="cam_chem"
Expand Down
2 changes: 2 additions & 0 deletions components/cam/src/control/runtime_opts.F90
Original file line number Diff line number Diff line change
Expand Up @@ -260,6 +260,7 @@ subroutine read_namelist(single_column_in, scmlon_in, scmlat_in, nlfilename_in )
use prescribed_cloud, only: prescribed_cloud_readnl
use prescribed_sfc_flux, only: presc_sfc_flux_readnl
use prescribed_radheat, only: presc_radheat_readnl
use prescribed_cre, only: presc_cre_readnl
use prescribed_aero, only: prescribed_aero_readnl
use prescribed_ghg, only: prescribed_ghg_readnl
use aircraft_emit, only: aircraft_emit_readnl
Expand Down Expand Up @@ -527,6 +528,7 @@ subroutine read_namelist(single_column_in, scmlon_in, scmlat_in, nlfilename_in )
call prescribed_cloud_readnl(nlfilename)
call presc_sfc_flux_readnl(nlfilename)
call presc_radheat_readnl(nlfilename)
call presc_cre_readnl(nlfilename)
call prescribed_aero_readnl(nlfilename)
call prescribed_ghg_readnl(nlfilename)
call co2_cycle_readnl(nlfilename)
Expand Down
11 changes: 11 additions & 0 deletions components/cam/src/physics/cam/physpkg.F90
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ module physpkg
use prescribed_cloud, only: has_prescribed_cloud
use prescribed_sfc_flux, only: has_presc_sfc_flux
use prescribed_radheat, only: has_presc_radheat
use prescribed_cre, only: has_presc_cre
use zm_conv, only: trigmem
use scamMod, only: single_column, scm_crm_mode
use flux_avg, only: flux_avg_init
Expand Down Expand Up @@ -148,6 +149,7 @@ subroutine phys_register
use prescribed_cloud, only: prescribed_cloud_register
use prescribed_sfc_flux,only: presc_sfc_flux_register
use prescribed_radheat, only: presc_radheat_register
use prescribed_cre, only: presc_cre_register
use prescribed_volcaero,only: prescribed_volcaero_register
use prescribed_aero, only: prescribed_aero_register
use prescribed_ghg, only: prescribed_ghg_register
Expand Down Expand Up @@ -278,6 +280,7 @@ subroutine phys_register
call prescribed_cloud_register()
call presc_sfc_flux_register()
call presc_radheat_register()
call presc_cre_register()
call prescribed_aero_register()
call prescribed_ghg_register()
call sslt_rebin_register
Expand Down Expand Up @@ -696,6 +699,7 @@ subroutine phys_init( phys_state, phys_tend, pbuf2d, cam_out )
use prescribed_cloud, only: prescribed_cloud_init
use prescribed_sfc_flux,only: presc_sfc_flux_init
use prescribed_radheat, only: presc_radheat_init
use prescribed_cre, only: presc_cre_init
use prescribed_ghg, only: prescribed_ghg_init
use prescribed_aero, only: prescribed_aero_init
use seasalt_model, only: init_ocean_data, has_mam_mom
Expand Down Expand Up @@ -827,6 +831,7 @@ subroutine phys_init( phys_state, phys_tend, pbuf2d, cam_out )
call prescribed_cloud_init(phys_state, pbuf2d)
call presc_sfc_flux_init()
call presc_radheat_init()
call presc_cre_init()
call prescribed_ghg_init()
call prescribed_aero_init()
call aerodep_flx_init()
Expand Down Expand Up @@ -973,6 +978,7 @@ subroutine phys_run1(phys_state, ztodt, phys_tend, pbuf2d, cam_in, cam_out)
#endif
!++BEH
use prescribed_radheat, only: conserve_radiant_energy, has_presc_radheat
use prescribed_cre, only: conserve_cloudrad_energy, has_presc_cre
!--BEH

!
Expand Down Expand Up @@ -1041,6 +1047,9 @@ subroutine phys_run1(phys_state, ztodt, phys_tend, pbuf2d, cam_in, cam_out)
if ( has_presc_radheat ) then
call conserve_radiant_energy(phys_state, pbuf2d)
end if
if ( has_presc_cre ) then
!call conserve_cloudrad_energy(phys_state, pbuf2d)
end if

call t_stopf ('physpkg_st1')

Expand Down Expand Up @@ -2876,6 +2885,7 @@ subroutine phys_timestep_init(phys_state, cam_out, pbuf2d)
use prescribed_cloud, only: prescribed_cloud_adv
use prescribed_sfc_flux, only: presc_sfc_flux_adv
use prescribed_radheat, only: presc_radheat_adv
use prescribed_cre, only: presc_cre_adv
use prescribed_ghg, only: prescribed_ghg_adv
use prescribed_aero, only: prescribed_aero_adv
use aerodep_flx, only: aerodep_flx_adv
Expand Down Expand Up @@ -2908,6 +2918,7 @@ subroutine phys_timestep_init(phys_state, cam_out, pbuf2d)
call prescribed_cloud_adv(phys_state, pbuf2d)
call presc_sfc_flux_adv(phys_state, pbuf2d)
call presc_radheat_adv(phys_state, pbuf2d)
call presc_cre_adv(phys_state, pbuf2d)
call prescribed_ghg_adv(phys_state, pbuf2d)
call prescribed_aero_adv(phys_state, pbuf2d)
call aircraft_emit_adv(phys_state, pbuf2d)
Expand Down
Loading

0 comments on commit 231e731

Please sign in to comment.