module physics_abstraction_layer use machine, only: kind_phys use GFS_typedefs, only: init_type => GFS_init_type, & control_type => GFS_control_type, & statein_type => GFS_statein_type, & stateout_type => GFS_stateout_type, & sfcprop_type => GFS_sfcprop_type, & coupling_type => GFS_coupling_type, & grid_type => GFS_grid_type, & tbd_type => GFS_tbd_type, & cldprop_type => GFS_cldprop_type, & radtend_type => GFS_radtend_type, & intdiag_type => GFS_diag_type #ifdef CCPP use GFS_typedefs, only: interstitial_type => GFS_interstitial_type, & data_type => GFS_data_type #endif use GFS_restart, only: restart_type => GFS_restart_type, & restart_populate => GFS_restart_populate use GFS_diagnostics, only: diagnostic_type => GFS_externaldiag_type, & diagnostic_populate => GFS_externaldiag_populate #ifdef CCPP use GFS_driver, only: initialize => GFS_initialize #else use GFS_driver, only: initialize => GFS_initialize, & time_vary_step => GFS_time_vary_step, & radiation_step1 => GFS_radiation_driver, & physics_step1 => GFS_physics_driver, & physics_step2 => GFS_stochastic_driver #endif #ifndef CCPP ! DH* even in the non-CCPP build, these don't get used (same for NAM physics) integer :: num_time_vary_steps = 1 integer :: num_rad_steps = 1 integer :: num_phys_steps = 2 ! *DH #endif !------------------------- ! public physics dataspec !------------------------- public kind_phys !---------------------- ! public physics types !---------------------- public init_type public control_type public statein_type public stateout_type public sfcprop_type public coupling_type public grid_type public tbd_type public cldprop_type public radtend_type public intdiag_type public restart_type public diagnostic_type #ifdef CCPP public interstitial_type #endif !------------------ ! public variables !------------------ #ifndef CCPP ! DH* even in the non-CCPP build, these don't get used (same for NAM physics) public num_time_vary_steps public num_rad_steps public num_phys_steps ! *DH #endif !-------------------------- ! public physics functions !-------------------------- public initialize #ifndef CCPP public time_vary_step public radiation_step1 public physics_step1 public physics_step2 #endif CONTAINS end module physics_abstraction_layer