diff --git a/physics/CONV/C3/cu_c3_deep.F90 b/physics/CONV/C3/cu_c3_deep.F90 index 91ff96795..2b88bba6f 100644 --- a/physics/CONV/C3/cu_c3_deep.F90 +++ b/physics/CONV/C3/cu_c3_deep.F90 @@ -190,7 +190,7 @@ subroutine cu_c3_deep_run( & ,intent (in ) :: & tmf real(kind=kind_phys), dimension (its:,kts:) & - ,intent (in ), optional :: & + ,intent (in ), optional :: & qmicro, sigmain, forceqv_spechum real(kind=kind_phys), dimension (its:) & ,intent (inout ) :: & @@ -226,7 +226,7 @@ subroutine cu_c3_deep_run( & q,qo,zuo,zdo,zdm !$acc declare sigmaout real(kind=kind_phys), dimension (its:,kts:) & - ,intent (out), optional :: & + ,intent (out), optional :: & sigmaout real(kind=kind_phys), dimension (its:) & ,intent (in ) :: & diff --git a/physics/CONV/C3/cu_c3_driver_post.F90 b/physics/CONV/C3/cu_c3_driver_post.F90 index 28ddbf62b..8e97e9a04 100644 --- a/physics/CONV/C3/cu_c3_driver_post.F90 +++ b/physics/CONV/C3/cu_c3_driver_post.F90 @@ -26,16 +26,16 @@ subroutine cu_c3_driver_post_run (im, km, t, q, prevst, prevsq, cactiv, cactiv_m real(kind_phys), intent(in) :: t(:,:) real(kind_phys), intent(in) :: q(:,:) real(kind_phys), dimension(:),intent(in) :: garea - real(kind_phys), intent(out), optional :: prevst(:,:) - real(kind_phys), intent(out), optional :: prevsq(:,:) - integer, intent(in), optional :: cactiv(:) - integer, intent(in), optional :: cactiv_m(:) - real(kind_phys), intent(out), optional :: conv_act(:) - real(kind_phys), intent(out), optional :: conv_act_m(:) + real(kind_phys), intent(out) :: prevst(:,:) + real(kind_phys), intent(out) :: prevsq(:,:) + integer, intent(in) :: cactiv(:) + integer, intent(in) :: cactiv_m(:) + real(kind_phys), intent(out) :: conv_act(:) + real(kind_phys), intent(out) :: conv_act_m(:) ! for Radar reflectivity real(kind_phys), intent(in) :: dt real(kind_phys), intent(in) :: raincv(:) - real(kind_phys), intent(in), optional :: maxupmf(:) + real(kind_phys), intent(in) :: maxupmf(:) real(kind_phys), intent(inout) :: refl_10cm(:,:) character(len=*), intent(out) :: errmsg !$acc declare copyin(t,q,cactiv,cactiv_m) copyout(prevst,prevsq,conv_act,conv_act_m) diff --git a/physics/CONV/C3/cu_c3_driver_post.meta b/physics/CONV/C3/cu_c3_driver_post.meta index 4e4122b69..78dca2ed4 100644 --- a/physics/CONV/C3/cu_c3_driver_post.meta +++ b/physics/CONV/C3/cu_c3_driver_post.meta @@ -45,7 +45,6 @@ type = real kind = kind_phys intent = out - optional = True [prevsq] standard_name = specific_humidity_on_previous_timestep long_name = moisture from previous time step @@ -54,7 +53,6 @@ type = real kind = kind_phys intent = out - optional = True [cactiv] standard_name = counter_for_grell_freitas_convection long_name = convective activity memory @@ -62,7 +60,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = True [cactiv_m] standard_name = counter_for_grell_freitas_mid_level_convection long_name = midlevel convective activity memory @@ -70,7 +67,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = True [conv_act] standard_name = consecutive_calls_for_grell_freitas_convection long_name = Memory counter for GF @@ -79,7 +75,6 @@ type = real kind = kind_phys intent = out - optional = True [conv_act_m] standard_name = consecutive_calls_for_grell_freitas_mid_level_convection long_name = Memory counter for GF midlevel @@ -88,7 +83,6 @@ type = real kind = kind_phys intent = out - optional = True [dt] standard_name = timestep_for_physics long_name = physics time step @@ -121,7 +115,6 @@ type = real kind = kind_phys intent = in - optional = True [refl_10cm] standard_name = radar_reflectivity_10cm long_name = instantaneous refl_10cm diff --git a/physics/CONV/C3/cu_c3_driver_pre.F90 b/physics/CONV/C3/cu_c3_driver_pre.F90 index 368687116..c6e79059b 100644 --- a/physics/CONV/C3/cu_c3_driver_pre.F90 +++ b/physics/CONV/C3/cu_c3_driver_pre.F90 @@ -30,16 +30,16 @@ subroutine cu_c3_driver_pre_run (flag_init, flag_restart, kdt, fhour, dtp, t, q, real(kind_phys), intent(in) :: dtp real(kind_phys), intent(in) :: t(:,:) real(kind_phys), intent(in) :: q(:,:) - real(kind_phys), intent(in), optional :: prevst(:,:) - real(kind_phys), intent(in), optional :: prevsq(:,:) + real(kind_phys), intent(in) :: prevst(:,:) + real(kind_phys), intent(in) :: prevsq(:,:) !$acc declare copyin(t,q,prevst,prevsq) - real(kind_phys), intent(out), optional :: forcet(:,:) - real(kind_phys), intent(out), optional :: forceq(:,:) - integer, intent(out), optional :: cactiv(:) - integer, intent(out), optional :: cactiv_m(:) + real(kind_phys), intent(out) :: forcet(:,:) + real(kind_phys), intent(out) :: forceq(:,:) + integer, intent(out) :: cactiv(:) + integer, intent(out) :: cactiv_m(:) !$acc declare copyout(forcet,forceq,cactiv,cactiv_m) - real(kind_phys), intent(in), optional :: conv_act(:) - real(kind_phys), intent(in), optional :: conv_act_m(:) + real(kind_phys), intent(in) :: conv_act(:) + real(kind_phys), intent(in) :: conv_act_m(:) !$acc declare copyin(conv_act,conv_act_m) character(len=*), intent(out) :: errmsg integer, intent(out) :: errflg diff --git a/physics/CONV/C3/cu_c3_driver_pre.meta b/physics/CONV/C3/cu_c3_driver_pre.meta index 6e0b30045..a022cf743 100644 --- a/physics/CONV/C3/cu_c3_driver_pre.meta +++ b/physics/CONV/C3/cu_c3_driver_pre.meta @@ -68,7 +68,6 @@ type = real kind = kind_phys intent = in - optional = True [prevsq] standard_name = specific_humidity_on_previous_timestep long_name = moisture from previous time step @@ -77,7 +76,6 @@ type = real kind = kind_phys intent = in - optional = True [forcet] standard_name = tendency_of_air_temperature_due_to_nonphysics long_name = temperature tendency due to dynamics only @@ -86,7 +84,6 @@ type = real kind = kind_phys intent = out - optional = True [forceq] standard_name = tendendy_of_specific_humidity_due_to_nonphysics long_name = moisture tendency due to dynamics only @@ -95,7 +92,6 @@ type = real kind = kind_phys intent = out - optional = True [cactiv] standard_name = counter_for_grell_freitas_convection long_name = convective activity memory @@ -103,7 +99,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = out - optional = True [cactiv_m] standard_name = counter_for_grell_freitas_mid_level_convection long_name = midlevel convective activity memory @@ -111,7 +106,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = out - optional = True [conv_act] standard_name = consecutive_calls_for_grell_freitas_convection long_name = Memory counter for GF @@ -120,7 +114,6 @@ type = real kind = kind_phys intent = in - optional = True [conv_act_m] standard_name = consecutive_calls_for_grell_freitas_mid_level_convection long_name = Memory counter for GF midlevel @@ -129,7 +122,6 @@ type = real kind = kind_phys intent = in - optional = True [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP diff --git a/physics/CONV/C3/cu_c3_sh.F90 b/physics/CONV/C3/cu_c3_sh.F90 index f927d1fbd..92feb44f7 100644 --- a/physics/CONV/C3/cu_c3_sh.F90 +++ b/physics/CONV/C3/cu_c3_sh.F90 @@ -104,7 +104,7 @@ subroutine cu_c3_sh_run ( & ,intent (in ) :: & tmf real(kind=kind_phys), dimension (its:,kts:) & - ,intent (in ), optional :: & + ,intent (in ), optional :: & qmicro, sigmain, forceqv_spechum real(kind=kind_phys), dimension (its:) & @@ -139,7 +139,7 @@ subroutine cu_c3_sh_run ( & dtime,tcrit,fv,r_d,betascu,betamcu,betadcu !$acc declare sigmaout real(kind=kind_phys), dimension (its:,kts:) & - ,intent (out), optional :: & + ,intent (out), optional :: & sigmaout diff --git a/physics/CONV/Chikira_Sugiyama/cs_conv.F90 b/physics/CONV/Chikira_Sugiyama/cs_conv.F90 index 02c834ffa..84a06f377 100644 --- a/physics/CONV/Chikira_Sugiyama/cs_conv.F90 +++ b/physics/CONV/Chikira_Sugiyama/cs_conv.F90 @@ -195,12 +195,12 @@ subroutine cs_conv_run( IJSDIM , KMAX , ntracp1 , NN, & ! ! modified arguments ! - real(kind_phys), intent(inout), optional :: CBMFX(:,:) ! cloud base mass flux (kg/m2/s) + real(kind_phys), intent(inout) :: CBMFX(:,:) ! cloud base mass flux (kg/m2/s) ! ! output arguments ! ! updraft, downdraft, and detrainment mass flux (kg/m2/s) - real(kind_phys), intent(inout), dimension(:,:), optional :: ud_mf + real(kind_phys), intent(inout), dimension(:,:) :: ud_mf real(kind_phys), intent(inout), dimension(:,:) :: dd_mf, dt_mf real(kind_phys), intent(out) :: rain1(:) ! lwe thickness of deep convective precipitation amount (m) diff --git a/physics/CONV/Chikira_Sugiyama/cs_conv.meta b/physics/CONV/Chikira_Sugiyama/cs_conv.meta index ee8e1de55..5211b939e 100644 --- a/physics/CONV/Chikira_Sugiyama/cs_conv.meta +++ b/physics/CONV/Chikira_Sugiyama/cs_conv.meta @@ -159,7 +159,6 @@ type = real kind = kind_phys intent = inout - optional = True [dd_mf] standard_name = instantaneous_atmosphere_downdraft_convective_mass_flux long_name = (downdraft mass flux) * delt @@ -216,7 +215,6 @@ type = real kind = kind_phys intent = inout - optional = True [mype] standard_name = mpi_rank long_name = current MPI rank diff --git a/physics/CONV/Grell_Freitas/cu_gf_driver.F90 b/physics/CONV/Grell_Freitas/cu_gf_driver.F90 index ba1fcb5e0..47bddd799 100644 --- a/physics/CONV/Grell_Freitas/cu_gf_driver.F90 +++ b/physics/CONV/Grell_Freitas/cu_gf_driver.F90 @@ -82,7 +82,7 @@ subroutine cu_gf_driver_run(ntracer,garea,im,km,dt,flag_init,flag_restart, gf_co integer :: ichoicem=13 ! 0 2 5 13 integer :: ichoice_s=3 ! 0 1 2 3 integer, intent(in) :: spp_cu_deep ! flag for using SPP perturbations - real(kind_phys), dimension(:,:), intent(in),optional :: & + real(kind_phys), dimension(:,:), optional, intent(in) :: & & spp_wts_cu_deep real(kind=kind_phys) :: spp_wts_cu_deep_tmp @@ -129,7 +129,7 @@ subroutine cu_gf_driver_run(ntracer,garea,im,km,dt,flag_init,flag_restart, gf_co integer, dimension (:), intent(out) :: hbot,htop,kcnv integer, dimension (:), intent(in) :: xland real(kind=kind_phys), dimension (:), intent(in) :: pbl - real(kind=kind_phys), dimension (:), intent(in), optional :: maxMF + real(kind=kind_phys), dimension (:), intent(in) :: maxMF !$acc declare copyout(hbot,htop,kcnv) !$acc declare copyin(xland,pbl) integer, dimension (im) :: tropics diff --git a/physics/CONV/Grell_Freitas/cu_gf_driver.meta b/physics/CONV/Grell_Freitas/cu_gf_driver.meta index 4a645b4ab..39a20f755 100644 --- a/physics/CONV/Grell_Freitas/cu_gf_driver.meta +++ b/physics/CONV/Grell_Freitas/cu_gf_driver.meta @@ -335,7 +335,6 @@ type = real kind = kind_phys intent = inout - optional = True [cliw] standard_name = ice_water_mixing_ratio_convective_transport_tracer long_name = ratio of mass of ice water to mass of dry air plus vapor (without condensates) in the convectively transported tracer array diff --git a/physics/CONV/Grell_Freitas/cu_gf_driver_post.F90 b/physics/CONV/Grell_Freitas/cu_gf_driver_post.F90 index 8380e2dae..d01991088 100644 --- a/physics/CONV/Grell_Freitas/cu_gf_driver_post.F90 +++ b/physics/CONV/Grell_Freitas/cu_gf_driver_post.F90 @@ -16,7 +16,7 @@ module cu_gf_driver_post !> \section arg_table_cu_gf_driver_post_run Argument Table !! \htmlinclude cu_gf_driver_post_run.html !! - subroutine cu_gf_driver_post_run (im, km, t, q, prevst, prevsq, cactiv, cactiv_m, conv_act, conv_act_m, rrfs_sd, ntsmoke, ntdust, ntcoarsepm, chem3d, gq0, errmsg, errflg) + subroutine cu_gf_driver_post_run (im, km, t, q, prevst, prevsq, cactiv, cactiv_m, conv_act, conv_act_m, ntsmoke, ntdust, ntcoarsepm, chem3d, gq0, errmsg, errflg) use machine, only: kind_phys @@ -26,13 +26,12 @@ subroutine cu_gf_driver_post_run (im, km, t, q, prevst, prevsq, cactiv, cactiv_m integer, intent(in) :: im, km real(kind_phys), intent(in) :: t(:,:) real(kind_phys), intent(in) :: q(:,:) - real(kind_phys), intent(out), optional :: prevst(:,:) - real(kind_phys), intent(out), optional :: prevsq(:,:) - integer, intent(in), optional :: cactiv(:) - integer, intent(in), optional :: cactiv_m(:) - real(kind_phys), intent(out), optional :: conv_act(:) - real(kind_phys), intent(out), optional :: conv_act_m(:) - logical, intent(in) :: rrfs_sd + real(kind_phys), intent(out) :: prevst(:,:) + real(kind_phys), intent(out) :: prevsq(:,:) + integer, intent(in) :: cactiv(:) + integer, intent(in) :: cactiv_m(:) + real(kind_phys), intent(out) :: conv_act(:) + real(kind_phys), intent(out) :: conv_act_m(:) integer, intent(in) :: ntsmoke, ntdust, ntcoarsepm real(kind_phys), intent(inout), optional :: chem3d(:,:,:) real(kind_phys), intent(inout) :: gq0(:,:,:) @@ -64,7 +63,7 @@ subroutine cu_gf_driver_post_run (im, km, t, q, prevst, prevsq, cactiv, cactiv_m endif enddo - if (rrfs_sd) then + if (present(chem3d)) then gq0(:,:,ntsmoke ) = chem3d(:,:,1) gq0(:,:,ntdust ) = chem3d(:,:,2) gq0(:,:,ntcoarsepm) = chem3d(:,:,3) diff --git a/physics/CONV/Grell_Freitas/cu_gf_driver_post.meta b/physics/CONV/Grell_Freitas/cu_gf_driver_post.meta index 302fec1d7..f1113302c 100644 --- a/physics/CONV/Grell_Freitas/cu_gf_driver_post.meta +++ b/physics/CONV/Grell_Freitas/cu_gf_driver_post.meta @@ -45,7 +45,6 @@ type = real kind = kind_phys intent = out - optional = True [prevsq] standard_name = specific_humidity_on_previous_timestep long_name = moisture from previous time step @@ -54,7 +53,6 @@ type = real kind = kind_phys intent = out - optional = True [cactiv] standard_name = counter_for_grell_freitas_convection long_name = convective activity memory @@ -62,7 +60,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = True [cactiv_m] standard_name = counter_for_grell_freitas_mid_level_convection long_name = midlevel convective activity memory @@ -70,7 +67,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = True [conv_act] standard_name = consecutive_calls_for_grell_freitas_convection long_name = Memory counter for GF @@ -79,7 +75,6 @@ type = real kind = kind_phys intent = out - optional = True [conv_act_m] standard_name = consecutive_calls_for_grell_freitas_mid_level_convection long_name = Memory counter for GF midlevel @@ -88,14 +83,6 @@ type = real kind = kind_phys intent = out - optional = True -[rrfs_sd] - standard_name = do_smoke_coupling - long_name = flag controlling rrfs_sd collection - units = flag - dimensions = () - type = logical - intent = in [ntsmoke] standard_name = index_for_smoke_in_tracer_concentration_array long_name = tracer index for smoke diff --git a/physics/CONV/Grell_Freitas/cu_gf_driver_pre.F90 b/physics/CONV/Grell_Freitas/cu_gf_driver_pre.F90 index cd42b3906..58e1667d4 100644 --- a/physics/CONV/Grell_Freitas/cu_gf_driver_pre.F90 +++ b/physics/CONV/Grell_Freitas/cu_gf_driver_pre.F90 @@ -18,8 +18,7 @@ module cu_gf_driver_pre !! subroutine cu_gf_driver_pre_run (flag_init, flag_restart, gf_coldstart, kdt, fhour, dtp, t, q, prevst, prevsq, & forcet, forceq, cactiv, cactiv_m, conv_act, conv_act_m, & - rrfs_sd, ntsmoke, ntdust, ntcoarsepm, chem3d, gq0, & - errmsg, errflg) + ntsmoke, ntdust, ntcoarsepm, chem3d, gq0, errmsg, errflg) use machine, only: kind_phys @@ -27,24 +26,23 @@ subroutine cu_gf_driver_pre_run (flag_init, flag_restart, gf_coldstart, kdt, fho logical, intent(in) :: flag_init logical, intent(in) :: flag_restart - logical, intent(in) :: gf_coldstart - logical, intent(in) :: rrfs_sd + logical, intent(in) :: gf_coldstart integer, intent(in) :: kdt real(kind_phys), intent(in) :: fhour real(kind_phys), intent(in) :: dtp real(kind_phys), intent(in) :: t(:,:) real(kind_phys), intent(in) :: q(:,:) - real(kind_phys), intent(in), optional :: prevst(:,:) - real(kind_phys), intent(in), optional :: prevsq(:,:) + real(kind_phys), intent(in) :: prevst(:,:) + real(kind_phys), intent(in) :: prevsq(:,:) !$acc declare copyin(t,q,prevst,prevsq) - real(kind_phys), intent(out), optional :: forcet(:,:) - real(kind_phys), intent(out), optional :: forceq(:,:) - integer, intent(out), optional :: cactiv(:) - integer, intent(out), optional :: cactiv_m(:) + real(kind_phys), intent(out) :: forcet(:,:) + real(kind_phys), intent(out) :: forceq(:,:) + integer, intent(out) :: cactiv(:) + integer, intent(out) :: cactiv_m(:) integer, intent(in) :: ntsmoke, ntdust, ntcoarsepm !$acc declare copyout(forcet,forceq,cactiv,cactiv_m) - real(kind_phys), intent(in), optional :: conv_act(:) - real(kind_phys), intent(in), optional :: conv_act_m(:) + real(kind_phys), intent(in) :: conv_act(:) + real(kind_phys), intent(in) :: conv_act_m(:) real(kind_phys), intent(inout), optional :: chem3d(:,:,:) real(kind_phys), intent(inout) :: gq0(:,:,:) !$acc declare copyin(conv_act,conv_act_m) copy(chem3d,gq0) @@ -85,7 +83,7 @@ subroutine cu_gf_driver_pre_run (flag_init, flag_restart, gf_coldstart, kdt, fho cactiv(:)=nint(conv_act(:)) cactiv_m(:)=nint(conv_act_m(:)) - if (rrfs_sd) then + if (present(chem3d)) then chem3d(:,:,1) = gq0(:,:,ntsmoke) chem3d(:,:,2) = gq0(:,:,ntdust) chem3d(:,:,3) = gq0(:,:,ntcoarsepm) diff --git a/physics/CONV/Grell_Freitas/cu_gf_driver_pre.meta b/physics/CONV/Grell_Freitas/cu_gf_driver_pre.meta index 397c42f8c..7635e3170 100644 --- a/physics/CONV/Grell_Freitas/cu_gf_driver_pre.meta +++ b/physics/CONV/Grell_Freitas/cu_gf_driver_pre.meta @@ -68,7 +68,6 @@ type = real kind = kind_phys intent = in - optional = True [prevsq] standard_name = specific_humidity_on_previous_timestep long_name = moisture from previous time step @@ -77,7 +76,6 @@ type = real kind = kind_phys intent = in - optional = True [forcet] standard_name = tendency_of_air_temperature_due_to_nonphysics long_name = temperature tendency due to dynamics only @@ -86,7 +84,6 @@ type = real kind = kind_phys intent = out - optional = True [forceq] standard_name = tendendy_of_specific_humidity_due_to_nonphysics long_name = moisture tendency due to dynamics only @@ -95,7 +92,6 @@ type = real kind = kind_phys intent = out - optional = True [cactiv] standard_name = counter_for_grell_freitas_convection long_name = convective activity memory @@ -103,7 +99,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = out - optional = True [cactiv_m] standard_name = counter_for_grell_freitas_mid_level_convection long_name = midlevel convective activity memory @@ -111,7 +106,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = out - optional = True [conv_act] standard_name = consecutive_calls_for_grell_freitas_convection long_name = Memory counter for GF @@ -120,7 +114,6 @@ type = real kind = kind_phys intent = in - optional = True [conv_act_m] standard_name = consecutive_calls_for_grell_freitas_mid_level_convection long_name = Memory counter for GF midlevel @@ -129,7 +122,6 @@ type = real kind = kind_phys intent = in - optional = True [gf_coldstart] standard_name = flag_for_cold_start_gf long_name = flag to cold start G-F @@ -137,13 +129,6 @@ dimensions = () type = logical intent = in -[rrfs_sd] - standard_name = do_smoke_coupling - long_name = flag controlling rrfs_sd collection - units = flag - dimensions = () - type = logical - intent = in [ntsmoke] standard_name = index_for_smoke_in_tracer_concentration_array long_name = tracer index for smoke diff --git a/physics/CONV/RAS/rascnv.F90 b/physics/CONV/RAS/rascnv.F90 index a6f21ea30..37945bed4 100644 --- a/physics/CONV/RAS/rascnv.F90 +++ b/physics/CONV/RAS/rascnv.F90 @@ -331,7 +331,7 @@ subroutine rascnv_run(IM, k, itc, ntc, ntr, dt, dtf & real(kind=kind_phys), dimension(:,:), intent(inout) :: tin, qin, uin, vin real(kind=kind_phys), dimension(:,:), intent(in) :: prsl, prslk, phil & &, rhc - real(kind=kind_phys), dimension(:,:), intent(out), optional :: ud_mf + real(kind=kind_phys), dimension(:,:), intent(out) :: ud_mf real(kind=kind_phys), dimension(:,:), intent(out) :: dd_mf, dt_mf real(kind=kind_phys), dimension(:,:), intent(inout), optional :: qlcn, qicn, w_upi & &, cnv_mfd & @@ -340,7 +340,7 @@ subroutine rascnv_run(IM, k, itc, ntc, ntr, dt, dtf & &, cnv_nice, cf_upi real(kind=kind_phys), dimension(:) , intent(in) :: area, cdrag real(kind=kind_phys), dimension(:) , intent(out) :: rainc - real(kind=kind_phys), dimension(:) , intent(out), optional :: ddvel + real(kind=kind_phys), dimension(:) , intent(out) :: ddvel real(kind=kind_phys), dimension(:,:), intent(in) :: rannum real(kind=kind_phys), intent(inout) :: ccin(:,:,:) real(kind=kind_phys), intent(in) :: dt, dtf diff --git a/physics/CONV/RAS/rascnv.meta b/physics/CONV/RAS/rascnv.meta index 8e23ae8b8..9969e10b5 100644 --- a/physics/CONV/RAS/rascnv.meta +++ b/physics/CONV/RAS/rascnv.meta @@ -482,7 +482,6 @@ type = real kind = kind_phys intent = out - optional = True [ud_mf] standard_name = instantaneous_atmosphere_updraft_convective_mass_flux long_name = (updraft mass flux) * dt @@ -491,7 +490,6 @@ type = real kind = kind_phys intent = out - optional = True [dd_mf] standard_name = instantaneous_atmosphere_downdraft_convective_mass_flux long_name = (downdraft mass flux) * dt diff --git a/physics/CONV/SAMF/samfdeepcnv.f b/physics/CONV/SAMF/samfdeepcnv.f index cd1029ff9..b9f0ea8bc 100644 --- a/physics/CONV/SAMF/samfdeepcnv.f +++ b/physics/CONV/SAMF/samfdeepcnv.f @@ -124,7 +124,7 @@ subroutine samfdeepcnv_run (im,km,first_time_step,restart, & real(kind=kind_phys), intent(out) :: cldwrk(:), & & rn(:), & & dd_mf(:,:), dt_mf(:,:) - real(kind=kind_phys), intent(out), optional :: ud_mf(:,:) + real(kind=kind_phys), intent(out) :: ud_mf(:,:) ! GJF* These variables are conditionally allocated depending on whether the ! Morrison-Gettelman microphysics is used, so they must be declared ! using assumed shape. diff --git a/physics/CONV/SAMF/samfdeepcnv.meta b/physics/CONV/SAMF/samfdeepcnv.meta index a6bafa4ad..7c208d2d3 100644 --- a/physics/CONV/SAMF/samfdeepcnv.meta +++ b/physics/CONV/SAMF/samfdeepcnv.meta @@ -419,7 +419,6 @@ type = real kind = kind_phys intent = out - optional = True [dd_mf] standard_name = instantaneous_atmosphere_downdraft_convective_mass_flux long_name = (downdraft mass flux) * delt diff --git a/physics/CONV/SAMF/samfshalcnv.f b/physics/CONV/SAMF/samfshalcnv.f index 7439378c3..0746d085e 100644 --- a/physics/CONV/SAMF/samfshalcnv.f +++ b/physics/CONV/SAMF/samfshalcnv.f @@ -90,9 +90,10 @@ subroutine samfshalcnv_run(im,km,itc,ntc,cliq,cp,cvap, & real(kind=kind_phys), intent(out) :: rn(:), & & cnvw(:,:), cnvc(:,:), dt_mf(:,:) ! - real(kind=kind_phys), intent(out), optional :: ud_mf(:,:) + real(kind=kind_phys), intent(out) :: ud_mf(:,:) real(kind=kind_phys), intent(inout), optional :: sigmaout(:,:), & & omegaout(:,:) + real(kind=kind_phys), intent(in) :: clam, c0s, c1, & & asolfac, evef, pgcon logical, intent(in) :: hwrf_samfshal,first_time_step, & diff --git a/physics/CONV/SAMF/samfshalcnv.meta b/physics/CONV/SAMF/samfshalcnv.meta index 365d72519..d6fb7960d 100644 --- a/physics/CONV/SAMF/samfshalcnv.meta +++ b/physics/CONV/SAMF/samfshalcnv.meta @@ -390,7 +390,6 @@ type = real kind = kind_phys intent = out - optional = True [dt_mf] standard_name = instantaneous_atmosphere_detrainment_convective_mass_flux long_name = (detrainment mass flux) * delt diff --git a/physics/CONV/SAS/sascnvn.F b/physics/CONV/SAS/sascnvn.F index 709e4dd5b..4e3dfcc41 100644 --- a/physics/CONV/SAS/sascnvn.F +++ b/physics/CONV/SAS/sascnvn.F @@ -127,7 +127,7 @@ subroutine sascnvn_run( & cnvw(:,:), cnvc(:,:) real(kind=kind_phys), intent(out) :: cldwrk(:), rn(:), & & dt_mf(:,:), dd_mf(:,:) - real(kind=kind_phys), intent(out), optional :: ud_mf(:,:) + real(kind=kind_phys), intent(out) :: ud_mf(:,:) real(kind=kind_phys), intent(inout), optional :: & & qlcn(:,:), qicn(:,:), & & w_upi(:,:), cnv_mfd(:,:), & diff --git a/physics/CONV/SAS/sascnvn.meta b/physics/CONV/SAS/sascnvn.meta index 10b0f9aff..b73dc5f47 100644 --- a/physics/CONV/SAS/sascnvn.meta +++ b/physics/CONV/SAS/sascnvn.meta @@ -305,7 +305,6 @@ type = real kind = kind_phys intent = out - optional = True [dd_mf] standard_name = instantaneous_atmosphere_downdraft_convective_mass_flux long_name = (downdraft mass flux) * delt diff --git a/physics/CONV/SAS/shalcnv.F b/physics/CONV/SAS/shalcnv.F index d8753cba6..872b6d694 100644 --- a/physics/CONV/SAS/shalcnv.F +++ b/physics/CONV/SAS/shalcnv.F @@ -120,7 +120,7 @@ subroutine shalcnv_run( & & u1(:,:), v1(:,:), & & cnvw(:,:), cnvc(:,:) real(kind=kind_phys), intent(out) :: rn(:), dt_mf(:,:) - real(kind=kind_phys), intent(out), optional :: ud_mf(:,:) + real(kind=kind_phys), intent(out) :: ud_mf(:,:) character(len=*), intent(out) :: errmsg integer, intent(out) :: errflg ! diff --git a/physics/CONV/SAS/shalcnv.meta b/physics/CONV/SAS/shalcnv.meta index 8a06e7b06..15324ed08 100644 --- a/physics/CONV/SAS/shalcnv.meta +++ b/physics/CONV/SAS/shalcnv.meta @@ -335,7 +335,6 @@ type = real kind = kind_phys intent = out - optional = True [dt_mf] standard_name = instantaneous_atmosphere_detrainment_convective_mass_flux long_name = (detrainment mass flux) * delt diff --git a/physics/CONV/nTiedtke/cu_ntiedtke_post.F90 b/physics/CONV/nTiedtke/cu_ntiedtke_post.F90 index 583dfd57d..8b3c99681 100644 --- a/physics/CONV/nTiedtke/cu_ntiedtke_post.F90 +++ b/physics/CONV/nTiedtke/cu_ntiedtke_post.F90 @@ -23,8 +23,8 @@ subroutine cu_ntiedtke_post_run (t, q, prevst, prevsq, errmsg, errflg) ! Interface variables real(kind_phys), intent(in) :: t(:,:) real(kind_phys), intent(in) :: q(:,:) - real(kind_phys), intent(out), optional :: prevst(:,:) - real(kind_phys), intent(out), optional :: prevsq(:,:) + real(kind_phys), intent(out) :: prevst(:,:) + real(kind_phys), intent(out) :: prevsq(:,:) character(len=*), intent(out) :: errmsg integer, intent(out) :: errflg diff --git a/physics/CONV/nTiedtke/cu_ntiedtke_post.meta b/physics/CONV/nTiedtke/cu_ntiedtke_post.meta index db51223d3..9960b6b77 100644 --- a/physics/CONV/nTiedtke/cu_ntiedtke_post.meta +++ b/physics/CONV/nTiedtke/cu_ntiedtke_post.meta @@ -31,7 +31,6 @@ type = real kind = kind_phys intent = out - optional = True [prevsq] standard_name = specific_humidity_on_previous_timestep long_name = moisture from previous time step @@ -40,7 +39,6 @@ type = real kind = kind_phys intent = out - optional = True [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP diff --git a/physics/CONV/nTiedtke/cu_ntiedtke_pre.F90 b/physics/CONV/nTiedtke/cu_ntiedtke_pre.F90 index 81a55176d..abdffcb49 100644 --- a/physics/CONV/nTiedtke/cu_ntiedtke_pre.F90 +++ b/physics/CONV/nTiedtke/cu_ntiedtke_pre.F90 @@ -28,10 +28,10 @@ subroutine cu_ntiedtke_pre_run (flag_init, flag_restart, kdt, fhour, dtp, t, q, real(kind_phys), intent(in) :: dtp real(kind_phys), intent(in) :: t(:,:) real(kind_phys), intent(in) :: q(:,:) - real(kind_phys), intent(in), optional :: prevst(:,:) - real(kind_phys), intent(in), optional :: prevsq(:,:) - real(kind_phys), intent(out), optional :: forcet(:,:) - real(kind_phys), intent(out), optional :: forceq(:,:) + real(kind_phys), intent(in) :: prevst(:,:) + real(kind_phys), intent(in) :: prevsq(:,:) + real(kind_phys), intent(out) :: forcet(:,:) + real(kind_phys), intent(out) :: forceq(:,:) character(len=*), intent(out) :: errmsg integer, intent(out) :: errflg diff --git a/physics/CONV/nTiedtke/cu_ntiedtke_pre.meta b/physics/CONV/nTiedtke/cu_ntiedtke_pre.meta index 1938ee711..26392f0e6 100644 --- a/physics/CONV/nTiedtke/cu_ntiedtke_pre.meta +++ b/physics/CONV/nTiedtke/cu_ntiedtke_pre.meta @@ -68,7 +68,6 @@ type = real kind = kind_phys intent = in - optional = True [prevsq] standard_name = specific_humidity_on_previous_timestep long_name = moisture from previous time step @@ -77,7 +76,6 @@ type = real kind = kind_phys intent = in - optional = True [forcet] standard_name = tendency_of_air_temperature_due_to_nonphysics long_name = temperature tendency due to dynamics only @@ -86,7 +84,6 @@ type = real kind = kind_phys intent = out - optional = True [forceq] standard_name = tendendy_of_specific_humidity_due_to_nonphysics long_name = moisture tendency due to dynamics only @@ -95,7 +92,6 @@ type = real kind = kind_phys intent = out - optional = True [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP diff --git a/physics/GWD/cires_ugwp_post.F90 b/physics/GWD/cires_ugwp_post.F90 index 2ae20ac84..f77bf5810 100644 --- a/physics/GWD/cires_ugwp_post.F90 +++ b/physics/GWD/cires_ugwp_post.F90 @@ -35,7 +35,7 @@ subroutine cires_ugwp_post_run (ldiag_ugwp, dtf, im, levs, & real(kind=kind_phys), intent(inout), dimension(:) :: tot_mtb, tot_ogw, tot_tofd, tot_ngw real(kind=kind_phys), intent(inout), dimension(:) :: tot_zmtb, tot_zlwb, tot_zogw real(kind=kind_phys), intent(in), dimension(:,:) :: gw_dtdt, gw_dudt, gw_dvdt, dudt_mtb, dudt_tms - real(kind=kind_phys), intent(in), dimension(:,:), optional :: dudt_ogw + real(kind=kind_phys), intent(in), dimension(:,:) :: dudt_ogw real(kind=kind_phys), intent(inout), dimension(:,:), optional :: du3dt_mtb, du3dt_ogw, du3dt_tms, du3dt_ngw, dv3dt_ngw real(kind=kind_phys), intent(inout), dimension(:,:) :: dtdt, dudt, dvdt diff --git a/physics/GWD/cires_ugwp_post.meta b/physics/GWD/cires_ugwp_post.meta index 209209e25..5d2a6a3d1 100644 --- a/physics/GWD/cires_ugwp_post.meta +++ b/physics/GWD/cires_ugwp_post.meta @@ -132,7 +132,6 @@ type = real kind = kind_phys intent = in - optional = True [dudt_tms] standard_name = tendency_of_x_wind_due_to_turbulent_orographic_form_drag long_name = instantaneous change in x wind due to TOFD diff --git a/physics/GWD/drag_suite.F90 b/physics/GWD/drag_suite.F90 index e78f2924a..fe42b98b2 100644 --- a/physics/GWD/drag_suite.F90 +++ b/physics/GWD/drag_suite.F90 @@ -349,7 +349,7 @@ subroutine drag_suite_run( & real(kind=kind_phys), intent(in) :: var(:),oc1(:), & & oa4(:,:),ol4(:,:), & & dx(:) - real(kind=kind_phys), intent(in), optional :: varss(:),oc1ss(:), & + real(kind=kind_phys), intent(in) :: varss(:),oc1ss(:), & & oa4ss(:,:),ol4ss(:,:) real(kind=kind_phys), intent(in) :: THETA(:),SIGMA(:), & & GAMMA(:),ELVMAX(:) @@ -1562,7 +1562,7 @@ subroutine drag_suite_psl( & real(kind=kind_phys), intent(in) :: var(:),oc1(:), & & oa4(:,:),ol4(:,:), & & dx(:) - real(kind=kind_phys), intent(in), optional :: varss(:),oc1ss(:), & + real(kind=kind_phys), intent(in) :: varss(:),oc1ss(:), & & oa4ss(:,:),ol4ss(:,:) real(kind=kind_phys), intent(in) :: THETA(:),SIGMA(:), & & GAMMA(:),ELVMAX(:) diff --git a/physics/GWD/drag_suite.meta b/physics/GWD/drag_suite.meta index 5413a5482..559ea1a63 100644 --- a/physics/GWD/drag_suite.meta +++ b/physics/GWD/drag_suite.meta @@ -214,7 +214,6 @@ type = real kind = kind_phys intent = in - optional = True [oc1ss] standard_name = convexity_of_subgrid_orography_small_scale long_name = convexity of subgrid height_above_mean_sea_level small scale @@ -223,7 +222,6 @@ type = real kind = kind_phys intent = in - optional = True [oa4ss] standard_name = asymmetry_of_subgrid_orography_small_scale long_name = asymmetry of subgrid height_above_mean_sea_level small scale @@ -232,7 +230,6 @@ type = real kind = kind_phys intent = in - optional = True [ol4ss] standard_name = fraction_of_grid_box_with_subgrid_orography_higher_than_critical_height_small_scale long_name = horizontal fraction of grid box covered by subgrid height_above_mean_sea_level higher than critical height small scale @@ -241,7 +238,6 @@ type = real kind = kind_phys intent = in - optional = True [theta] standard_name = angle_from_east_of_maximum_subgrid_orographic_variations long_name = angle with respect to east of maximum subgrid orographic variations diff --git a/physics/GWD/ugwpv1_gsldrag.F90 b/physics/GWD/ugwpv1_gsldrag.F90 index 5dd76b8d1..094588a35 100644 --- a/physics/GWD/ugwpv1_gsldrag.F90 +++ b/physics/GWD/ugwpv1_gsldrag.F90 @@ -378,8 +378,8 @@ subroutine ugwpv1_gsldrag_run(me, master, im, levs, ak, bk, ntrac, lonr, dtp, real(kind=kind_phys), intent(in), dimension(:,:) :: clx, oa4 real(kind=kind_phys), intent(in), dimension(:) :: dx - real(kind=kind_phys), intent(in), dimension(:), optional :: varss,oc1ss - real(kind=kind_phys), intent(in), dimension(:,:), optional :: oa4ss,ol4ss + real(kind=kind_phys), intent(in), dimension(:) :: varss,oc1ss + real(kind=kind_phys), intent(in), dimension(:,:) :: oa4ss,ol4ss !===== !ccpp-style passing constants, I prefer to take them out from the "call-subr" list @@ -408,7 +408,7 @@ subroutine ugwpv1_gsldrag_run(me, master, im, levs, ak, bk, ntrac, lonr, dtp, !Output (optional): - real(kind=kind_phys), intent(out), dimension(:), optional :: & + real(kind=kind_phys), intent(out), dimension(:) :: & du_ogwcol, dv_ogwcol, du_oblcol, dv_oblcol, & du_osscol, dv_osscol, du_ofdcol, dv_ofdcol ! @@ -418,11 +418,11 @@ subroutine ugwpv1_gsldrag_run(me, master, im, levs, ak, bk, ntrac, lonr, dtp, real(kind=kind_phys), intent(out), dimension(:) :: dusfcg, dvsfcg real(kind=kind_phys), intent(out), dimension(:) :: tau_ogw, tau_ngw, tau_oss - real(kind=kind_phys), intent(out) , dimension(:,:), optional :: & + real(kind=kind_phys), intent(out) , dimension(:,:) :: & dudt_ogw, dvdt_ogw, dudt_obl, dvdt_obl, & dudt_oss, dvdt_oss, dudt_ofd, dvdt_ofd - real(kind=kind_phys), intent(out) , dimension(:,:), optional :: dudt_ngw, dvdt_ngw, kdis_ngw, dtdt_ngw + real(kind=kind_phys), intent(out) , dimension(:,:) :: dudt_ngw, dvdt_ngw, kdis_ngw, dtdt_ngw real(kind=kind_phys), intent(out) , dimension(:,:) :: dudt_gw, dvdt_gw, dtdt_gw, kdis_gw real(kind=kind_phys), intent(out) , dimension(:) :: zogw, zlwb, zobl, zngw diff --git a/physics/GWD/ugwpv1_gsldrag.meta b/physics/GWD/ugwpv1_gsldrag.meta index 6d9f5426b..376a562bb 100644 --- a/physics/GWD/ugwpv1_gsldrag.meta +++ b/physics/GWD/ugwpv1_gsldrag.meta @@ -568,7 +568,6 @@ type = real kind = kind_phys intent = in - optional = True [oc1ss] standard_name = convexity_of_subgrid_orography_small_scale long_name = convexity of subgrid height_above_mean_sea_level small scale @@ -577,7 +576,6 @@ type = real kind = kind_phys intent = in - optional = True [oa4ss] standard_name = asymmetry_of_subgrid_orography_small_scale long_name = asymmetry of subgrid height_above_mean_sea_level small scale @@ -586,7 +584,6 @@ type = real kind = kind_phys intent = in - optional = True [ol4ss] standard_name = fraction_of_grid_box_with_subgrid_orography_higher_than_critical_height_small_scale long_name = horizontal fraction of grid box covered by sso higher than critical height small scale @@ -595,7 +592,6 @@ type = real kind = kind_phys intent = in - optional = True [dx] standard_name = characteristic_grid_lengthscale long_name = size of the grid cell @@ -786,7 +782,6 @@ type = real kind = kind_phys intent = out - optional = True [dvdt_ogw] standard_name = tendency_of_y_wind_due_to_mesoscale_orographic_gravity_wave_drag long_name = y wind tendency from meso scale ogw @@ -795,7 +790,6 @@ type = real kind = kind_phys intent = out - optional = True [du_ogwcol] standard_name = vertically_integrated_x_momentum_flux_due_to_mesoscale_orographic_gravity_wave_drag long_name = integrated x momentum flux from meso scale ogw @@ -804,7 +798,6 @@ type = real kind = kind_phys intent = out - optional = True [dv_ogwcol] standard_name = vertically_integrated_y_momentum_flux_due_to_mesoscale_orographic_gravity_wave_drag long_name = integrated y momentum flux from meso scale ogw @@ -813,7 +806,6 @@ type = real kind = kind_phys intent = out - optional = True [dudt_obl] standard_name = tendency_of_x_wind_due_to_blocking_drag long_name = x wind tendency from blocking drag @@ -822,7 +814,6 @@ type = real kind = kind_phys intent = out - optional = True [dvdt_obl] standard_name = tendency_of_y_wind_due_to_blocking_drag long_name = y wind tendency from blocking drag @@ -831,7 +822,6 @@ type = real kind = kind_phys intent = out - optional = True [du_oblcol] standard_name = vertically_integrated_x_momentum_flux_due_to_blocking_drag long_name = integrated x momentum flux from blocking drag @@ -840,7 +830,6 @@ type = real kind = kind_phys intent = out - optional = True [dv_oblcol] standard_name = vertically_integrated_y_momentum_flux_due_to_blocking_drag long_name = integrated y momentum flux from blocking drag @@ -849,7 +838,6 @@ type = real kind = kind_phys intent = out - optional = True [dudt_oss] standard_name = tendency_of_x_wind_due_to_small_scale_gravity_wave_drag long_name = x wind tendency from small scale gwd @@ -858,7 +846,6 @@ type = real kind = kind_phys intent = out - optional = True [dvdt_oss] standard_name = tendency_of_y_wind_due_to_small_scale_gravity_wave_drag long_name = y wind tendency from small scale gwd @@ -867,7 +854,6 @@ type = real kind = kind_phys intent = out - optional = True [du_osscol] standard_name = vertically_integrated_x_momentum_flux_due_to_small_scale_gravity_wave_drag long_name = integrated x momentum flux from small scale gwd @@ -876,7 +862,6 @@ type = real kind = kind_phys intent = out - optional = True [dv_osscol] standard_name = vertically_integrated_y_momentum_flux_due_to_small_scale_gravity_wave_drag long_name = integrated y momentum flux from small scale gwd @@ -885,7 +870,6 @@ type = real kind = kind_phys intent = out - optional = True [dudt_ofd] standard_name = tendency_of_x_wind_due_to_form_drag long_name = x wind tendency from form drag @@ -894,7 +878,6 @@ type = real kind = kind_phys intent = out - optional = True [dvdt_ofd] standard_name = tendency_of_y_wind_due_to_form_drag long_name = y wind tendency from form drag @@ -903,7 +886,6 @@ type = real kind = kind_phys intent = out - optional = True [du_ofdcol] standard_name = vertically_integrated_x_momentum_flux_due_to_form_drag long_name = integrated x momentum flux from form drag @@ -912,7 +894,6 @@ type = real kind = kind_phys intent = out - optional = True [dv_ofdcol] standard_name = vertically_integrated_y_momentum_flux_due_to_form_drag long_name = integrated y momentum flux from form drag @@ -921,7 +902,6 @@ type = real kind = kind_phys intent = out - optional = True [dudt_ngw] standard_name = tendency_of_x_wind_due_to_nonorographic_gravity_wave_drag long_name = zonal wind tendency due to non-stationary GWs @@ -930,7 +910,6 @@ type = real kind = kind_phys intent = out - optional = True [dvdt_ngw] standard_name = tendency_of_y_wind_due_to_nonorographic_gravity_wave_drag long_name = meridional wind tendency due to non-stationary GWs @@ -939,7 +918,6 @@ type = real kind = kind_phys intent = out - optional = True [dtdt_ngw] standard_name = tendency_of_air_temperature_due_to_nonorographic_gravity_wave_drag long_name = air temperature tendency due to non-stationary GWs @@ -948,7 +926,6 @@ type = real kind = kind_phys intent = out - optional = True [kdis_ngw] standard_name = atmosphere_momentum_diffusivity_due_to_nonorographic_gravity_wave_drag long_name = eddy mixing due to non-stationary GWs @@ -957,7 +934,6 @@ type = real kind = kind_phys intent = out - optional = True [dudt_gw] standard_name = tendency_of_x_wind_due_to_gravity_wave_drag long_name = zonal wind tendency due to all GWs diff --git a/physics/GWD/unified_ugwp.F90 b/physics/GWD/unified_ugwp.F90 index adedeeb15..05f9030a8 100644 --- a/physics/GWD/unified_ugwp.F90 +++ b/physics/GWD/unified_ugwp.F90 @@ -274,11 +274,11 @@ subroutine unified_ugwp_run(me, master, im, levs, ak,bk, ntrac, dtp, fhzero, kdt integer, intent(in), dimension(:) :: vtype real(kind=kind_phys), intent(in), dimension(:) :: ak, bk real(kind=kind_phys), intent(in), dimension(:) :: oro, oro_uf, hprime, oc, theta, sigma, gamma - real(kind=kind_phys), intent(in), dimension(:), optional :: varss,oc1ss + real(kind=kind_phys), intent(in), dimension(:) :: varss,oc1ss real(kind=kind_phys), intent(in), dimension(:) :: dx !vay-nov 2020 - real(kind=kind_phys), intent(in), dimension(:,:), optional :: oa4ss,ol4ss + real(kind=kind_phys), intent(in), dimension(:,:) :: oa4ss,ol4ss logical, intent(in) :: flag_for_gwd_generic_tend diff --git a/physics/GWD/unified_ugwp.meta b/physics/GWD/unified_ugwp.meta index 91f63f03e..fe66b4b4b 100644 --- a/physics/GWD/unified_ugwp.meta +++ b/physics/GWD/unified_ugwp.meta @@ -448,7 +448,6 @@ type = real kind = kind_phys intent = in - optional = True [oc1ss] standard_name = convexity_of_subgrid_orography_small_scale long_name = convexity of subgrid height_above_mean_sea_level small scale @@ -457,7 +456,6 @@ type = real kind = kind_phys intent = in - optional = True [oa4ss] standard_name = asymmetry_of_subgrid_orography_small_scale long_name = asymmetry of subgrid height_above_mean_sea_level small scale @@ -466,7 +464,6 @@ type = real kind = kind_phys intent = in - optional = True [ol4ss] standard_name = fraction_of_grid_box_with_subgrid_orography_higher_than_critical_height_small_scale long_name = horizontal fraction of grid box covered by subgrid height_above_mean_sea_level higher than critical height small scale @@ -475,7 +472,6 @@ type = real kind = kind_phys intent = in - optional = True [dx] standard_name = characteristic_grid_lengthscale long_name = size of the grid cell diff --git a/physics/MP/Ferrier_Aligo/mp_fer_hires.F90 b/physics/MP/Ferrier_Aligo/mp_fer_hires.F90 index 782a4501e..1387dcbab 100644 --- a/physics/MP/Ferrier_Aligo/mp_fer_hires.F90 +++ b/physics/MP/Ferrier_Aligo/mp_fer_hires.F90 @@ -149,7 +149,7 @@ SUBROUTINE mp_fer_hires_run(NCOL, NLEV, DT ,SPEC_ADV & real(kind_phys), intent(inout) :: prec(:) real(kind_phys), intent(inout) :: refl_10cm(:,:) - real(kind_phys), intent(in ), optional :: rhgrd + real(kind_phys), intent(in ) :: rhgrd real(kind_phys), intent(in ) :: dx(:) character(len=*), intent(out) :: errmsg integer, intent(out) :: errflg diff --git a/physics/MP/Ferrier_Aligo/mp_fer_hires.meta b/physics/MP/Ferrier_Aligo/mp_fer_hires.meta index 4c46b379a..0838bede2 100644 --- a/physics/MP/Ferrier_Aligo/mp_fer_hires.meta +++ b/physics/MP/Ferrier_Aligo/mp_fer_hires.meta @@ -280,7 +280,6 @@ type = real kind = kind_phys intent = in - optional = True [dx] standard_name = characteristic_grid_lengthscale long_name = relative dx for the grid cell diff --git a/physics/MP/GFDL/fv_sat_adj.F90 b/physics/MP/GFDL/fv_sat_adj.F90 index 22077b9bb..8a2cbca86 100644 --- a/physics/MP/GFDL/fv_sat_adj.F90 +++ b/physics/MP/GFDL/fv_sat_adj.F90 @@ -268,9 +268,9 @@ subroutine fv_sat_adj_run(mdt, zvir, is, ie, isd, ied, isc1, iec1, isc2, iec2, k ! If multi-gases physics are not used, ngas is one and qvi identical to qv integer, intent(in) :: ngas #ifdef MULTI_GASES - real(kind=kind_dyn), intent(inout), optional :: qvi(isd:ied, jsd:jed, 1:km, 1:ngas) + real(kind=kind_dyn), intent(inout) :: qvi(isd:ied, jsd:jed, 1:km, 1:ngas) #else - real(kind=kind_dyn), intent(inout), optional :: qvi(:,:,:,:) + real(kind=kind_dyn), intent(inout) :: qvi(:,:,:,:) #endif real(kind=kind_dyn), intent(inout) :: qv(isd:ied, jsd:jed, 1:km) real(kind=kind_dyn), intent(inout) :: ql(isd:ied, jsd:jed, 1:km) diff --git a/physics/MP/GFDL/fv_sat_adj.meta b/physics/MP/GFDL/fv_sat_adj.meta index 304bd3ab3..4b68de6f0 100644 --- a/physics/MP/GFDL/fv_sat_adj.meta +++ b/physics/MP/GFDL/fv_sat_adj.meta @@ -308,7 +308,6 @@ type = real kind = kind_dyn intent = inout - optional = True [qv] standard_name = water_vapor_specific_humidity_at_Lagrangian_surface long_name = water vapor specific humidity updated by fast physics at Lagrangian surface diff --git a/physics/MP/GFDL/gfdl_cloud_microphys.F90 b/physics/MP/GFDL/gfdl_cloud_microphys.F90 index b0b632646..6314b3577 100644 --- a/physics/MP/GFDL/gfdl_cloud_microphys.F90 +++ b/physics/MP/GFDL/gfdl_cloud_microphys.F90 @@ -147,10 +147,10 @@ subroutine gfdl_cloud_microphys_run( real(kind=kind_phys), intent(in ), dimension(:,:) :: phii ! rain/snow/ice/graupel/precip amounts, fraction of frozen precip - real(kind_phys), intent(out ), dimension(:), optional :: rain0 - real(kind_phys), intent(out ), dimension(:), optional :: snow0 - real(kind_phys), intent(out ), dimension(:), optional :: ice0 - real(kind_phys), intent(out ), dimension(:), optional :: graupel0 + real(kind_phys), intent(out ), dimension(:) :: rain0 + real(kind_phys), intent(out ), dimension(:) :: snow0 + real(kind_phys), intent(out ), dimension(:) :: ice0 + real(kind_phys), intent(out ), dimension(:) :: graupel0 real(kind_phys), intent(out ), dimension(:) :: prcp0 real(kind_phys), intent(out ), dimension(:) :: sr diff --git a/physics/MP/GFDL/gfdl_cloud_microphys.meta b/physics/MP/GFDL/gfdl_cloud_microphys.meta index 01f848c77..766d3e328 100644 --- a/physics/MP/GFDL/gfdl_cloud_microphys.meta +++ b/physics/MP/GFDL/gfdl_cloud_microphys.meta @@ -311,7 +311,6 @@ type = real kind = kind_phys intent = out - optional = True [ice0] standard_name = lwe_thickness_of_ice_amount long_name = ice fall on physics timestep @@ -320,7 +319,6 @@ type = real kind = kind_phys intent = out - optional = True [snow0] standard_name = lwe_thickness_of_snow_amount long_name = snow fall on physics timestep @@ -329,7 +327,6 @@ type = real kind = kind_phys intent = out - optional = True [graupel0] standard_name = lwe_thickness_of_graupel_amount long_name = graupel fall on physics timestep @@ -338,7 +335,6 @@ type = real kind = kind_phys intent = out - optional = True [prcp0] standard_name = lwe_thickness_of_explicit_precipitation_amount long_name = explicit precipitation (rain, ice, snow, graupel) on physics timestep diff --git a/physics/MP/Morrison_Gettelman/m_micro.F90 b/physics/MP/Morrison_Gettelman/m_micro.F90 index c712d5fe8..9a1a24923 100644 --- a/physics/MP/Morrison_Gettelman/m_micro.F90 +++ b/physics/MP/Morrison_Gettelman/m_micro.F90 @@ -199,7 +199,7 @@ subroutine m_micro_run( im, lm, flipv, dt_i & & prsl_i,u_i,v_i,phil, omega_i, QLLS_i,QILS_i, & & lwheat_i,swheat_i real (kind=kind_phys), dimension(:,0:),intent(in):: prsi_i, phii - real (kind=kind_phys), dimension(:,:),intent(in), optional :: & + real (kind=kind_phys), dimension(:,:),intent(in) :: & & CNV_DQLDT_i, CLCN_i, QLCN_i, QICN_i, & & CNV_MFD_i, cf_upi, CNV_FICE_i, CNV_NDROP_i, & & CNV_NICE_i, w_upi @@ -215,7 +215,7 @@ subroutine m_micro_run( im, lm, flipv, dt_i & ! output real (kind=kind_phys),dimension(:,:), intent(out) :: lwm_o, qi_o - real (kind=kind_phys),dimension(:,:), intent(out), optional :: & + real (kind=kind_phys),dimension(:,:), intent(out) :: & cldreffl, cldreffi, cldreffr, cldreffs, cldreffg real (kind=kind_phys),dimension(:), intent(out) :: rn_o, sr_o character(len=*), intent(out) :: errmsg @@ -226,7 +226,7 @@ subroutine m_micro_run( im, lm, flipv, dt_i & integer, dimension(:), intent(inout):: KCBL real (kind=kind_phys),dimension(:,:),intent(inout):: q_io, t_io, & & ncpi_io - real (kind=kind_phys),dimension(:,:),intent(inout), optional :: & + real (kind=kind_phys),dimension(:,:),intent(inout) :: & rnw_io, snw_io, ncpr_io, ncps_io, qgl_io, ncgl_io, ncpl_io, & CLLS_io ! *GJF diff --git a/physics/MP/Morrison_Gettelman/m_micro.meta b/physics/MP/Morrison_Gettelman/m_micro.meta index 6068d4dd9..16efc5cc4 100644 --- a/physics/MP/Morrison_Gettelman/m_micro.meta +++ b/physics/MP/Morrison_Gettelman/m_micro.meta @@ -395,7 +395,6 @@ type = real kind = kind_phys intent = in - optional = True [qils_i] standard_name = ice_water_mixing_ratio_convective_transport_tracer long_name = ratio of mass of ice water to mass of dry air plus vapor (without condensates) in the convectively transported tracer array @@ -412,7 +411,6 @@ type = real kind = kind_phys intent = in - optional = True [lwheat_i] standard_name = tendency_of_air_temperature_due_to_longwave_heating_on_radiation_timestep long_name = total sky lw heating rate @@ -437,7 +435,6 @@ type = real kind = kind_phys intent = in - optional = True [cf_upi] standard_name = convective_cloud_fraction_for_microphysics long_name = convective cloud fraction for microphysics @@ -446,7 +443,6 @@ type = real kind = kind_phys intent = in - optional = True [frland] standard_name = land_area_fraction_for_microphysics long_name = land area fraction used in microphysics schemes @@ -471,7 +467,6 @@ type = real kind = kind_phys intent = in - optional = True [cnv_dqldt_i] standard_name = tendency_of_cloud_water_due_to_convective_microphysics long_name = tendency of cloud water due to convective microphysics @@ -480,7 +475,6 @@ type = real kind = kind_phys intent = in - optional = True [clcn_i] standard_name = convective_cloud_volume_fraction long_name = convective cloud volume fraction @@ -489,7 +483,6 @@ type = real kind = kind_phys intent = in - optional = True [u_i] standard_name = x_wind_of_new_state long_name = zonal wind updated by physics @@ -546,7 +539,6 @@ type = real kind = kind_phys intent = in - optional = True [cnv_ndrop_i] standard_name = number_concentration_of_cloud_liquid_water_particles_for_detrainment long_name = droplet number concentration in convective detrainment @@ -555,7 +547,6 @@ type = real kind = kind_phys intent = in - optional = True [cnv_nice_i] standard_name = number_concentration_of_ice_crystals_for_detrainment long_name = crystal number concentration in convective detrainment @@ -564,7 +555,6 @@ type = real kind = kind_phys intent = in - optional = True [q_io] standard_name = specific_humidity_of_new_state long_name = water vapor specific humidity updated by physics @@ -621,7 +611,6 @@ type = real kind = kind_phys intent = inout - optional = True [ncpi_io] standard_name = mass_number_concentration_of_cloud_ice_water_crystals_in_air_of_new_state long_name = number concentration of ice updated by physics @@ -645,7 +634,6 @@ type = real kind = kind_phys intent = inout - optional = True [snw_io] standard_name = local_snow_water_mixing_ratio long_name = ratio of mass of snow water to mass of dry air plus vapor (without condensates) local to physics @@ -654,7 +642,6 @@ type = real kind = kind_phys intent = inout - optional = True [qgl_io] standard_name = local_graupel_mixing_ratio long_name = ratio of mass of graupel to mass of dry air plus vapor (without condensates) local to physics @@ -663,7 +650,6 @@ type = real kind = kind_phys intent = inout - optional = True [ncpr_io] standard_name = local_rain_number_concentration long_name = number concentration of rain local to physics @@ -672,7 +658,6 @@ type = real kind = kind_phys intent = inout - optional = True [ncps_io] standard_name = local_snow_number_concentration long_name = number concentration of snow local to physics @@ -681,7 +666,6 @@ type = real kind = kind_phys intent = inout - optional = True [ncgl_io] standard_name = local_graupel_number_concentration long_name = number concentration of graupel local to physics @@ -690,7 +674,6 @@ type = real kind = kind_phys intent = inout - optional = True [clls_io] standard_name = cloud_fraction_for_MG long_name = cloud fraction used by Morrison-Gettelman MP @@ -699,7 +682,6 @@ type = real kind = kind_phys intent = inout - optional = True [kcbl] standard_name = vertical_index_at_cloud_base long_name = vertical index at cloud base @@ -715,7 +697,6 @@ type = real kind = kind_phys intent = out - optional = True [cldreffi] standard_name = effective_radius_of_stratiform_cloud_ice_particle long_name = effective radius of cloud ice water particle in micrometers @@ -724,7 +705,6 @@ type = real kind = kind_phys intent = out - optional = True [cldreffr] standard_name = effective_radius_of_stratiform_cloud_rain_particle long_name = effective radius of cloud rain particle in micrometers @@ -733,7 +713,6 @@ type = real kind = kind_phys intent = out - optional = True [cldreffs] standard_name = effective_radius_of_stratiform_cloud_snow_particle long_name = effective radius of cloud snow particle in micrometers @@ -742,7 +721,6 @@ type = real kind = kind_phys intent = out - optional = True [cldreffg] standard_name = effective_radius_of_stratiform_cloud_graupel_particle long_name = effective radius of cloud graupel particle in micrometers @@ -751,7 +729,6 @@ type = real kind = kind_phys intent = out - optional = True [ntrcaer] standard_name = number_of_aerosol_tracers_MG long_name = number of aerosol tracers for Morrison Gettelman MP diff --git a/physics/MP/Morrison_Gettelman/m_micro_post.F90 b/physics/MP/Morrison_Gettelman/m_micro_post.F90 index 0a91e25ef..a61ee4874 100644 --- a/physics/MP/Morrison_Gettelman/m_micro_post.F90 +++ b/physics/MP/Morrison_Gettelman/m_micro_post.F90 @@ -22,12 +22,12 @@ subroutine m_micro_post_run( & integer, intent(in) :: im, levs, fprcp logical, intent(in) :: mg3_as_mg2 - real(kind=kind_phys), intent(in ),optional :: ncpr(:,:) - real(kind=kind_phys), intent(in ),optional :: ncps(:,:) - real(kind=kind_phys), intent(in ),optional :: ncgl(:,:) - real(kind=kind_phys), intent(inout),optional :: qrn(:,:) - real(kind=kind_phys), intent(inout),optional :: qsnw(:,:) - real(kind=kind_phys), intent(inout),optional :: qgl(:,:) + real(kind=kind_phys), intent(in ) :: ncpr(:,:) + real(kind=kind_phys), intent(in ) :: ncps(:,:) + real(kind=kind_phys), intent(in ) :: ncgl(:,:) + real(kind=kind_phys), intent(inout) :: qrn(:,:) + real(kind=kind_phys), intent(inout) :: qsnw(:,:) + real(kind=kind_phys), intent(inout) :: qgl(:,:) real(kind=kind_phys), intent(in ) :: gq0_ice(:,:) real(kind=kind_phys), intent(out ) :: gq0_rain(:,:) real(kind=kind_phys), intent(out ) :: gq0_snow(:,:) diff --git a/physics/MP/Morrison_Gettelman/m_micro_post.meta b/physics/MP/Morrison_Gettelman/m_micro_post.meta index 62449c5fc..88a4325e7 100644 --- a/physics/MP/Morrison_Gettelman/m_micro_post.meta +++ b/physics/MP/Morrison_Gettelman/m_micro_post.meta @@ -44,7 +44,6 @@ type = real kind = kind_phys intent = in - optional = True [ncps] standard_name = local_snow_number_concentration long_name = number concentration of snow local to physics @@ -53,7 +52,6 @@ type = real kind = kind_phys intent = in - optional = True [ncgl] standard_name = local_graupel_number_concentration long_name = number concentration of graupel local to physics @@ -62,7 +60,6 @@ type = real kind = kind_phys intent = in - optional = True [qrn] standard_name = local_rain_water_mixing_ratio long_name = ratio of mass of rain water to mass of dry air plus vapor (without condensates) local to physics @@ -71,7 +68,6 @@ type = real kind = kind_phys intent = inout - optional = True [qsnw] standard_name = local_snow_water_mixing_ratio long_name = ratio of mass of snow water to mass of dry air plus vapor (without condensates) local to physics @@ -80,7 +76,6 @@ type = real kind = kind_phys intent = inout - optional = True [qgl] standard_name = local_graupel_mixing_ratio long_name = ratio of mass of graupel to mass of dry air plus vapor (without condensates) local to physics @@ -89,7 +84,6 @@ type = real kind = kind_phys intent = inout - optional = True [gq0_ice] standard_name = cloud_ice_mixing_ratio_of_new_state long_name = ratio of mass of ice water to mass of dry air plus vapor (without condensates) updated by physics diff --git a/physics/MP/Morrison_Gettelman/m_micro_pre.F90 b/physics/MP/Morrison_Gettelman/m_micro_pre.F90 index 4709a1611..8bd75acad 100644 --- a/physics/MP/Morrison_Gettelman/m_micro_pre.F90 +++ b/physics/MP/Morrison_Gettelman/m_micro_pre.F90 @@ -27,13 +27,13 @@ subroutine m_micro_pre_run (im, levs, do_shoc, skip_macro, fprcp, mg3_as_mg2, gq gq0_graupel(:,:), gq0_rain_nc(:,:), gq0_snow_nc(:,:), & gq0_graupel_nc(:,:), cnvc(:,:), cnvw(:,:), gt0(:,:) real(kind=kind_phys), intent(in), optional :: cld_shoc(:,:) - real(kind=kind_phys), intent(inout), optional :: & + real(kind=kind_phys), intent(inout) :: & qrn(:,:), qsnw(:,:), qgl(:,:), ncpr(:,:), ncps(:,:), ncgl(:,:), & cld_frc_MG(:,:) real(kind=kind_phys), intent(out) :: clw_ice(:,:), clw_water(:,:) - real(kind=kind_phys), intent(in), optional :: clcn(:,:) + real(kind=kind_phys), intent(in) :: clcn(:,:) character(len=*), intent(out) :: errmsg integer, intent(out) :: errflg diff --git a/physics/MP/Morrison_Gettelman/m_micro_pre.meta b/physics/MP/Morrison_Gettelman/m_micro_pre.meta index 2b10edba2..296c64663 100644 --- a/physics/MP/Morrison_Gettelman/m_micro_pre.meta +++ b/physics/MP/Morrison_Gettelman/m_micro_pre.meta @@ -170,7 +170,6 @@ type = real kind = kind_phys intent = inout - optional = True [qsnw] standard_name = local_snow_water_mixing_ratio long_name = ratio of mass of snow water to mass of dry air plus vapor (without condensates) local to physics @@ -179,7 +178,6 @@ type = real kind = kind_phys intent = inout - optional = True [qgl] standard_name = local_graupel_mixing_ratio long_name = ratio of mass of graupel to mass of dry air plus vapor (without condensates) local to physics @@ -188,7 +186,6 @@ type = real kind = kind_phys intent = inout - optional = True [ncpr] standard_name = local_rain_number_concentration long_name = number concentration of rain local to physics @@ -197,7 +194,6 @@ type = real kind = kind_phys intent = inout - optional = True [ncps] standard_name = local_snow_number_concentration long_name = number concentration of snow local to physics @@ -206,7 +202,6 @@ type = real kind = kind_phys intent = inout - optional = True [ncgl] standard_name = local_graupel_number_concentration long_name = number concentration of graupel local to physics @@ -215,7 +210,6 @@ type = real kind = kind_phys intent = inout - optional = True [cld_frc_MG] standard_name = cloud_fraction_for_MG long_name = cloud fraction used by Morrison-Gettelman MP @@ -224,7 +218,6 @@ type = real kind = kind_phys intent = inout - optional = True [clw_water] standard_name = cloud_condensed_water_mixing_ratio_convective_transport_tracer long_name = ratio of mass of cloud water to mass of dry air plus vapor (without condensates) in the convectively transported tracer array @@ -249,7 +242,6 @@ type = real kind = kind_phys intent = in - optional = True [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP diff --git a/physics/MP/NSSL/mp_nssl.F90 b/physics/MP/NSSL/mp_nssl.F90 index 38621d591..5aeeb6e4d 100644 --- a/physics/MP/NSSL/mp_nssl.F90 +++ b/physics/MP/NSSL/mp_nssl.F90 @@ -69,12 +69,12 @@ subroutine mp_nssl_init(ncol, nlev, errflg, errmsg, threads, restart, & real(kind_phys), intent(inout) :: qi (:,:) !(1:ncol,1:nlev) real(kind_phys), intent(inout) :: qs (:,:) !(1:ncol,1:nlev) real(kind_phys), intent(inout) :: qh (:,:) !(1:ncol,1:nlev) graupel - real(kind_phys), intent(inout), optional :: ccw(:,:) !(1:ncol,1:nlev) + real(kind_phys), intent(inout) :: ccw(:,:) !(1:ncol,1:nlev) real(kind_phys), intent(inout) :: crw(:,:) !(1:ncol,1:nlev) real(kind_phys), intent(inout) :: cci(:,:) !(1:ncol,1:nlev) real(kind_phys), intent(inout) :: csw(:,:) !(1:ncol,1:nlev) real(kind_phys), intent(inout) :: chw(:,:) !(1:ncol,1:nlev) graupel number - real(kind_phys), intent(inout), optional :: vh (:,:) !(1:ncol,1:nlev) graupel volume + real(kind_phys), intent(inout) :: vh (:,:) !(1:ncol,1:nlev) graupel volume ! Local variables: dimensions used in nssl_init integer :: ims,ime, jms,jme, kms,kme, nx, nz, i,k @@ -233,13 +233,13 @@ subroutine mp_nssl_run(ncol, nlev, con_g, con_rd, mpirank, & real(kind_phys), intent(inout) :: qs (:,:) !(1:ncol,1:nlev) real(kind_phys), intent(inout) :: qh (:,:) !(1:ncol,1:nlev) graupel real(kind_phys), intent(inout), optional :: qhl(:,:) !(1:ncol,1:nlev) hail - real(kind_phys), intent(inout), optional :: ccw(:,:) !(1:ncol,1:nlev) + real(kind_phys), intent(inout) :: ccw(:,:) !(1:ncol,1:nlev) real(kind_phys), intent(inout) :: crw(:,:) !(1:ncol,1:nlev) real(kind_phys), intent(inout) :: cci(:,:) !(1:ncol,1:nlev) real(kind_phys), intent(inout) :: csw(:,:) !(1:ncol,1:nlev) real(kind_phys), intent(inout) :: chw(:,:) !(1:ncol,1:nlev) graupel number real(kind_phys), intent(inout), optional :: chl(:,:) !(1:ncol,1:nlev) hail number - real(kind_phys), intent(inout), optional :: vh (:,:) !(1:ncol,1:nlev) graupel volume + real(kind_phys), intent(inout) :: vh (:,:) !(1:ncol,1:nlev) graupel volume real(kind_phys), intent(inout), optional :: vhl(:,:) !(1:ncol,1:nlev) hail volume real(kind_phys), intent(inout), optional :: zrw(:,:) !(1:ncol,1:nlev) rain reflectivity real(kind_phys), intent(inout), optional :: zhw(:,:) !(1:ncol,1:nlev) graupel reflectivity @@ -253,10 +253,10 @@ subroutine mp_nssl_run(ncol, nlev, con_g, con_rd, mpirank, & real(kind_phys), intent(in ) :: dtp ! Precip/rain/snow/graupel fall amounts and fraction of frozen precip real(kind_phys), intent( out) :: prcp (:) !(1:ncol) - real(kind_phys), intent( out), optional :: rain (:) !(1:ncol) - real(kind_phys), intent( out), optional :: graupel(:) !(1:ncol) - real(kind_phys), intent( out), optional :: ice (:) !(1:ncol) - real(kind_phys), intent( out), optional :: snow (:) !(1:ncol) + real(kind_phys), intent( out) :: rain (:) !(1:ncol) + real(kind_phys), intent( out) :: graupel(:) !(1:ncol) + real(kind_phys), intent( out) :: ice (:) !(1:ncol) + real(kind_phys), intent( out) :: snow (:) !(1:ncol) real(kind_phys), intent( out) :: sr (:) !(1:ncol) ! Radar reflectivity real(kind_phys), intent(inout) :: refl_10cm(:,:) !(1:ncol,1:nlev) diff --git a/physics/MP/NSSL/mp_nssl.meta b/physics/MP/NSSL/mp_nssl.meta index 0f672eedb..e818e8fe5 100644 --- a/physics/MP/NSSL/mp_nssl.meta +++ b/physics/MP/NSSL/mp_nssl.meta @@ -118,7 +118,6 @@ type = real kind = kind_phys intent = inout - optional = True [crw] standard_name = mass_number_concentration_of_rain_water_in_air long_name = rain number concentration @@ -159,7 +158,6 @@ type = real kind = kind_phys intent = inout - optional = True [con_g] standard_name = gravitational_acceleration long_name = gravitational acceleration @@ -438,7 +436,6 @@ type = real kind = kind_phys intent = inout - optional = True [crw] standard_name = mass_number_concentration_of_rain_of_new_state long_name = rain number concentration @@ -488,7 +485,6 @@ type = real kind = kind_phys intent = inout - optional = True [vhl] standard_name = hail_volume_of_new_state long_name = hail particle volume @@ -589,7 +585,6 @@ type = real kind = kind_phys intent = inout - optional = True [graupel] standard_name = lwe_thickness_of_graupel_amount long_name = graupel fall on physics timestep @@ -598,7 +593,6 @@ type = real kind = kind_phys intent = inout - optional = True [ice] standard_name = lwe_thickness_of_ice_amount long_name = ice fall on physics timestep @@ -607,7 +601,6 @@ type = real kind = kind_phys intent = inout - optional = True [snow] standard_name = lwe_thickness_of_snow_amount long_name = snow fall on physics timestep @@ -616,7 +609,6 @@ type = real kind = kind_phys intent = inout - optional = True [sr] standard_name = ratio_of_snowfall_to_rainfall long_name = ratio of snowfall to large-scale rainfall diff --git a/physics/MP/Thompson/mp_thompson.F90 b/physics/MP/Thompson/mp_thompson.F90 index f1fe416ca..e1500aa40 100644 --- a/physics/MP/Thompson/mp_thompson.F90 +++ b/physics/MP/Thompson/mp_thompson.F90 @@ -404,10 +404,10 @@ subroutine mp_thompson_run(ncol, nlev, con_g, con_rd, & real, intent(in ) :: dt_inner ! Precip/rain/snow/graupel fall amounts and fraction of frozen precip real(kind_phys), intent(inout) :: prcp(:) - real(kind_phys), intent(inout), optional :: rain(:) - real(kind_phys), intent(inout), optional :: graupel(:) - real(kind_phys), intent(inout), optional :: ice(:) - real(kind_phys), intent(inout), optional :: snow(:) + real(kind_phys), intent(inout) :: rain(:) + real(kind_phys), intent(inout) :: graupel(:) + real(kind_phys), intent(inout) :: ice(:) + real(kind_phys), intent(inout) :: snow(:) real(kind_phys), intent( out) :: sr(:) ! Radar reflectivity real(kind_phys), intent(inout) :: refl_10cm(:,:) diff --git a/physics/MP/Thompson/mp_thompson.meta b/physics/MP/Thompson/mp_thompson.meta index f5338419b..1e8b9422d 100644 --- a/physics/MP/Thompson/mp_thompson.meta +++ b/physics/MP/Thompson/mp_thompson.meta @@ -678,7 +678,6 @@ type = real kind = kind_phys intent = inout - optional = True [graupel] standard_name = lwe_thickness_of_graupel_amount long_name = graupel fall on physics timestep @@ -687,7 +686,6 @@ type = real kind = kind_phys intent = inout - optional = True [ice] standard_name = lwe_thickness_of_ice_amount long_name = ice fall on physics timestep @@ -696,7 +694,6 @@ type = real kind = kind_phys intent = inout - optional = True [snow] standard_name = lwe_thickness_of_snow_amount long_name = snow fall on physics timestep @@ -705,7 +702,6 @@ type = real kind = kind_phys intent = inout - optional = True [sr] standard_name = ratio_of_snowfall_to_rainfall long_name = ratio of snowfall to large-scale rainfall diff --git a/physics/MP/Zhao_Carr/zhaocarr_gscond.f b/physics/MP/Zhao_Carr/zhaocarr_gscond.f index 2f70aa2f0..1d22c09ac 100644 --- a/physics/MP/Zhao_Carr/zhaocarr_gscond.f +++ b/physics/MP/Zhao_Carr/zhaocarr_gscond.f @@ -103,7 +103,7 @@ subroutine zhaocarr_gscond_run (im,km,dt,dtf,prsl,ps,q,clw1 & real(kind=kind_phys), intent(inout) :: q(:,:), t(:,:) real(kind=kind_phys), intent(in) :: clw1(:,:), clw2(:,:) real(kind=kind_phys), intent(out) :: cwm(:,:) - real(kind=kind_phys), intent(inout), optional :: & + real(kind=kind_phys), intent(inout) :: & &, tp(:,:), qp(:,:), psp(:) & &, tp1(:,:), qp1(:,:), psp1(:) real(kind=kind_phys), intent(in) :: u(:,:) diff --git a/physics/MP/Zhao_Carr/zhaocarr_gscond.meta b/physics/MP/Zhao_Carr/zhaocarr_gscond.meta index b8cb2ea64..ed57ca909 100644 --- a/physics/MP/Zhao_Carr/zhaocarr_gscond.meta +++ b/physics/MP/Zhao_Carr/zhaocarr_gscond.meta @@ -141,7 +141,6 @@ type = real kind = kind_phys intent = inout - optional = True [qp] standard_name = specific_humidity_two_timesteps_back long_name = water vapor specific humidity two timesteps back @@ -150,7 +149,6 @@ type = real kind = kind_phys intent = inout - optional = True [psp] standard_name = surface_air_pressure_two_timesteps_back long_name = surface air pressure two timesteps back @@ -159,7 +157,6 @@ type = real kind = kind_phys intent = inout - optional = True [psat] standard_name = saturation_pressure_at_triple_point_of_water long_name = saturation pressure at triple point of water @@ -248,7 +245,6 @@ type = real kind = kind_phys intent = inout - optional = True [qp1] standard_name = specific_humidity_on_previous_timestep_in_xyz_dimensioned_restart_array long_name = water vapor specific humidity at previous timestep @@ -257,7 +253,6 @@ type = real kind = kind_phys intent = inout - optional = True [psp1] standard_name = surface_air_pressure_on_previous_timestep long_name = surface air surface pressure at previous timestep @@ -266,7 +261,6 @@ type = real kind = kind_phys intent = inout - optional = True [u] standard_name = critical_relative_humidity long_name = critical relative humidity diff --git a/physics/PBL/MYNN_EDMF/module_bl_mynn.F90 b/physics/PBL/MYNN_EDMF/module_bl_mynn.F90 index 334183383..9e3d14cd7 100644 --- a/physics/PBL/MYNN_EDMF/module_bl_mynn.F90 +++ b/physics/PBL/MYNN_EDMF/module_bl_mynn.F90 @@ -463,7 +463,7 @@ SUBROUTINE mynn_bl_driver( & real(kind_phys), dimension(:,:), intent(in):: ozone real(kind_phys), dimension(:), intent(in):: ust, & &ch,qsfc,ps,wspd - real(kind_phys), dimension(:,:), intent(inout), optional :: & + real(kind_phys), dimension(:,:), intent(inout) :: & &Qke,Tsq,Qsq,Cov real(kind_phys), dimension(:,:), intent(inout) :: & &qke_adv @@ -474,7 +474,7 @@ SUBROUTINE mynn_bl_driver( & real(kind_phys), dimension(:,:), intent(inout) :: dozone real(kind_phys), dimension(:,:), intent(in) :: rthraten - real(kind_phys), dimension(:,:), intent(out), optional :: exch_h,exch_m + real(kind_phys), dimension(:,:), intent(out) :: exch_h,exch_m real(kind_phys), dimension(:), intent(in) :: xland, & &ts,znt,hfx,qfx,uoce,voce @@ -493,13 +493,13 @@ SUBROUTINE mynn_bl_driver( & integer,dimension(:),intent(INOUT) :: & &KPBL - integer,dimension(:),intent(INOUT), optional :: & + integer,dimension(:),intent(INOUT) :: & &ktop_plume - real(kind_phys), dimension(:), intent(out), optional :: & + real(kind_phys), dimension(:), intent(out) :: & &maxmf,maxwidth,ztop_plume - real(kind_phys), dimension(:,:), intent(inout), optional :: el_pbl + real(kind_phys), dimension(:,:), intent(inout) :: el_pbl real(kind_phys), dimension(:,:), intent(inout), optional :: & &qWT,qSHEAR,qBUOY,qDISS,dqke @@ -508,9 +508,9 @@ SUBROUTINE mynn_bl_driver( & real(kind_phys), dimension(kts:kte) :: & &qwt1,qshear1,qbuoy1,qdiss1,dqke1,diss_heat - real(kind_phys), dimension(:,:), intent(out), optional :: Sh3D,Sm3D + real(kind_phys), dimension(:,:), intent(out) :: Sh3D,Sm3D - real(kind_phys), dimension(:,:), intent(inout), optional :: & + real(kind_phys), dimension(:,:), intent(inout) :: & &qc_bl,qi_bl,cldfra_bl real(kind_phys), dimension(kts:kte) :: qc_bl1D,qi_bl1D, & &cldfra_bl1D,qc_bl1D_old,qi_bl1D_old,cldfra_bl1D_old diff --git a/physics/PBL/MYNN_EDMF/mynnedmf_wrapper.F90 b/physics/PBL/MYNN_EDMF/mynnedmf_wrapper.F90 index 5c990dc5b..ff2e9e24f 100644 --- a/physics/PBL/MYNN_EDMF/mynnedmf_wrapper.F90 +++ b/physics/PBL/MYNN_EDMF/mynnedmf_wrapper.F90 @@ -250,8 +250,10 @@ SUBROUTINE mynnedmf_wrapper_run( & real(kind_phys), dimension(:,:), intent(inout), optional :: & & dqdt_cloud_droplet_num_conc, dqdt_water_aer_num_conc, & & dqdt_ice_aer_num_conc - real(kind_phys), dimension(:,:), intent(inout), optional :: qke, & - & EL_PBL, Sh3D, Sm3D, qc_bl, qi_bl, cldfra_bl, dqdt_cccn + real(kind_phys), dimension(:,:), intent(inout) :: qke, & + & EL_PBL, Sh3D, Sm3D, qc_bl, qi_bl, cldfra_bl + real(kind_phys), dimension(:,:), intent(inout), optional :: & + & dqdt_cccn real(kind_phys), dimension(:,:), intent(inout) :: & & qke_adv real(kind_phys), dimension(:,:,:), intent(out) :: tmf @@ -273,9 +275,10 @@ SUBROUTINE mynnedmf_wrapper_run( & & qgrs_cloud_droplet_num_conc, & & qgrs_ice_aer_num_conc real(kind_phys), dimension(:,:), intent(in), optional :: qgrs_cccn + real(kind_phys), dimension(:,:), intent(out) :: & + & Tsq, Qsq, Cov, exch_h, exch_m real(kind_phys), dimension(:,:), intent(out), optional :: & - & Tsq, Qsq, Cov, exch_h, exch_m, dqke, qWT, qSHEAR, qBUOY, & - & qDISS + & dqke, qWT, qSHEAR, qBUOY, qDISS real(kind_phys), dimension(:), intent(in) :: xmu real(kind_phys), dimension(:,:), intent(in) :: htrsw, htrlw ! spp_wts_pbl only allocated if spp_pbl == 1 @@ -316,11 +319,11 @@ SUBROUTINE mynnedmf_wrapper_run( & real(kind_phys), dimension(:), intent(out) :: & & ch,dtsfc1,dqsfc1,dusfc1,dvsfc1, & & dtsfci_diag,dqsfci_diag,dusfci_diag,dvsfci_diag - real(kind_phys), dimension(:), intent(out), optional :: & + real(kind_phys), dimension(:), intent(out) :: & & maxMF,maxwidth,ztop_plume integer, dimension(:), intent(inout) :: & & kpbl - integer, dimension(:), intent(inout), optional :: & + integer, dimension(:), intent(inout) :: & & ktop_plume real(kind_phys), dimension(:), intent(inout), optional :: & diff --git a/physics/PBL/MYNN_EDMF/mynnedmf_wrapper.meta b/physics/PBL/MYNN_EDMF/mynnedmf_wrapper.meta index 94f30ad52..e7b8a5a32 100644 --- a/physics/PBL/MYNN_EDMF/mynnedmf_wrapper.meta +++ b/physics/PBL/MYNN_EDMF/mynnedmf_wrapper.meta @@ -749,7 +749,6 @@ type = real kind = kind_phys intent = inout - optional = True [qke_adv] standard_name = turbulent_kinetic_energy long_name = turbulent kinetic energy @@ -766,7 +765,6 @@ type = real kind = kind_phys intent = out - optional = True [qsq] standard_name = variance_of_specific_humidity long_name = water vapor fluctuation squared @@ -775,7 +773,6 @@ type = real kind = kind_phys intent = out - optional = True [cov] standard_name = covariance_of_air_temperature_and_specific_humidity long_name = covariance of temperature and moisture @@ -784,7 +781,6 @@ type = real kind = kind_phys intent = out - optional = True [el_pbl] standard_name = turbulent_mixing_length long_name = mixing length in meters @@ -793,7 +789,6 @@ type = real kind = kind_phys intent = inout - optional = True [Sh3D] standard_name = stability_function_for_heat long_name = stability function for heat @@ -802,7 +797,6 @@ type = real kind = kind_phys intent = inout - optional = True [Sm3D] standard_name = stability_function_for_momentum long_name = stability function for momentum @@ -811,7 +805,6 @@ type = real kind = kind_phys intent = inout - optional = True [exch_h] standard_name = atmosphere_heat_diffusivity_for_mynnedmf long_name = diffusivity for heat for MYNN PBL (defined for all mass levels) @@ -820,7 +813,6 @@ type = real kind = kind_phys intent = out - optional = True [exch_m] standard_name = atmosphere_momentum_diffusivity_for_mynnedmf long_name = diffusivity for momentum for MYNN PBL (defined for all mass levels) @@ -829,7 +821,6 @@ type = real kind = kind_phys intent = out - optional = True [dqke] standard_name = total_time_rate_of_change_of_tke long_name = total tke tendency @@ -898,7 +889,6 @@ type = real kind = kind_phys intent = inout - optional = True [QI_BL] standard_name = subgrid_scale_cloud_ice_mixing_ratio long_name = subgrid cloud ice mixing ratio from PBL scheme @@ -907,7 +897,6 @@ type = real kind = kind_phys intent = inout - optional = True [CLDFRA_BL] standard_name = subgrid_scale_cloud_area_fraction_in_atmosphere_layer long_name = subgrid cloud fraction from PBL scheme @@ -916,7 +905,6 @@ type = real kind = kind_phys intent = inout - optional = True [edmf_a] standard_name = emdf_updraft_area long_name = updraft area from mass flux scheme @@ -1015,7 +1003,6 @@ type = real kind = kind_phys intent = out - optional = True [maxMF] standard_name = maximum_mass_flux long_name = maximum mass flux within a column @@ -1024,7 +1011,6 @@ type = real kind = kind_phys intent = out - optional = True [ztop_plume] standard_name = height_of_tallest_plume_in_a_column long_name = height of tallest plume in a column @@ -1033,7 +1019,6 @@ type = real kind = kind_phys intent = out - optional = True [ktop_plume] standard_name = k_level_of_highest_plume long_name = k-level of highest plume @@ -1041,7 +1026,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = inout - optional = True [dudt] standard_name = process_split_cumulative_tendency_of_x_wind long_name = updated tendency of the x wind diff --git a/physics/PBL/SHOC/shoc.F90 b/physics/PBL/SHOC/shoc.F90 index 9afe3b725..b9860dc33 100644 --- a/physics/PBL/SHOC/shoc.F90 +++ b/physics/PBL/SHOC/shoc.F90 @@ -53,7 +53,7 @@ subroutine shoc_run (nx, nzm, tcr, tcrf, con_cp, con_g, con_hvap, con_hfus, con_ real(kind=kind_phys), intent(in), dimension(:,:) :: phii ! real(kind=kind_phys), intent(inout), dimension(:,:) :: gt0, tke, tkh, wthv_sec - real(kind=kind_phys), intent(inout), dimension(:,:), optional :: cld_sgs + real(kind=kind_phys), intent(inout), dimension(:,:) :: cld_sgs real(kind=kind_phys), intent(inout), dimension(:,:,:) :: gq0 character(len=*), intent(out) :: errmsg diff --git a/physics/PBL/SHOC/shoc.meta b/physics/PBL/SHOC/shoc.meta index 7da3eda0b..a1550ce11 100644 --- a/physics/PBL/SHOC/shoc.meta +++ b/physics/PBL/SHOC/shoc.meta @@ -367,7 +367,6 @@ type = real kind = kind_phys intent = inout - optional = True [tke] standard_name = turbulent_kinetic_energy_convective_transport_tracer long_name = turbulent kinetic energy in the convectively transported tracer array diff --git a/physics/Radiation/RRTMG/radlw_main.F90 b/physics/Radiation/RRTMG/radlw_main.F90 index 6d9808857..2d6f64d3d 100644 --- a/physics/Radiation/RRTMG/radlw_main.F90 +++ b/physics/Radiation/RRTMG/radlw_main.F90 @@ -609,7 +609,7 @@ subroutine rrtmg_lw_run & integer, intent(in) :: npts, nlay, nlp1, ilwcliq, ilwcice, & isubclw, iovr, iovr_dcorr, iovr_exp, iovr_exprand, iovr_rand,& iovr_maxrand, iovr_max - integer, intent(in), optional :: icseed(npts) + integer, intent(in) :: icseed(npts) logical, intent(in) :: lprnt, inc_minor_gas @@ -630,7 +630,7 @@ subroutine rrtmg_lw_run & real (kind=kind_phys), dimension(:), intent(in) :: sfemis, & & sfgtmp, de_lgth - real (kind=kind_phys), dimension(npts,nlay),intent(in),optional:: & + real (kind=kind_phys), dimension(npts,nlay),intent(in) :: & alpha real (kind=kind_phys), dimension(:,:,:),intent(in):: & diff --git a/physics/Radiation/RRTMG/radlw_main.meta b/physics/Radiation/RRTMG/radlw_main.meta index f7a8ee43d..ec90cc533 100644 --- a/physics/Radiation/RRTMG/radlw_main.meta +++ b/physics/Radiation/RRTMG/radlw_main.meta @@ -134,7 +134,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = True [aeraod] standard_name = aerosol_optical_depth_for_longwave_bands_01_16 long_name = aerosol optical depth for longwave bands 01-16 @@ -199,7 +198,6 @@ type = real kind = kind_phys intent = in - optional = True [npts] standard_name = horizontal_loop_extent long_name = horizontal dimension @@ -365,6 +363,7 @@ type = real kind = kind_phys intent = inout + optional = True [cld_lwp] standard_name = cloud_liquid_water_path long_name = cloud liquid water path diff --git a/physics/Radiation/RRTMG/radsw_main.F90 b/physics/Radiation/RRTMG/radsw_main.F90 index 70123fe19..a95bd4b02 100644 --- a/physics/Radiation/RRTMG/radsw_main.F90 +++ b/physics/Radiation/RRTMG/radsw_main.F90 @@ -690,7 +690,7 @@ subroutine rrtmg_sw_run & iovr_rand, iovr_maxrand, iovr_max integer, dimension(:), intent(in) :: idxday - integer, dimension(:), intent(in), optional :: icseed + integer, dimension(:), intent(in) :: icseed logical, intent(in) :: lprnt, lsswr, inc_minor_gas, top_at_1 @@ -726,7 +726,7 @@ subroutine rrtmg_sw_run & real (kind=kind_phys), intent(in) :: cosz(npts), solcon, & & de_lgth(npts) - real (kind=kind_phys), dimension(npts,nlay),intent(in),optional:: & + real (kind=kind_phys), dimension(npts,nlay),intent(in) :: & alpha ! --- outputs: diff --git a/physics/Radiation/RRTMG/radsw_main.meta b/physics/Radiation/RRTMG/radsw_main.meta index bd2898ad3..55b7c29b3 100644 --- a/physics/Radiation/RRTMG/radsw_main.meta +++ b/physics/Radiation/RRTMG/radsw_main.meta @@ -134,7 +134,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = True [aeraod] standard_name = aerosol_optical_depth_for_shortwave_bands_01_16 long_name = aerosol optical depth for shortwave bands 01-16 @@ -223,7 +222,6 @@ type = real kind = kind_phys intent = in - optional = True [cosz] standard_name = cosine_of_solar_zenith_angle_for_daytime_points_on_radiation_timestep long_name = cosine of the solar zenit angle @@ -426,6 +424,7 @@ type = real kind = kind_phys intent = inout + optional = True [fdncmp] standard_name = components_of_surface_downward_shortwave_fluxes long_name = derived type for special components of surface downward shortwave fluxes @@ -433,6 +432,7 @@ dimensions = (horizontal_loop_extent) type = cmpfsw_type intent = inout + optional = True [cld_lwp] standard_name = cloud_liquid_water_path long_name = cloud liquid water path diff --git a/physics/Radiation/RRTMGP/rrtmgp_aerosol_optics.F90 b/physics/Radiation/RRTMGP/rrtmgp_aerosol_optics.F90 index 974d71b9a..4286e10d2 100644 --- a/physics/Radiation/RRTMGP/rrtmgp_aerosol_optics.F90 +++ b/physics/Radiation/RRTMGP/rrtmgp_aerosol_optics.F90 @@ -45,7 +45,7 @@ subroutine rrtmgp_aerosol_optics_run(doSWrad, doLWrad, nCol, nLev, nDay, idxday, lon, & ! Longitude lat, & ! Latitude lsmask ! Land/sea/sea-ice mask - real(kind_phys), dimension(:,:),intent(in), optional :: & + real(kind_phys), dimension(:,:),intent(in) :: & p_lay, & ! Pressure @ layer-centers (Pa) tv_lay, & ! Virtual-temperature @ layer-centers (K) relhum ! Relative-humidity @ layer-centers @@ -55,7 +55,7 @@ subroutine rrtmgp_aerosol_optics_run(doSWrad, doLWrad, nCol, nLev, nDay, idxday, tracer ! trace gas concentrations real(kind_phys), dimension(:, :,:),intent(in) :: & aerfld ! aerosol input concentrations - real(kind_phys), dimension(:,:),intent(in), optional :: & + real(kind_phys), dimension(:,:),intent(in) :: & p_lev ! Pressure @ layer-interfaces (Pa) real (kind=kind_phys), dimension(:,:), intent(out) :: & ext550 ! 3d optical extinction for total aerosol species diff --git a/physics/Radiation/RRTMGP/rrtmgp_aerosol_optics.meta b/physics/Radiation/RRTMGP/rrtmgp_aerosol_optics.meta index 4212adcc6..37ec2e9a0 100644 --- a/physics/Radiation/RRTMGP/rrtmgp_aerosol_optics.meta +++ b/physics/Radiation/RRTMGP/rrtmgp_aerosol_optics.meta @@ -88,7 +88,6 @@ type = real kind = kind_phys intent = in - optional = True [p_lay] standard_name = air_pressure_at_layer_for_RRTMGP long_name = air pressure at vertical layer for radiation calculation @@ -97,7 +96,6 @@ type = real kind = kind_phys intent = in - optional = True [p_lk] standard_name = dimensionless_exner_function long_name = dimensionless Exner function at model layer centers @@ -114,7 +112,6 @@ type = real kind = kind_phys intent = in - optional = True [relhum] standard_name = relative_humidity long_name = layer relative humidity @@ -123,7 +120,6 @@ type = real kind = kind_phys intent = in - optional = True [lsmask] standard_name = area_type long_name = landmask: sea/land/ice=0/1/2 diff --git a/physics/Radiation/RRTMGP/rrtmgp_lw_main.F90 b/physics/Radiation/RRTMGP/rrtmgp_lw_main.F90 index 2e8de2dd4..2c501b208 100644 --- a/physics/Radiation/RRTMGP/rrtmgp_lw_main.F90 +++ b/physics/Radiation/RRTMGP/rrtmgp_lw_main.F90 @@ -30,9 +30,8 @@ module rrtmgp_lw_main !! \htmlinclude rrtmgp_lw_main_int.html !! subroutine rrtmgp_lw_main_init(rrtmgp_root_dir, rrtmgp_lw_file_gas, rrtmgp_lw_file_clouds,& - active_gases_array, doGP_cldoptics_PADE, doGP_cldoptics_LUT, doGP_sgs_pbl, & - doGP_sgs_cnv, nrghice, mpicomm, mpirank, mpiroot, nLay, rrtmgp_phys_blksz, & - errmsg, errflg) + active_gases_array, doGP_cldoptics_PADE, doGP_cldoptics_LUT, nrghice, mpicomm, & + mpirank, mpiroot, nLay, rrtmgp_phys_blksz, errmsg, errflg) ! Inputs character(len=128),intent(in) :: & @@ -45,9 +44,7 @@ subroutine rrtmgp_lw_main_init(rrtmgp_root_dir, rrtmgp_lw_file_gas, rrtmgp_lw_fi active_gases_array !< List of active gases from namelist as array) logical, intent(in) :: & doGP_cldoptics_PADE, & !< Use RRTMGP cloud-optics: PADE approximation? - doGP_cldoptics_LUT, & !< Use RRTMGP cloud-optics: LUTs? - doGP_sgs_pbl, & !< Flag to include sgs PBL clouds - doGP_sgs_cnv !< Flag to include sgs convective clouds + doGP_cldoptics_LUT !< Use RRTMGP cloud-optics: LUTs? integer, intent(inout) :: & nrghice !< Number of ice-roughness categories type(MPI_Comm),intent(in) :: & @@ -83,7 +80,7 @@ end subroutine rrtmgp_lw_main_init !! \htmlinclude rrtmgp_lw_main_run.html !! subroutine rrtmgp_lw_main_run(doLWrad, doLWclrsky, top_at_1, doGP_lwscat, & - use_LW_jacobian, doGP_sgs_cnv, doGP_sgs_pbl, nCol, nLay, nGases,rrtmgp_phys_blksz,& + nCol, nLay, nGases,rrtmgp_phys_blksz, & nGauss_angles, icseed_lw, iovr, iovr_convcld, iovr_max, iovr_maxrand, iovr_rand, & iovr_dcorr, iovr_exp, iovr_exprand, isubc_lw, semis, tsfg, p_lay, p_lev, t_lay, & t_lev, vmr_o2, vmr_h2o, vmr_o3, vmr_ch4, vmr_n2o, vmr_co2, & @@ -92,16 +89,13 @@ subroutine rrtmgp_lw_main_run(doLWrad, doLWclrsky, top_at_1, doGP_lwscat, cld_cnv_reice, cld_pbl_lwp, cld_pbl_reliq, cld_pbl_iwp, cld_pbl_reice, & cloud_overlap_param, active_gases_array, aerlw_tau, aerlw_ssa, aerlw_g, & fluxlwUP_allsky, fluxlwDOWN_allsky, fluxlwUP_clrsky, fluxlwDOWN_clrsky, & - fluxlwUP_jac, fluxlwUP_radtime, fluxlwDOWN_radtime, errmsg, errflg) + fluxlwUP_radtime, fluxlwDOWN_radtime, fluxlwUP_jac, errmsg, errflg) ! Inputs logical, intent(in) :: & doLWrad, & ! Flag to perform longwave calculation doLWclrsky, & ! Flag to compute clear-sky fluxes top_at_1, & ! Flag for vertical ordering convention - use_LW_jacobian, & ! Flag to compute Jacobian of longwave surface flux - doGP_sgs_pbl, & ! Flag to include sgs PBL clouds - doGP_sgs_cnv, & ! Flag to include sgs convective clouds doGP_lwscat ! Flag to include scattering in clouds integer,intent(in) :: & nCol, & ! Number of horizontal points @@ -118,12 +112,12 @@ subroutine rrtmgp_lw_main_run(doLWrad, doLWclrsky, top_at_1, doGP_lwscat, iovr_exp, & ! Flag for exponential cloud overlap method iovr_exprand, & ! Flag for exponential-random cloud overlap method isubc_lw ! Flag for cloud-seeding (rng) for cloud-sampling - integer,intent(in),dimension(:), optional :: & + integer,intent(in),dimension(:) :: & icseed_lw ! Seed for random number generation for longwave radiation real(kind_phys), dimension(:), intent(in) :: & semis, & ! Surface-emissivity (1) tsfg ! Skin temperature (K) - real(kind_phys), dimension(:,:), intent(in), optional :: & + real(kind_phys), dimension(:,:), intent(in) :: & p_lay, & ! Pressure @ model layer-centers (Pa) t_lay, & ! Temperature (K) p_lev, & ! Pressure @ model layer-interfaces (Pa) @@ -143,9 +137,10 @@ subroutine rrtmgp_lw_main_run(doLWrad, doLWclrsky, top_at_1, doGP_lwscat, cld_swp, & ! Water path for snow hydrometeors cld_resnow, & ! Effective radius for snow hydrometeors cld_rwp, & ! Water path for rain hydrometeors - cld_rerain ! Effective radius for rain hydrometeors - real(kind_phys), dimension(:,:), intent(in), optional :: & + cld_rerain, & ! Effective radius for rain hydrometeors precip_frac, & ! Precipitation fraction (not active, currently precipitation optics uses cloud-fraction) + cloud_overlap_param ! Cloud overlap parameter + real(kind_phys), dimension(:,:), intent(in), optional :: & cld_cnv_lwp, & ! Water path for convective liquid cloud-particles cld_cnv_reliq, & ! Effective radius for convective liquid cloud-particles cld_cnv_iwp, & ! Water path for convective ice cloud-particles @@ -153,18 +148,18 @@ subroutine rrtmgp_lw_main_run(doLWrad, doLWclrsky, top_at_1, doGP_lwscat, cld_pbl_lwp, & ! Water path for PBL liquid cloud-particles cld_pbl_reliq, & ! Effective radius for PBL liquid cloud-particles cld_pbl_iwp, & ! Water path for PBL ice cloud-particles - cld_pbl_reice, & ! Effective radius for PBL ice cloud-particles - cloud_overlap_param ! Cloud overlap parameter + cld_pbl_reice ! Effective radius for PBL ice cloud-particles real(kind_phys), dimension(:,:,:), intent(in) :: & - aerlw_tau, & ! Aerosol optical depth - aerlw_ssa, & ! Aerosol single scattering albedo - aerlw_g ! Aerosol asymmetry paramter - character(len=*), dimension(:), intent(in), optional :: & + aerlw_tau, & ! Aerosol optical depth + aerlw_ssa, & ! Aerosol single scattering albedo + aerlw_g ! Aerosol asymmetry paramter + character(len=*), dimension(:), intent(in) :: & active_gases_array ! List of active gases from namelist as array ! Outputs real(kind_phys), dimension(:,:), intent(inout), optional :: & - fluxlwUP_jac, & ! Jacobian of upwelling LW surface radiation (W/m2/K) + fluxlwUP_jac ! Jacobian of upwelling LW surface radiation (W/m2/K) + real(kind_phys), dimension(:,:), intent(inout) :: & fluxlwUP_allsky, & ! All-sky flux (W/m2) fluxlwDOWN_allsky, & ! All-sky flux (W/m2) fluxlwUP_clrsky, & ! Clear-sky flux (W/m2) @@ -191,7 +186,8 @@ subroutine rrtmgp_lw_main_run(doLWrad, doLWclrsky, top_at_1, doGP_lwscat, fluxLW_up_allsky, fluxLW_up_clrsky, fluxLW_dn_allsky, fluxLW_dn_clrsky real(kind_phys), dimension(rrtmgp_phys_blksz,lw_gas_props%get_ngpt()) :: lw_Ds real(kind_phys), dimension(lw_gas_props%get_nband(),rrtmgp_phys_blksz) :: sfc_emiss_byband - + logical :: doGP_sgs_cnv, doGP_sgs_pbl + ! Local RRTMGP DDTs. type(ty_gas_concs) :: gas_concs type(ty_optical_props_1scl) :: lw_optical_props_clrsky, lw_optical_props_aerosol_local @@ -206,6 +202,20 @@ subroutine rrtmgp_lw_main_run(doLWrad, doLWclrsky, top_at_1, doGP_lwscat, if (.not. doLWrad) return + ! Do we have convective cloud properties? + doGP_sgs_cnv = .false. + if (present(cld_cnv_lwp) .and. present(cld_cnv_reliq) .and. & + present(cld_cnv_iwp) .and. present(cld_cnv_reice)) then + doGP_sgs_cnv = .true. + endif + + ! Do we have pbl cloud prperties? + doGP_sgs_pbl = .false. + if (present(cld_pbl_lwp) .and. present(cld_pbl_reliq) .and. & + present(cld_pbl_iwp) .and. present(cld_pbl_reice)) then + doGP_sgs_pbl = .true. + endif + ! ! Initialize RRTMGP DDTs (local) ! @@ -537,7 +547,7 @@ subroutine rrtmgp_lw_main_run(doLWrad, doLWclrsky, top_at_1, doGP_lwscat, call check_error_msg('rrtmgp_lw_main_increment_clrsky_to_clouds',& lw_optical_props_clrsky%increment(lw_optical_props_clouds)) - if (use_LW_jacobian) then + if (present(fluxlwUP_jac)) then ! Compute LW Jacobians call check_error_msg('rrtmgp_lw_main_lw_rte_allsky',rte_lw( & lw_optical_props_clouds, & ! IN - optical-properties @@ -562,7 +572,7 @@ subroutine rrtmgp_lw_main_run(doLWrad, doLWclrsky, top_at_1, doGP_lwscat, call check_error_msg('rrtmgp_lw_main_increment_clouds_to_clrsky', & lw_optical_props_clouds%increment(lw_optical_props_clrsky)) - if (use_LW_jacobian) then + if (present(fluxlwUP_jac)) then ! Compute LW Jacobians call check_error_msg('rrtmgp_lw_rte_run',rte_lw( & lw_optical_props_clrsky, & ! IN - optical-properties diff --git a/physics/Radiation/RRTMGP/rrtmgp_lw_main.meta b/physics/Radiation/RRTMGP/rrtmgp_lw_main.meta index ac1da1490..16a320442 100644 --- a/physics/Radiation/RRTMGP/rrtmgp_lw_main.meta +++ b/physics/Radiation/RRTMGP/rrtmgp_lw_main.meta @@ -51,20 +51,6 @@ dimensions = () type = logical intent = in -[doGP_sgs_cnv] - standard_name = flag_to_include_sgs_convective_cloud_in_RRTMGP - long_name = logical flag to control sgs convective cloud in RRTMGP - units = flag - dimensions = () - type = logical - intent = in -[doGP_sgs_pbl] - standard_name = flag_to_include_sgs_MYNN_EDMF_cloud_in_RRTMGP - long_name = logical flag to control MYNN-EDMF PBL cloud in RRTMGP - units = flag - dimensions = () - type = logical - intent = in [nrghice] standard_name = number_of_ice_roughness_categories long_name = number of ice-roughness categories in RRTMGP calculation @@ -115,7 +101,6 @@ type = character kind = len=* intent = in - optional = True [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -157,13 +142,6 @@ dimensions = () type = logical intent = in -[use_LW_jacobian] - standard_name = flag_to_calc_RRTMGP_LW_jacobian - long_name = logical flag to control RRTMGP LW calculation - units = flag - dimensions = () - type = logical - intent = in [doGP_lwscat] standard_name = flag_to_include_longwave_scattering_in_cloud_optics long_name = logical flag to control the addition of LW scattering in RRTMGP @@ -171,20 +149,6 @@ dimensions = () type = logical intent = in -[doGP_sgs_cnv] - standard_name = flag_to_include_sgs_convective_cloud_in_RRTMGP - long_name = logical flag to control sgs convective cloud in RRTMGP - units = flag - dimensions = () - type = logical - intent = in -[doGP_sgs_pbl] - standard_name = flag_to_include_sgs_MYNN_EDMF_cloud_in_RRTMGP - long_name = logical flag to control MYNN-EDMF PBL cloud in RRTMGP - units = flag - dimensions = () - type = logical - intent = in [ncol] standard_name = horizontal_loop_extent long_name = horizontal dimension @@ -290,7 +254,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = True [semis] standard_name = surface_longwave_emissivity long_name = surface lw emissivity in fraction @@ -315,7 +278,6 @@ type = real kind = kind_phys intent = in - optional = True [p_lev] standard_name = air_pressure_at_interface_for_RRTMGP long_name = air pressure at vertical interface for radiation calculation @@ -324,7 +286,6 @@ type = real kind = kind_phys intent = in - optional = True [t_lay] standard_name = air_temperature_at_layer_for_RRTMGP long_name = air temperature at vertical layer for radiation calculation @@ -333,7 +294,6 @@ type = real kind = kind_phys intent = in - optional = True [t_lev] standard_name = air_temperature_at_interface_for_RRTMGP long_name = air temperature at vertical interface for radiation calculation @@ -342,7 +302,6 @@ type = real kind = kind_phys intent = in - optional = True [vmr_o2] standard_name = volume_mixing_ratio_for_o2 long_name = molar mixing ratio of o2 in with respect to dry air @@ -351,7 +310,6 @@ type = real kind = kind_phys intent = in - optional = True [vmr_h2o] standard_name = volume_mixing_ratio_for_h2o long_name = molar mixing ratio of h2o in with respect to dry air @@ -360,7 +318,6 @@ type = real kind = kind_phys intent = in - optional = True [vmr_o3] standard_name = volume_mixing_ratio_for_o3 long_name = molar mixing ratio of o3 in with respect to dry air @@ -369,7 +326,6 @@ type = real kind = kind_phys intent = in - optional = True [vmr_ch4] standard_name = volume_mixing_ratio_for_ch4 long_name = molar mixing ratio of ch4 in with respect to dry air @@ -378,7 +334,6 @@ type = real kind = kind_phys intent = in - optional = True [vmr_n2o] standard_name = volume_mixing_ratio_for_n2o long_name = molar mixing ratio of n2o in with respect to dry air @@ -387,7 +342,6 @@ type = real kind = kind_phys intent = in - optional = True [vmr_co2] standard_name = volume_mixing_ratio_for_co2 long_name = molar mixing ratio of co2 in with respect to dry air @@ -396,7 +350,6 @@ type = real kind = kind_phys intent = in - optional = True [cld_frac] standard_name = total_cloud_fraction long_name = layer total cloud fraction @@ -477,7 +430,6 @@ type = real kind = kind_phys intent = in - optional = True [cld_cnv_lwp] standard_name = convective_cloud_liquid_water_path long_name = layer convective cloud liquid water path @@ -558,7 +510,6 @@ type = real kind = kind_phys intent = in - optional = True [active_gases_array] standard_name = list_of_active_gases_used_by_RRTMGP long_name = list of active gases used by RRTMGP @@ -567,7 +518,6 @@ type = character kind = len=* intent = in - optional = True [aerlw_tau] standard_name = aerosol_optical_depth_for_longwave_bands_01_16 long_name = aerosol optical depth for longwave bands 01-16 @@ -600,7 +550,6 @@ type = real kind = kind_phys intent = inout - optional = True [fluxlwDOWN_radtime] standard_name = RRTMGP_lw_flux_profile_downward_allsky_on_radiation_timestep long_name = RRTMGP downward longwave all-sky flux profile @@ -609,7 +558,6 @@ type = real kind = kind_phys intent = inout - optional = True [fluxlwUP_allsky] standard_name = RRTMGP_lw_flux_profile_upward_allsky long_name = RRTMGP upward longwave all-sky flux profile @@ -618,7 +566,6 @@ type = real kind = kind_phys intent = inout - optional = True [fluxlwDOWN_allsky] standard_name = RRTMGP_lw_flux_profile_downward_allsky long_name = RRTMGP downward longwave all-sky flux profile @@ -627,7 +574,6 @@ type = real kind = kind_phys intent = inout - optional = True [fluxlwUP_clrsky] standard_name = RRTMGP_lw_flux_profile_upward_clrsky long_name = RRTMGP upward longwave clr-sky flux profile @@ -636,7 +582,6 @@ type = real kind = kind_phys intent = inout - optional = True [fluxlwDOWN_clrsky] standard_name = RRTMGP_lw_flux_profile_downward_clrsky long_name = RRTMGP downward longwave clr-sky flux profile @@ -645,7 +590,6 @@ type = real kind = kind_phys intent = inout - optional = True [fluxlwUP_jac] standard_name = RRTMGP_jacobian_of_lw_flux_upward long_name = RRTMGP Jacobian upward longwave flux profile diff --git a/physics/Radiation/RRTMGP/rrtmgp_sw_main.F90 b/physics/Radiation/RRTMGP/rrtmgp_sw_main.F90 index 2138356a9..bdef49cba 100644 --- a/physics/Radiation/RRTMGP/rrtmgp_sw_main.F90 +++ b/physics/Radiation/RRTMGP/rrtmgp_sw_main.F90 @@ -31,9 +31,8 @@ module rrtmgp_sw_main !! \htmlinclude rrtmgp_sw_main_init.html !! subroutine rrtmgp_sw_main_init(rrtmgp_root_dir, rrtmgp_sw_file_gas, rrtmgp_sw_file_clouds,& - active_gases_array, doGP_cldoptics_PADE, doGP_cldoptics_LUT, doGP_sgs_pbl, & - doGP_sgs_cnv, nrghice, mpicomm, mpirank, mpiroot, nLay, rrtmgp_phys_blksz, & - errmsg, errflg) + active_gases_array, doGP_cldoptics_PADE, doGP_cldoptics_LUT, nrghice, mpicomm, & + mpirank, mpiroot, nLay, rrtmgp_phys_blksz, errmsg, errflg) ! Inputs character(len=128),intent(in) :: & @@ -44,9 +43,7 @@ subroutine rrtmgp_sw_main_init(rrtmgp_root_dir, rrtmgp_sw_file_gas, rrtmgp_sw_fi active_gases_array !< List of active gases from namelist as array) logical, intent(in) :: & doGP_cldoptics_PADE, & !< Use RRTMGP cloud-optics: PADE approximation? - doGP_cldoptics_LUT, & !< Use RRTMGP cloud-optics: LUTs? - doGP_sgs_pbl, & !< Flag to include sgs PBL clouds - doGP_sgs_cnv !< Flag to include sgs convective clouds + doGP_cldoptics_LUT !< Use RRTMGP cloud-optics: LUTs? integer, intent(inout) :: & nrghice !< Number of ice-roughness categories type(MPI_Comm),intent(in) :: & @@ -80,7 +77,7 @@ end subroutine rrtmgp_sw_main_init !> \section arg_table_rrtmgp_sw_main_run Argument Table !! \htmlinclude rrtmgp_sw_main_run.html !! - subroutine rrtmgp_sw_main_run(doSWrad, doSWclrsky, top_at_1, doGP_sgs_cnv, doGP_sgs_pbl, & + subroutine rrtmgp_sw_main_run(doSWrad, doSWclrsky, top_at_1, & nCol, nDay, nLay, nGases, rrtmgp_phys_blksz, idx, icseed_sw, iovr, iovr_convcld, & iovr_max, iovr_maxrand, iovr_rand, iovr_dcorr, iovr_exp, iovr_exprand, isubc_sw, & iSFC, sfc_alb_nir_dir, sfc_alb_nir_dif, sfc_alb_uvvis_dir, sfc_alb_uvvis_dif, coszen,& @@ -96,9 +93,7 @@ subroutine rrtmgp_sw_main_run(doSWrad, doSWclrsky, top_at_1, doGP_sgs_cnv, doGP_ logical, intent(in) :: & doSWrad, & ! Flag to perform shortwave calculation doSWclrsky, & ! Flag to compute clear-sky fluxes - top_at_1, & ! Flag for vertical ordering convention - doGP_sgs_pbl, & ! Flag to include sgs PBL clouds - doGP_sgs_cnv ! Flag to include sgs convective clouds + top_at_1 ! Flag for vertical ordering convention integer,intent(in) :: & nCol, & ! Number of horizontal points nDay, & ! Number of daytime points @@ -117,7 +112,7 @@ subroutine rrtmgp_sw_main_run(doSWrad, doSWclrsky, top_at_1, doGP_sgs_cnv, doGP_ iSFC integer,intent(in),dimension(:) :: & idx ! Index array for daytime points - integer,intent(in),dimension(:), optional :: & + integer,intent(in),dimension(:) :: & icseed_sw ! Seed for random number generation for shortwave radiation real(kind_phys), dimension(:), intent(in) :: & sfc_alb_nir_dir, & ! Surface albedo (direct) @@ -125,7 +120,7 @@ subroutine rrtmgp_sw_main_run(doSWrad, doSWclrsky, top_at_1, doGP_sgs_cnv, doGP_ sfc_alb_uvvis_dir, & ! Surface albedo (direct) sfc_alb_uvvis_dif, & ! Surface albedo (diffuse) coszen ! Cosize of SZA - real(kind_phys), dimension(:,:), intent(in), optional :: & + real(kind_phys), dimension(:,:), intent(in) :: & p_lay, & ! Pressure @ model layer-centers (Pa) t_lay, & ! Temperature (K) p_lev, & ! Pressure @ model layer-interfaces (Pa) @@ -145,9 +140,10 @@ subroutine rrtmgp_sw_main_run(doSWrad, doSWclrsky, top_at_1, doGP_sgs_cnv, doGP_ cld_swp, & ! Water path for snow hydrometeors cld_resnow, & ! Effective radius for snow hydrometeors cld_rwp, & ! Water path for rain hydrometeors - cld_rerain ! Effective radius for rain hydrometeors - real(kind_phys), dimension(:,:), intent(in), optional :: & + cld_rerain, & ! Effective radius for rain hydrometeors precip_frac, & ! Precipitation fraction + cloud_overlap_param ! + real(kind_phys), dimension(:,:), intent(in), optional :: & cld_cnv_lwp, & ! Water path for convective liquid cloud-particles cld_cnv_reliq, & ! Effective radius for convective liquid cloud-particles cld_cnv_iwp, & ! Water path for convective ice cloud-particles @@ -155,13 +151,12 @@ subroutine rrtmgp_sw_main_run(doSWrad, doSWclrsky, top_at_1, doGP_sgs_cnv, doGP_ cld_pbl_lwp, & ! Water path for PBL liquid cloud-particles cld_pbl_reliq, & ! Effective radius for PBL liquid cloud-particles cld_pbl_iwp, & ! Water path for PBL ice cloud-particles - cld_pbl_reice, & ! Effective radius for PBL ice cloud-particles - cloud_overlap_param ! + cld_pbl_reice ! Effective radius for PBL ice cloud-particles real(kind_phys), dimension(:,:,:), intent(in) :: & - aersw_tau, & ! Aerosol optical depth - aersw_ssa, & ! Aerosol single scattering albedo - aersw_g ! Aerosol asymmetry paramter - character(len=*), dimension(:), intent(in), optional :: & + aersw_tau, & ! Aerosol optical depth + aersw_ssa, & ! Aerosol single scattering albedo + aersw_g ! Aerosol asymmetry paramter + character(len=*), dimension(:), intent(in) :: & active_gases_array ! List of active gases from namelist as array real(kind_phys), intent(in) :: & solcon ! Solar constant @@ -173,7 +168,7 @@ subroutine rrtmgp_sw_main_run(doSWrad, doSWclrsky, top_at_1, doGP_sgs_cnv, doGP_ errflg ! CCPP error flag real(kind_phys), dimension(:,:), intent(inout) :: & cldtausw ! Approx 10.mu band layer cloud optical depth - real(kind_phys), dimension(:,:), intent(inout), optional :: & + real(kind_phys), dimension(:,:), intent(inout) :: & fluxswUP_allsky, & ! RRTMGP upward all-sky flux profiles (W/m2) fluxswDOWN_allsky, & ! RRTMGP downward all-sky flux profiles (W/m2) fluxswUP_clrsky, & ! RRTMGP upward clear-sky flux profiles (W/m2) @@ -197,7 +192,7 @@ subroutine rrtmgp_sw_main_run(doSWrad, doSWclrsky, top_at_1, doGP_sgs_cnv, doGP_ real(kind_dbl_prec), dimension(sw_gas_props%get_ngpt(),nLay,rrtmgp_phys_blksz) :: rng3D,rng3D2 real(kind_dbl_prec), dimension(sw_gas_props%get_ngpt()*nLay) :: rng2D logical, dimension(rrtmgp_phys_blksz,nLay,sw_gas_props%get_ngpt()) :: maskMCICA - logical :: cloudy_column, clear_column + logical :: cloudy_column, clear_column, doGP_sgs_pbl, doGP_sgs_cnv real(kind_phys), dimension(sw_gas_props%get_nband(),rrtmgp_phys_blksz) :: & sfc_alb_dir, sfc_alb_dif real(kind_phys), dimension(rrtmgp_phys_blksz,nLay+1,sw_gas_props%get_nband()),target :: & @@ -224,6 +219,19 @@ subroutine rrtmgp_sw_main_run(doSWrad, doSWclrsky, top_at_1, doGP_sgs_cnv, doGP_ if (.not. doSWrad) return + ! Do we have convective cloud properties? + doGP_sgs_cnv = .false. + if (present(cld_cnv_lwp) .and. present(cld_cnv_reliq) .and. & + present(cld_cnv_iwp) .and. present(cld_cnv_reice)) then + doGP_sgs_cnv = .true. + endif + ! Do we have pbl cloud prperties? + doGP_sgs_pbl = .false. + if (present(cld_pbl_lwp) .and. present(cld_pbl_reliq) .and. & + present(cld_pbl_iwp) .and. present(cld_pbl_reice)) then + doGP_sgs_pbl = .true. + endif + ! ty_gas_concs call check_error_msg('rrtmgp_sw_main_gas_concs_init',gas_concs%init(active_gases_array)) diff --git a/physics/Radiation/RRTMGP/rrtmgp_sw_main.meta b/physics/Radiation/RRTMGP/rrtmgp_sw_main.meta index 9bfda6fa1..abba7e1aa 100644 --- a/physics/Radiation/RRTMGP/rrtmgp_sw_main.meta +++ b/physics/Radiation/RRTMGP/rrtmgp_sw_main.meta @@ -58,20 +58,6 @@ dimensions = () type = integer intent = inout -[doGP_sgs_cnv] - standard_name = flag_to_include_sgs_convective_cloud_in_RRTMGP - long_name = logical flag to control sgs convective cloud in RRTMGP - units = flag - dimensions = () - type = logical - intent = in -[doGP_sgs_pbl] - standard_name = flag_to_include_sgs_MYNN_EDMF_cloud_in_RRTMGP - long_name = logical flag to control MYNN-EDMF PBL cloud in RRTMGP - units = flag - dimensions = () - type = logical - intent = in [rrtmgp_phys_blksz] standard_name = number_of_columns_per_RRTMGP_SW_block long_name = number of columns to process at a time by RRTMGP SW scheme @@ -115,7 +101,6 @@ type = character kind = len=* intent = in - optional = True [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP @@ -164,20 +149,6 @@ dimensions = () type = integer intent = in -[doGP_sgs_cnv] - standard_name = flag_to_include_sgs_convective_cloud_in_RRTMGP - long_name = logical flag to control sgs convective cloud in RRTMGP - units = flag - dimensions = () - type = logical - intent = in -[doGP_sgs_pbl] - standard_name = flag_to_include_sgs_MYNN_EDMF_cloud_in_RRTMGP - long_name = logical flag to control MYNN-EDMF PBL cloud in RRTMGP - units = flag - dimensions = () - type = logical - intent = in [ncol] standard_name = horizontal_loop_extent long_name = horizontal dimension @@ -298,7 +269,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = in - optional = True [p_lay] standard_name = air_pressure_at_layer_for_RRTMGP long_name = air pressure at vertical layer for radiation calculation @@ -307,7 +277,6 @@ type = real kind = kind_phys intent = in - optional = True [p_lev] standard_name = air_pressure_at_interface_for_RRTMGP long_name = air pressure at vertical interface for radiation calculation @@ -316,7 +285,6 @@ type = real kind = kind_phys intent = in - optional = True [t_lay] standard_name = air_temperature_at_layer_for_RRTMGP long_name = air temperature at vertical layer for radiation calculation @@ -325,7 +293,6 @@ type = real kind = kind_phys intent = in - optional = True [t_lev] standard_name = air_temperature_at_interface_for_RRTMGP long_name = air temperature at vertical interface for radiation calculation @@ -334,7 +301,6 @@ type = real kind = kind_phys intent = in - optional = True [vmr_o2] standard_name = volume_mixing_ratio_for_o2 long_name = molar mixing ratio of o2 in with respect to dry air @@ -343,7 +309,6 @@ type = real kind = kind_phys intent = in - optional = True [vmr_h2o] standard_name = volume_mixing_ratio_for_h2o long_name = molar mixing ratio of h2o in with respect to dry air @@ -352,7 +317,6 @@ type = real kind = kind_phys intent = in - optional = True [vmr_o3] standard_name = volume_mixing_ratio_for_o3 long_name = molar mixing ratio of o3 in with respect to dry air @@ -361,7 +325,6 @@ type = real kind = kind_phys intent = in - optional = True [vmr_ch4] standard_name = volume_mixing_ratio_for_ch4 long_name = molar mixing ratio of ch4 in with respect to dry air @@ -370,7 +333,6 @@ type = real kind = kind_phys intent = in - optional = True [vmr_n2o] standard_name = volume_mixing_ratio_for_n2o long_name = molar mixing ratio of n2o in with respect to dry air @@ -379,7 +341,6 @@ type = real kind = kind_phys intent = in - optional = True [vmr_co2] standard_name = volume_mixing_ratio_for_co2 long_name = molar mixing ratio of co2 in with respect to dry air @@ -388,7 +349,6 @@ type = real kind = kind_phys intent = in - optional = True [cld_frac] standard_name = total_cloud_fraction long_name = layer total cloud fraction @@ -469,7 +429,6 @@ type = real kind = kind_phys intent = in - optional = True [cld_cnv_lwp] standard_name = convective_cloud_liquid_water_path long_name = layer convective cloud liquid water path @@ -550,7 +509,6 @@ type = real kind = kind_phys intent = in - optional = True [sfc_alb_nir_dir] standard_name = surface_albedo_due_to_near_IR_direct long_name = surface albedo due to near IR direct beam @@ -591,7 +549,6 @@ type = character kind = len=* intent = in - optional = True [aersw_tau] standard_name = aerosol_optical_depth_for_shortwave_bands_01_16 long_name = aerosol optical depth for shortwave bands 01-16 @@ -639,7 +596,6 @@ type = real kind = kind_phys intent = inout - optional = True [fluxswDOWN_allsky] standard_name = RRTMGP_sw_flux_profile_downward_allsky long_name = RRTMGP downward shortwave all-sky flux profile @@ -648,7 +604,6 @@ type = real kind = kind_phys intent = inout - optional = True [fluxswUP_clrsky] standard_name = RRTMGP_sw_flux_profile_upward_clrsky long_name = RRTMGP upward shortwave clr-sky flux profile @@ -657,7 +612,6 @@ type = real kind = kind_phys intent = inout - optional = True [fluxswDOWN_clrsky] standard_name = RRTMGP_sw_flux_profile_downward_clrsky long_name = RRTMGP downward shortwave clr-sky flux profile @@ -666,7 +620,6 @@ type = real kind = kind_phys intent = inout - optional = True [cldtausw] standard_name = cloud_optical_depth_layers_at_0p55mu_band long_name = approx .55mu band layer cloud optical depth diff --git a/physics/SFC_Layer/MYNN/module_sf_mynn.F90 b/physics/SFC_Layer/MYNN/module_sf_mynn.F90 index 06db25441..7b1458688 100644 --- a/physics/SFC_Layer/MYNN/module_sf_mynn.F90 +++ b/physics/SFC_Layer/MYNN/module_sf_mynn.F90 @@ -315,15 +315,13 @@ SUBROUTINE SFCLAY_mynn( & CH, & FLHC,FLQC, & GZ1OZ0,WSPD, & - PSIM,PSIH - REAL(kind_phys), DIMENSION( ims:ime ), OPTIONAL , & - INTENT(INOUT) :: USTM, & - CHS2, & - CQS2, & - LH, & + PSIM,PSIH, & + USTM,CHS2, & + CQS2, WSTAR + REAL(kind_phys), DIMENSION( ims:ime ), & + INTENT(INOUT) :: LH, & ZOL, & - MOL, & - WSTAR + MOL LOGICAL, DIMENSION( ims:ime ), INTENT(IN) :: & & wet, dry, icy, flag_iter @@ -619,13 +617,13 @@ SUBROUTINE SFCLAY1D_mynn(flag_iter, & GZ1OZ0, & WSPD, & PSIM, & - PSIH - REAL(kind_phys), DIMENSION( ims:ime ), OPTIONAL, & + PSIH, & + USTM, & + CHS2,CQS2 + REAL(kind_phys), DIMENSION( ims:ime ), & INTENT(INOUT) :: MOL, & ZOL, & - LH, & - CHS2,CQS2, & - USTM + LH LOGICAL, DIMENSION( ims:ime ), INTENT(IN) :: & & wet, dry, icy, flag_iter @@ -662,9 +660,8 @@ SUBROUTINE SFCLAY1D_mynn(flag_iter, & !-------------------------------------------- !JOE-additinal output REAL(kind_phys), DIMENSION( ims:ime ), & - & INTENT(OUT) :: qstar - REAL(kind_phys), DIMENSION( ims:ime ), OPTIONAL, & - & INTENT(OUT) :: wstar + & INTENT(OUT) :: qstar, & + wstar !JOE-end diff --git a/physics/SFC_Layer/MYNN/mynnsfc_wrapper.F90 b/physics/SFC_Layer/MYNN/mynnsfc_wrapper.F90 index 779a56da4..9239dcf4e 100644 --- a/physics/SFC_Layer/MYNN/mynnsfc_wrapper.F90 +++ b/physics/SFC_Layer/MYNN/mynnsfc_wrapper.F90 @@ -176,9 +176,8 @@ SUBROUTINE mynnsfc_wrapper_run( & real(kind_phys), dimension(:), intent(inout) :: & & hflx, qflx, wspd, qsfc, & & FLHC, FLQC, U10, V10, TH2, T2, Q2, & - & rmol, ch - real(kind_phys), dimension(:), intent(inout), optional :: & - & ustm, zol, mol, lh, wstar, CHS2, CQS2 + & rmol, ch, ustm, wstar, CHS2, CQS2, & + & zol, mol, lh !LOCAL real(kind_phys), dimension(im) :: & & hfx, znt, psim, psih, & diff --git a/physics/SFC_Layer/MYNN/mynnsfc_wrapper.meta b/physics/SFC_Layer/MYNN/mynnsfc_wrapper.meta index 957beacbb..89bf1d840 100644 --- a/physics/SFC_Layer/MYNN/mynnsfc_wrapper.meta +++ b/physics/SFC_Layer/MYNN/mynnsfc_wrapper.meta @@ -720,7 +720,6 @@ type = real kind = kind_phys intent = inout - optional = True [zol] standard_name = ratio_of_height_to_monin_obukhov_length long_name = monin obukhov surface stability parameter @@ -729,7 +728,6 @@ type = real kind = kind_phys intent = inout - optional = True [mol] standard_name = surface_temperature_scale long_name = temperature flux divided by ustar (temperature scale) @@ -738,7 +736,6 @@ type = real kind = kind_phys intent = inout - optional = True [rmol] standard_name = reciprocal_of_obukhov_length long_name = one over obukhov length @@ -787,7 +784,6 @@ type = real kind = kind_phys intent = inout - optional = True [flhc] standard_name = surface_exchange_coefficient_for_heat long_name = surface exchange coefficient for heat @@ -852,7 +848,6 @@ type = real kind = kind_phys intent = inout - optional = True [chs2] standard_name = surface_exchange_coefficient_for_heat_at_2m long_name = exchange coefficient for heat at 2 meters @@ -861,7 +856,6 @@ type = real kind = kind_phys intent = inout - optional = True [cqs2] standard_name = surface_exchange_coefficient_for_moisture_at_2m long_name = exchange coefficient for moisture at 2 meters @@ -870,7 +864,6 @@ type = real kind = kind_phys intent = inout - optional = True [spp_wts_sfc] standard_name = spp_weights_for_surface_layer_scheme long_name = spp weights for surface layer scheme diff --git a/physics/SFC_Layer/UFS/sfc_nst.f90 b/physics/SFC_Layer/UFS/sfc_nst.f90 index c8c40a20d..76d3411a8 100644 --- a/physics/SFC_Layer/UFS/sfc_nst.f90 +++ b/physics/SFC_Layer/UFS/sfc_nst.f90 @@ -178,8 +178,7 @@ subroutine sfc_nst_run & usfco, vsfco, t1, q1, cm, ch, fm, fm10, & prsl1, prslki, prsik1, prslk1, xlon, xcosz, & sinlat, stress, sfcemis, dlwflx, sfcnsw, rain, wind - real (kind=kind_phys), dimension(:), intent(in), optional :: & - tref + real (kind=kind_phys), dimension(:), intent(in) :: tref real (kind=kind_phys), intent(in) :: timestep real (kind=kind_phys), intent(in) :: solhr @@ -195,7 +194,7 @@ subroutine sfc_nst_run & ! control variables of dtl system (5+2) and sl (2) and coefficients for d(tz)/d(ts) calculation real (kind=kind_phys), dimension(:), intent(inout) :: tskin, & tsurf - real (kind=kind_phys), dimension(:), intent(inout), optional :: & + real (kind=kind_phys), dimension(:), intent(inout) :: & xt, xs, xu, xv, xz, zm, xtts, xzts, dt_cool, & z_c, c_0, c_d, w_0, w_d, d_conv, ifd, qrain diff --git a/physics/SFC_Layer/UFS/sfc_nst.meta b/physics/SFC_Layer/UFS/sfc_nst.meta index 06089aa66..80f468803 100644 --- a/physics/SFC_Layer/UFS/sfc_nst.meta +++ b/physics/SFC_Layer/UFS/sfc_nst.meta @@ -181,7 +181,6 @@ type = real kind = kind_phys intent = in - optional = True [cm] standard_name = surface_drag_coefficient_for_momentum_in_air_over_water long_name = surface exchange coeff for momentum over water @@ -442,7 +441,6 @@ type = real kind = kind_phys intent = inout - optional = True [xs] standard_name = sea_water_salinity_in_diurnal_thermocline long_name = salinity content in diurnal thermocline layer @@ -451,7 +449,6 @@ type = real kind = kind_phys intent = inout - optional = True [xu] standard_name = x_current_in_diurnal_thermocline long_name = u-current content in diurnal thermocline layer @@ -460,7 +457,6 @@ type = real kind = kind_phys intent = inout - optional = True [xv] standard_name = y_current_in_diurnal_thermocline long_name = v-current content in diurnal thermocline layer @@ -469,7 +465,6 @@ type = real kind = kind_phys intent = inout - optional = True [xz] standard_name = diurnal_thermocline_layer_thickness long_name = diurnal thermocline layer thickness @@ -478,7 +473,6 @@ type = real kind = kind_phys intent = inout - optional = True [zm] standard_name = ocean_mixed_layer_thickness long_name = mixed layer thickness @@ -487,7 +481,6 @@ type = real kind = kind_phys intent = inout - optional = True [xtts] standard_name = derivative_of_heat_content_in_diurnal_thermocline_wrt_surface_skin_temperature long_name = d(xt)/d(ts) @@ -496,7 +489,6 @@ type = real kind = kind_phys intent = inout - optional = True [xzts] standard_name = derivative_of_diurnal_thermocline_layer_thickness_wrt_surface_skin_temperature long_name = d(xz)/d(ts) @@ -505,7 +497,6 @@ type = real kind = kind_phys intent = inout - optional = True [dt_cool] standard_name = molecular_sublayer_temperature_correction_in_sea_water long_name = sub-layer cooling amount @@ -514,7 +505,6 @@ type = real kind = kind_phys intent = inout - optional = True [z_c] standard_name = molecular_sublayer_thickness_in_sea_water long_name = sub-layer cooling thickness @@ -523,7 +513,6 @@ type = real kind = kind_phys intent = inout - optional = True [c_0] standard_name = coefficient_c_0 long_name = coefficient1 to calculate d(tz)/d(ts) @@ -532,7 +521,6 @@ type = real kind = kind_phys intent = inout - optional = True [c_d] standard_name = coefficient_c_d long_name = coefficient2 to calculate d(tz)/d(ts) @@ -541,7 +529,6 @@ type = real kind = kind_phys intent = inout - optional = True [w_0] standard_name = coefficient_w_0 long_name = coefficient3 to calculate d(tz)/d(ts) @@ -550,7 +537,6 @@ type = real kind = kind_phys intent = inout - optional = True [w_d] standard_name = coefficient_w_d long_name = coefficient4 to calculate d(tz)/d(ts) @@ -559,7 +545,6 @@ type = real kind = kind_phys intent = inout - optional = True [d_conv] standard_name = free_convection_layer_thickness_in_sea_water long_name = thickness of free convection layer @@ -568,7 +553,6 @@ type = real kind = kind_phys intent = inout - optional = True [ifd] standard_name = control_for_diurnal_thermocline_calculation long_name = index to start dtlm run or not @@ -577,7 +561,6 @@ type = real kind = kind_phys intent = inout - optional = True [qrain] standard_name = surface_sensible_heat_due_to_rainfall long_name = sensible heat flux due to rainfall @@ -586,7 +569,6 @@ type = real kind = kind_phys intent = inout - optional = True [qsurf] standard_name = surface_specific_humidity_over_water long_name = surface air saturation specific humidity over water diff --git a/physics/SFC_Layer/UFS/sfc_nst_post.f90 b/physics/SFC_Layer/UFS/sfc_nst_post.f90 index ca1194e3d..40529438e 100644 --- a/physics/SFC_Layer/UFS/sfc_nst_post.f90 +++ b/physics/SFC_Layer/UFS/sfc_nst_post.f90 @@ -33,8 +33,7 @@ subroutine sfc_nst_post_run & real (kind=kind_phys), intent(in) :: rlapse, tgice real (kind=kind_phys), dimension(:), intent(in) :: oro, oro_uf integer, intent(in) :: nstf_name1, nstf_name4, nstf_name5 - real (kind=kind_phys), dimension(:), intent(in) :: xlon - real (kind=kind_phys), dimension(:), intent(in), optional :: xt, xz, dt_cool, z_c, tref + real (kind=kind_phys), dimension(:), intent(in) :: xt, xz, dt_cool, z_c, tref, xlon ! --- input/outputs: real (kind=kind_phys), dimension(:), intent(inout) :: tsurf_wat, tsfc_wat diff --git a/physics/SFC_Layer/UFS/sfc_nst_post.meta b/physics/SFC_Layer/UFS/sfc_nst_post.meta index ce4bee4e4..caa487384 100644 --- a/physics/SFC_Layer/UFS/sfc_nst_post.meta +++ b/physics/SFC_Layer/UFS/sfc_nst_post.meta @@ -104,7 +104,6 @@ type = real kind = kind_phys intent = in - optional = True [xz] standard_name = diurnal_thermocline_layer_thickness long_name = diurnal thermocline layer thickness @@ -113,7 +112,6 @@ type = real kind = kind_phys intent = in - optional = True [dt_cool] standard_name = molecular_sublayer_temperature_correction_in_sea_water long_name = sub-layer cooling amount @@ -122,7 +120,6 @@ type = real kind = kind_phys intent = in - optional = True [z_c] standard_name = molecular_sublayer_thickness_in_sea_water long_name = sub-layer cooling thickness @@ -131,7 +128,6 @@ type = real kind = kind_phys intent = in - optional = True [tref] standard_name = reference_sea_surface_temperature long_name = reference/foundation temperature @@ -140,7 +136,6 @@ type = real kind = kind_phys intent = in - optional = True [xlon] standard_name = longitude long_name = longitude diff --git a/physics/SFC_Layer/UFS/sfc_nst_pre.f90 b/physics/SFC_Layer/UFS/sfc_nst_pre.f90 index dec6722ed..83cb135cf 100644 --- a/physics/SFC_Layer/UFS/sfc_nst_pre.f90 +++ b/physics/SFC_Layer/UFS/sfc_nst_pre.f90 @@ -32,12 +32,12 @@ subroutine sfc_nst_pre_run & logical, dimension(:), intent(in) :: wet real (kind=kind_phys), intent(in) :: tgice real (kind=kind_phys), dimension(:), intent(in) :: tsfco, oceanfrac - real (kind=kind_phys), dimension(:), intent(in), optional :: xt, xz, dt_cool, z_c + real (kind=kind_phys), dimension(:), intent(in) :: xt, xz, dt_cool, z_c logical, intent(in) :: cplflx ! --- input/outputs: real (kind=kind_phys), dimension(:), intent(inout) :: tsurf_wat, tseal - real (kind=kind_phys), dimension(:), intent(inout), optional :: tref + real (kind=kind_phys), dimension(:), intent(inout) :: tref ! --- outputs: character(len=*), intent(out) :: errmsg diff --git a/physics/SFC_Layer/UFS/sfc_nst_pre.meta b/physics/SFC_Layer/UFS/sfc_nst_pre.meta index 3b26fe52d..e9cdef0d1 100644 --- a/physics/SFC_Layer/UFS/sfc_nst_pre.meta +++ b/physics/SFC_Layer/UFS/sfc_nst_pre.meta @@ -62,7 +62,6 @@ type = real kind = kind_phys intent = in - optional = True [xz] standard_name = diurnal_thermocline_layer_thickness long_name = diurnal thermocline layer thickness @@ -71,7 +70,6 @@ type = real kind = kind_phys intent = in - optional = True [dt_cool] standard_name = molecular_sublayer_temperature_correction_in_sea_water long_name = sub-layer cooling amount @@ -80,7 +78,6 @@ type = real kind = kind_phys intent = in - optional = True [z_c] standard_name = molecular_sublayer_thickness_in_sea_water long_name = sub-layer cooling thickness @@ -89,7 +86,6 @@ type = real kind = kind_phys intent = in - optional = True [tref] standard_name = reference_sea_surface_temperature long_name = reference/foundation temperature @@ -98,7 +94,6 @@ type = real kind = kind_phys intent = inout - optional = True [cplflx] standard_name = flag_for_surface_flux_coupling long_name = flag controlling cplflx collection (default off) diff --git a/physics/SFC_Models/Lake/CLM/clm_lake.meta b/physics/SFC_Models/Lake/CLM/clm_lake.meta index 7754362f0..7b3bc0a49 100644 --- a/physics/SFC_Models/Lake/CLM/clm_lake.meta +++ b/physics/SFC_Models/Lake/CLM/clm_lake.meta @@ -124,7 +124,6 @@ type = real kind = kind_phys intent = inout - optional = True [frac_grid] standard_name = flag_for_fractional_landmask long_name = flag for fractional grid @@ -274,7 +273,6 @@ type = real kind = kind_phys intent = in - optional = True [rainncprv] standard_name = lwe_thickness_of_explicit_precipitation_amount_on_previous_timestep long_name = explicit rainfall from previous timestep @@ -283,7 +281,6 @@ type = real kind = kind_phys intent = in - optional = True [oro_lakedepth] standard_name = lake_depth long_name = lake depth @@ -300,7 +297,6 @@ type = real kind = kind_phys intent = inout - optional = True [wind] standard_name = wind_speed_at_lowest_model_layer long_name = wind speed at lowest model level @@ -530,7 +526,6 @@ type = real kind = kind_phys intent = inout - optional = True [albedo] standard_name = mid_day_surface_albedo_over_lake long_name = mid day surface albedo over lake @@ -539,7 +534,6 @@ type = real kind = kind_phys intent = inout - optional = True [zorlw] standard_name = surface_roughness_length_over_water long_name = surface roughness length over water @@ -564,7 +558,6 @@ type = real kind = kind_phys intent = out - optional = True [lake_q2m] standard_name = specific_humidity_at_2m_from_clm_lake long_name = specific humidity at 2m from clm lake @@ -573,7 +566,6 @@ type = real kind = kind_phys intent = out - optional = True [weasd] standard_name = lwe_thickness_of_surface_snow_amount long_name = water equiv of acc snow depth over land and sea ice @@ -612,7 +604,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = inout - optional = True [cannot_freeze] standard_name = clm_lake_cannot_freeze long_name = lake at this point is so salty it cannot freeze @@ -620,7 +611,6 @@ dimensions = (horizontal_loop_extent) type = integer intent = inout - optional = True [savedtke12d] standard_name = top_level_eddy_conductivity_from_previous_timestep_in_clm_lake_model long_name = top level eddy conductivity from previous timestep in clm lake model @@ -629,7 +619,6 @@ type = real kind = kind_phys intent = inout - optional = True [snowdp2d] standard_name = actual_snow_depth_in_clm_lake_model long_name = actual acc snow depth over lake in clm lake model @@ -638,7 +627,6 @@ type = real kind = kind_phys intent = inout - optional = True [h2osno2d] standard_name = water_equivalent_accumulated_snow_depth_in_clm_lake_model long_name = water equiv of acc snow depth over lake in clm lake model @@ -647,7 +635,6 @@ type = real kind = kind_phys intent = inout - optional = True [snl2d] standard_name = snow_layers_in_clm_lake_model long_name = snow layers in clm lake model (treated as integer) @@ -656,7 +643,6 @@ type = real kind = kind_phys intent = inout - optional = True [t_grnd2d] standard_name = skin_temperature_from_lake_model long_name = skin_temperature_from_lake_model @@ -665,7 +651,6 @@ type = real kind = kind_phys intent = inout - optional = True [t_lake3d] standard_name = lake_layer_temperature_from_clm_lake_model long_name = lake layer temperature from clm lake model @@ -674,7 +659,6 @@ type = real kind = kind_phys intent = inout - optional = True [lake_icefrac3d] standard_name = lake_fractional_ice_cover_on_clm_lake_levels long_name = lake fractional ice cover on clm lake levels @@ -683,7 +667,6 @@ type = real kind = kind_phys intent = inout - optional = True [t_soisno3d] standard_name = soil_or_snow_layer_temperature_from_clm_lake_model long_name = soil or snow layer temperature from clm lake model @@ -692,7 +675,6 @@ type = real kind = kind_phys intent = inout - optional = True [h2osoi_ice3d] standard_name = soil_ice_water_content_in_clm_lake_model long_name = soil ice water content in clm lake model @@ -701,7 +683,6 @@ type = real kind = kind_phys intent = inout - optional = True [h2osoi_liq3d] standard_name = soil_liquid_water_content_in_clm_lake_model long_name = soil liquid water content in clm lake model @@ -710,7 +691,6 @@ type = real kind = kind_phys intent = inout - optional = True [h2osoi_vol3d] standard_name = volumetric_soil_water_in_clm_lake_model long_name = volumetric soil water in clm lake model @@ -719,7 +699,6 @@ type = real kind = kind_phys intent = inout - optional = True [z3d] standard_name = snow_level_depth_in_clm_lake_model long_name = snow level depth in clm lake model @@ -728,7 +707,6 @@ type = real kind = kind_phys intent = inout - optional = True [dz3d] standard_name = snow_level_thickness_in_clm_lake_model long_name = snow level thickness in clm lake model @@ -737,7 +715,6 @@ type = real kind = kind_phys intent = inout - optional = True [zi3d] standard_name = snow_interface_depth_in_clm_lake_model long_name = snow interface_depth in clm lake model @@ -746,7 +723,6 @@ type = real kind = kind_phys intent = inout - optional = True [clm_lakedepth] standard_name = clm_lake_depth long_name = clm internal copy of lake depth with 10.0 replaced by default lake depth @@ -755,7 +731,6 @@ type = real kind = kind_phys intent = in - optional = True [t1] standard_name = air_temperature_at_surface_adjacent_layer long_name = mean temperature at lowest model layer diff --git a/physics/SFC_Models/Lake/Flake/flake_driver.F90 b/physics/SFC_Models/Lake/Flake/flake_driver.F90 index 9092b1c36..b5d54009a 100644 --- a/physics/SFC_Models/Lake/Flake/flake_driver.F90 +++ b/physics/SFC_Models/Lake/Flake/flake_driver.F90 @@ -66,7 +66,7 @@ SUBROUTINE flake_driver_run ( & real (kind=kind_phys),dimension(:),intent(inout) :: & & snwdph, hice, tsurf, t_sfc, hflx, evap, fice, ustar, qsfc, & & ch, cm, chh, cmm, T_ice, tsurf_ice, lflx, gflx - real (kind=kind_phys),dimension(:),intent(inout), optional :: & + real (kind=kind_phys),dimension(:),intent(inout) :: & & h_ML, t_wML, t_mnw, H_B, T_B, t_bot1, t_bot2, c_t, T_snow real (kind=kind_phys), intent(in) :: julian @@ -443,10 +443,10 @@ subroutine flake_driver_post_run (im, use_lake_model, h_ML, T_wML, & real (kind=kind_phys), dimension(:), intent(in) :: & & lakedepth, tsurf - real (kind=kind_phys), dimension(:), intent(in), optional :: & + real (kind=kind_phys), dimension(:), intent(in) :: & & h_ML, t_wML - real (kind=kind_phys),dimension(:),intent(inout), optional :: & + real (kind=kind_phys),dimension(:),intent(inout) :: & & xz, zm, tref real (kind=kind_phys),dimension(:),intent(inout) :: tsfco diff --git a/physics/SFC_Models/Lake/Flake/flake_driver.meta b/physics/SFC_Models/Lake/Flake/flake_driver.meta index f5615ba08..22ab62d1e 100644 --- a/physics/SFC_Models/Lake/Flake/flake_driver.meta +++ b/physics/SFC_Models/Lake/Flake/flake_driver.meta @@ -311,7 +311,6 @@ type = real kind = kind_phys intent = inout - optional = True [t_wML] standard_name = lake_mixed_layer_temperature long_name = temperature of lake mixing layer @@ -320,7 +319,6 @@ type = real kind = kind_phys intent = inout - optional = True [t_mnw] standard_name = mean_temperature_of_the_water_column long_name = thee mean temperature of the water column @@ -329,7 +327,6 @@ type = real kind = kind_phys intent = inout - optional = True [H_B] standard_name = the_thermally_active_layer_depth_of_the_bottom_sediment long_name = the depth of the thermally active layer of the bottom sediment @@ -338,7 +335,6 @@ type = real kind = kind_phys intent = inout - optional = True [T_B] standard_name = temperature_at_the_bottom_of_the_sediment_upper_layer long_name = the temperature at the bottom of the sediment upper layer @@ -347,7 +343,6 @@ type = real kind = kind_phys intent = inout - optional = True [t_bot1] standard_name = lake_bottom_temperature long_name = the temperature at the water-bottom sediment interface @@ -356,7 +351,6 @@ type = real kind = kind_phys intent = inout - optional = True [t_bot2] standard_name = temperature_for_bottom_layer_of_water long_name = the temperature at the lake bottom layer water @@ -365,7 +359,6 @@ type = real kind = kind_phys intent = inout - optional = True [c_t] standard_name = shape_factor_of_water_temperature_vertical_profile long_name = the shape factor of water temperature vertical profile @@ -374,7 +367,6 @@ type = real kind = kind_phys intent = inout - optional = True [T_snow] standard_name = temperature_of_snow_on_lake long_name = the temperature of snow on a lake @@ -383,7 +375,6 @@ type = real kind = kind_phys intent = inout - optional = True [T_ice] standard_name = surface_skin_temperature_over_ice long_name = surface skin temperature over ice @@ -456,7 +447,6 @@ type = real kind = kind_phys intent = in - optional = True [t_wML] standard_name = lake_mixed_layer_temperature long_name = temperature of lake mixing layer @@ -465,7 +455,6 @@ type = real kind = kind_phys intent = in - optional = True [xz] standard_name = diurnal_thermocline_layer_thickness long_name = diurnal thermocline layer thickness @@ -474,7 +463,6 @@ type = real kind = kind_phys intent = out - optional = True [zm] standard_name = ocean_mixed_layer_thickness long_name = mixed layer thickness @@ -483,7 +471,6 @@ type = real kind = kind_phys intent = out - optional = True [tref] standard_name = reference_sea_surface_temperature long_name = reference/foundation temperature @@ -492,7 +479,6 @@ type = real kind = kind_phys intent = out - optional = True [tfco] standard_name = sea_surface_temperature long_name = sea surface temperature diff --git a/physics/SFC_Models/Land/Noah/lsm_noah.f b/physics/SFC_Models/Land/Noah/lsm_noah.f index 139c978a0..6ff83c67f 100644 --- a/physics/SFC_Models/Land/Noah/lsm_noah.f +++ b/physics/SFC_Models/Land/Noah/lsm_noah.f @@ -285,8 +285,9 @@ subroutine lsm_noah_run & real (kind=kind_phys), dimension(:), intent(inout) :: sncovr1, & & qsurf, gflux, drain, evap, hflx, ep, runoff, cmm, chh, & & evbs, evcw, sbsno, snowc, stm, snohf, smcwlt2, smcref2 + real (kind=kind_phys), dimension(:), intent(inout) :: lai, rca real (kind=kind_phys), dimension(:), intent(inout), optional :: & - & wet1, lai, rca + & wet1 character(len=*), intent(out) :: errmsg integer, intent(out) :: errflg diff --git a/physics/SFC_Models/Land/Noah/lsm_noah.meta b/physics/SFC_Models/Land/Noah/lsm_noah.meta index f26b075d9..3270c9de6 100644 --- a/physics/SFC_Models/Land/Noah/lsm_noah.meta +++ b/physics/SFC_Models/Land/Noah/lsm_noah.meta @@ -759,7 +759,6 @@ type = real kind = kind_phys intent = inout - optional = True [rca] standard_name = aerodynamic_resistance_in_canopy long_name = canopy resistance @@ -768,7 +767,6 @@ type = real kind = kind_phys intent = inout - optional = True [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP diff --git a/physics/SFC_Models/Land/Noahmp/noahmpdrv.F90 b/physics/SFC_Models/Land/Noahmp/noahmpdrv.F90 index d4971efd9..a4c80362d 100644 --- a/physics/SFC_Models/Land/Noahmp/noahmpdrv.F90 +++ b/physics/SFC_Models/Land/Noahmp/noahmpdrv.F90 @@ -585,11 +585,11 @@ subroutine noahmpdrv_run & integer , intent(in) :: iyrlen ! year length [days] real(kind=kind_phys) , intent(in) :: julian ! julian day of year real(kind=kind_phys), dimension(:) , intent(in) :: garea ! area of the grid cell - real(kind=kind_phys), dimension(:) , intent(in), optional :: rainn_mp ! microphysics non-convective precipitation [mm] - real(kind=kind_phys), dimension(:) , intent(in), optional :: rainc_mp ! microphysics convective precipitation [mm] - real(kind=kind_phys), dimension(:) , intent(in), optional :: snow_mp ! microphysics snow [mm] - real(kind=kind_phys), dimension(:) , intent(in), optional :: graupel_mp ! microphysics graupel [mm] - real(kind=kind_phys), dimension(:) , intent(in), optional :: ice_mp ! microphysics ice/hail [mm] + real(kind=kind_phys), dimension(:) , intent(in) :: rainn_mp ! microphysics non-convective precipitation [mm] + real(kind=kind_phys), dimension(:) , intent(in) :: rainc_mp ! microphysics convective precipitation [mm] + real(kind=kind_phys), dimension(:) , intent(in) :: snow_mp ! microphysics snow [mm] + real(kind=kind_phys), dimension(:) , intent(in) :: graupel_mp ! microphysics graupel [mm] + real(kind=kind_phys), dimension(:) , intent(in) :: ice_mp ! microphysics ice/hail [mm] real(kind=kind_phys), dimension(:) , intent(in) :: rhonewsn1 ! precipitation ice density (kg/m^3) real(kind=kind_phys) , intent(in) :: con_hvap ! latent heat condensation [J/kg] real(kind=kind_phys) , intent(in) :: con_cp ! specific heat air [J/kg/K] @@ -627,40 +627,40 @@ subroutine noahmpdrv_run & real(kind=kind_phys), dimension(:) , intent(inout) :: fm101 ! MOS function for momentum evaulated @ 10 m real(kind=kind_phys), dimension(:) , intent(inout) :: fh21 ! MOS function for heat evaulated @ 2m - real(kind=kind_phys), dimension(:) , intent(inout), optional :: snowxy ! actual no. of snow layers - real(kind=kind_phys), dimension(:) , intent(inout), optional :: tvxy ! vegetation leaf temperature [K] - real(kind=kind_phys), dimension(:) , intent(inout), optional :: tgxy ! bulk ground surface temperature [K] - real(kind=kind_phys), dimension(:) , intent(inout), optional :: canicexy ! canopy-intercepted ice [mm] - real(kind=kind_phys), dimension(:) , intent(inout), optional :: canliqxy ! canopy-intercepted liquid water [mm] - real(kind=kind_phys), dimension(:) , intent(inout), optional :: eahxy ! canopy air vapor pressure [Pa] - real(kind=kind_phys), dimension(:) , intent(inout), optional :: tahxy ! canopy air temperature [K] - real(kind=kind_phys), dimension(:) , intent(inout), optional :: cmxy ! bulk momentum drag coefficient [m/s] - real(kind=kind_phys), dimension(:) , intent(inout), optional :: chxy ! bulk sensible heat exchange coefficient [m/s] - real(kind=kind_phys), dimension(:) , intent(inout), optional :: fwetxy ! wetted or snowed fraction of the canopy [-] - real(kind=kind_phys), dimension(:) , intent(inout), optional :: sneqvoxy ! snow mass at last time step[mm h2o] - real(kind=kind_phys), dimension(:) , intent(inout), optional :: alboldxy ! snow albedo at last time step [-] - real(kind=kind_phys), dimension(:) , intent(inout), optional :: qsnowxy ! snowfall on the ground [mm/s] - real(kind=kind_phys), dimension(:) , intent(inout), optional :: wslakexy ! lake water storage [mm] - real(kind=kind_phys), dimension(:) , intent(inout), optional :: zwtxy ! water table depth [m] - real(kind=kind_phys), dimension(:) , intent(inout), optional :: waxy ! water in the "aquifer" [mm] - real(kind=kind_phys), dimension(:) , intent(inout), optional :: wtxy ! groundwater storage [mm] - real(kind=kind_phys), dimension(:,lsnowl:), intent(inout), optional :: tsnoxy ! snow temperature [K] - real(kind=kind_phys), dimension(:,lsnowl:), intent(inout), optional :: zsnsoxy ! snow/soil layer depth [m] - real(kind=kind_phys), dimension(:,lsnowl:), intent(inout), optional :: snicexy ! snow layer ice [mm] - real(kind=kind_phys), dimension(:,lsnowl:), intent(inout), optional :: snliqxy ! snow layer liquid water [mm] - real(kind=kind_phys), dimension(:) , intent(inout), optional :: lfmassxy ! leaf mass [g/m2] - real(kind=kind_phys), dimension(:) , intent(inout), optional :: rtmassxy ! mass of fine roots [g/m2] - real(kind=kind_phys), dimension(:) , intent(inout), optional :: stmassxy ! stem mass [g/m2] - real(kind=kind_phys), dimension(:) , intent(inout), optional :: woodxy ! mass of wood (incl. woody roots) [g/m2] - real(kind=kind_phys), dimension(:) , intent(inout), optional :: stblcpxy ! stable carbon in deep soil [g/m2] - real(kind=kind_phys), dimension(:) , intent(inout), optional :: fastcpxy ! short-lived carbon, shallow soil [g/m2] - real(kind=kind_phys), dimension(:) , intent(inout), optional :: xlaixy ! leaf area index [m2/m2] - real(kind=kind_phys), dimension(:) , intent(inout), optional :: xsaixy ! stem area index [m2/m2] - real(kind=kind_phys), dimension(:) , intent(inout), optional :: taussxy ! snow age factor [-] - real(kind=kind_phys), dimension(:,:) , intent(inout), optional :: smoiseq ! eq volumetric soil moisture [m3/m3] - real(kind=kind_phys), dimension(:) , intent(inout), optional :: smcwtdxy ! soil moisture content in the layer to the water table when deep - real(kind=kind_phys), dimension(:) , intent(inout), optional :: deeprechxy ! recharge to the water table when deep - real(kind=kind_phys), dimension(:) , intent(inout), optional :: rechxy ! recharge to the water table + real(kind=kind_phys), dimension(:) , intent(inout) :: snowxy ! actual no. of snow layers + real(kind=kind_phys), dimension(:) , intent(inout) :: tvxy ! vegetation leaf temperature [K] + real(kind=kind_phys), dimension(:) , intent(inout) :: tgxy ! bulk ground surface temperature [K] + real(kind=kind_phys), dimension(:) , intent(inout) :: canicexy ! canopy-intercepted ice [mm] + real(kind=kind_phys), dimension(:) , intent(inout) :: canliqxy ! canopy-intercepted liquid water [mm] + real(kind=kind_phys), dimension(:) , intent(inout) :: eahxy ! canopy air vapor pressure [Pa] + real(kind=kind_phys), dimension(:) , intent(inout) :: tahxy ! canopy air temperature [K] + real(kind=kind_phys), dimension(:) , intent(inout) :: cmxy ! bulk momentum drag coefficient [m/s] + real(kind=kind_phys), dimension(:) , intent(inout) :: chxy ! bulk sensible heat exchange coefficient [m/s] + real(kind=kind_phys), dimension(:) , intent(inout) :: fwetxy ! wetted or snowed fraction of the canopy [-] + real(kind=kind_phys), dimension(:) , intent(inout) :: sneqvoxy ! snow mass at last time step[mm h2o] + real(kind=kind_phys), dimension(:) , intent(inout) :: alboldxy ! snow albedo at last time step [-] + real(kind=kind_phys), dimension(:) , intent(inout) :: qsnowxy ! snowfall on the ground [mm/s] + real(kind=kind_phys), dimension(:) , intent(inout) :: wslakexy ! lake water storage [mm] + real(kind=kind_phys), dimension(:) , intent(inout) :: zwtxy ! water table depth [m] + real(kind=kind_phys), dimension(:) , intent(inout) :: waxy ! water in the "aquifer" [mm] + real(kind=kind_phys), dimension(:) , intent(inout) :: wtxy ! groundwater storage [mm] + real(kind=kind_phys), dimension(:,lsnowl:), intent(inout) :: tsnoxy ! snow temperature [K] + real(kind=kind_phys), dimension(:,lsnowl:), intent(inout) :: zsnsoxy ! snow/soil layer depth [m] + real(kind=kind_phys), dimension(:,lsnowl:), intent(inout) :: snicexy ! snow layer ice [mm] + real(kind=kind_phys), dimension(:,lsnowl:), intent(inout) :: snliqxy ! snow layer liquid water [mm] + real(kind=kind_phys), dimension(:) , intent(inout) :: lfmassxy ! leaf mass [g/m2] + real(kind=kind_phys), dimension(:) , intent(inout) :: rtmassxy ! mass of fine roots [g/m2] + real(kind=kind_phys), dimension(:) , intent(inout) :: stmassxy ! stem mass [g/m2] + real(kind=kind_phys), dimension(:) , intent(inout) :: woodxy ! mass of wood (incl. woody roots) [g/m2] + real(kind=kind_phys), dimension(:) , intent(inout) :: stblcpxy ! stable carbon in deep soil [g/m2] + real(kind=kind_phys), dimension(:) , intent(inout) :: fastcpxy ! short-lived carbon, shallow soil [g/m2] + real(kind=kind_phys), dimension(:) , intent(inout) :: xlaixy ! leaf area index [m2/m2] + real(kind=kind_phys), dimension(:) , intent(inout) :: xsaixy ! stem area index [m2/m2] + real(kind=kind_phys), dimension(:) , intent(inout) :: taussxy ! snow age factor [-] + real(kind=kind_phys), dimension(:,:) , intent(inout) :: smoiseq ! eq volumetric soil moisture [m3/m3] + real(kind=kind_phys), dimension(:) , intent(inout) :: smcwtdxy ! soil moisture content in the layer to the water table when deep + real(kind=kind_phys), dimension(:) , intent(inout) :: deeprechxy ! recharge to the water table when deep + real(kind=kind_phys), dimension(:) , intent(inout) :: rechxy ! recharge to the water table real(kind=kind_phys), dimension(:) , intent(out) :: albdvis ! albedo - direct visible [fraction] real(kind=kind_phys), dimension(:) , intent(out) :: albdnir ! albedo - direct NIR [fraction] real(kind=kind_phys), dimension(:) , intent(out) :: albivis ! albedo - diffuse visible [fraction] @@ -688,12 +688,12 @@ subroutine noahmpdrv_run & real(kind=kind_phys), dimension(:) , intent(out) :: snohf ! snow/freezing-rain latent heat flux [W/m2] real(kind=kind_phys), dimension(:) , intent(out) :: smcwlt2 ! dry soil moisture threshold [m3/m3] real(kind=kind_phys), dimension(:) , intent(out) :: smcref2 ! soil moisture threshold [m3/m3] - real(kind=kind_phys), dimension(:) , intent(out), optional :: wet1 ! normalized surface soil saturated fraction - real(kind=kind_phys), dimension(:) , intent(out), optional :: t2mmp ! combined T2m from tiles - real(kind=kind_phys), dimension(:) , intent(out), optional :: q2mp ! combined q2m from tiles + real(kind=kind_phys), dimension(:) , intent(out) :: wet1 ! normalized surface soil saturated fraction + real(kind=kind_phys), dimension(:) , intent(out) :: t2mmp ! combined T2m from tiles + real(kind=kind_phys), dimension(:) , intent(out) :: q2mp ! combined q2m from tiles real(kind=kind_phys), dimension(:) , intent(out) :: zvfun ! real(kind=kind_phys), dimension(:) , intent(out) :: ztmax ! thermal roughness length - real(kind=kind_phys), dimension(:) , intent(out), optional :: rca ! total canopy/stomatal resistance (s/m) + real(kind=kind_phys), dimension(:) , intent(out) :: rca ! total canopy/stomatal resistance (s/m) character(len=*) , intent(out) :: errmsg integer , intent(out) :: errflg diff --git a/physics/SFC_Models/Land/Noahmp/noahmpdrv.meta b/physics/SFC_Models/Land/Noahmp/noahmpdrv.meta index 7d1150c80..ff5d19f5a 100644 --- a/physics/SFC_Models/Land/Noahmp/noahmpdrv.meta +++ b/physics/SFC_Models/Land/Noahmp/noahmpdrv.meta @@ -743,7 +743,6 @@ type = real kind = kind_phys intent = in - optional = True [rainc_mp] standard_name = convective_precipitation_rate_on_previous_timestep long_name = convective precipitation rate from previous timestep @@ -752,7 +751,6 @@ type = real kind = kind_phys intent = in - optional = True [snow_mp] standard_name = snowfall_rate_on_previous_timestep long_name = snow precipitation rate from previous timestep @@ -761,7 +759,6 @@ type = real kind = kind_phys intent = in - optional = True [graupel_mp] standard_name = graupel_precipitation_rate_on_previous_timestep long_name = graupel precipitation rate from previous timestep @@ -770,7 +767,6 @@ type = real kind = kind_phys intent = in - optional = True [ice_mp] standard_name = ice_precipitation_rate_on_previous_timestep long_name = ice precipitation rate from previous timestep @@ -779,7 +775,6 @@ type = real kind = kind_phys intent = in - optional = True [rhonewsn1] standard_name = surface_frozen_precipitation_density long_name = density of precipitation ice @@ -1072,7 +1067,6 @@ type = real kind = kind_phys intent = inout - optional = True [tvxy] standard_name = canopy_temperature long_name = vegetation temperature @@ -1081,7 +1075,6 @@ type = real kind = kind_phys intent = inout - optional = True [tgxy] standard_name = ground_temperature long_name = ground temperature for noahmp @@ -1090,7 +1083,6 @@ type = real kind = kind_phys intent = inout - optional = True [canicexy] standard_name = canopy_intercepted_ice_mass long_name = canopy intercepted ice mass @@ -1099,7 +1091,6 @@ type = real kind = kind_phys intent = inout - optional = True [canliqxy] standard_name = canopy_intercepted_liquid_water long_name = canopy intercepted liquid water @@ -1108,7 +1099,6 @@ type = real kind = kind_phys intent = inout - optional = True [eahxy] standard_name = air_vapor_pressure_in_canopy long_name = canopy air vapor pressure @@ -1117,7 +1107,6 @@ type = real kind = kind_phys intent = inout - optional = True [tahxy] standard_name = air_temperature_in_canopy long_name = canopy air temperature @@ -1126,7 +1115,6 @@ type = real kind = kind_phys intent = inout - optional = True [cmxy] standard_name = surface_drag_coefficient_for_momentum_for_noahmp long_name = surface drag coefficient for momentum for noahmp @@ -1135,7 +1123,6 @@ type = real kind = kind_phys intent = inout - optional = True [chxy] standard_name = surface_drag_coefficient_for_heat_and_moisture_for_noahmp long_name = surface exchange coeff heat & moisture for noahmp @@ -1144,7 +1131,6 @@ type = real kind = kind_phys intent = inout - optional = True [fwetxy] standard_name = wet_canopy_area_fraction long_name = area fraction of canopy that is wetted/snowed @@ -1153,7 +1139,6 @@ type = real kind = kind_phys intent = inout - optional = True [sneqvoxy] standard_name = lwe_thickness_of_snowfall_amount_on_previous_timestep long_name = snow mass at previous time step @@ -1162,7 +1147,6 @@ type = real kind = kind_phys intent = inout - optional = True [alboldxy] standard_name = surface_albedo_assuming_deep_snow_on_previous_timestep long_name = snow albedo at previous time step @@ -1171,7 +1155,6 @@ type = real kind = kind_phys intent = inout - optional = True [qsnowxy] standard_name = lwe_snowfall_rate long_name = snow precipitation rate at surface @@ -1180,7 +1163,6 @@ type = real kind = kind_phys intent = inout - optional = True [wslakexy] standard_name = water_storage_in_lake long_name = lake water storage @@ -1189,7 +1171,6 @@ type = real kind = kind_phys intent = inout - optional = True [zwtxy] standard_name = water_table_depth long_name = water table depth @@ -1198,7 +1179,6 @@ type = real kind = kind_phys intent = inout - optional = True [waxy] standard_name = water_storage_in_aquifer long_name = water storage in aquifer @@ -1207,7 +1187,6 @@ type = real kind = kind_phys intent = inout - optional = True [wtxy] standard_name = water_storage_in_aquifer_and_saturated_soil long_name = water storage in aquifer and saturated soil @@ -1216,7 +1195,6 @@ type = real kind = kind_phys intent = inout - optional = True [tsnoxy] standard_name = temperature_in_surface_snow long_name = temperature_in_surface_snow @@ -1225,7 +1203,6 @@ type = real kind = kind_phys intent = inout - optional = True [zsnsoxy] standard_name = depth_from_snow_surface_at_bottom_interface long_name = depth from the top of the snow surface at the bottom of the layer @@ -1234,7 +1211,6 @@ type = real kind = kind_phys intent = inout - optional = True [snicexy] standard_name = lwe_thickness_of_ice_in_surface_snow long_name = lwe_thickness_of_ice_in_surface_snow @@ -1243,7 +1219,6 @@ type = real kind = kind_phys intent = inout - optional = True [snliqxy] standard_name = lwe_thickness_of_liquid_water_in_surface_snow long_name = snow layer liquid water @@ -1252,7 +1227,6 @@ type = real kind = kind_phys intent = inout - optional = True [lfmassxy] standard_name = leaf_mass_content long_name = leaf mass @@ -1261,7 +1235,6 @@ type = real kind = kind_phys intent = inout - optional = True [rtmassxy] standard_name = fine_root_mass_content long_name = fine root mass @@ -1270,7 +1243,6 @@ type = real kind = kind_phys intent = inout - optional = True [stmassxy] standard_name = stem_mass_content long_name = stem mass @@ -1279,7 +1251,6 @@ type = real kind = kind_phys intent = inout - optional = True [woodxy] standard_name = wood_mass_content long_name = wood mass including woody roots @@ -1288,7 +1259,6 @@ type = real kind = kind_phys intent = inout - optional = True [stblcpxy] standard_name = slow_soil_pool_mass_content_of_carbon long_name = stable carbon in deep soil @@ -1297,7 +1267,6 @@ type = real kind = kind_phys intent = inout - optional = True [fastcpxy] standard_name = fast_soil_pool_mass_content_of_carbon long_name = short-lived carbon in shallow soil @@ -1306,7 +1275,6 @@ type = real kind = kind_phys intent = inout - optional = True [xlaixy] standard_name = leaf_area_index long_name = leaf area index @@ -1315,7 +1283,6 @@ type = real kind = kind_phys intent = inout - optional = True [xsaixy] standard_name = stem_area_index long_name = stem area index @@ -1324,7 +1291,6 @@ type = real kind = kind_phys intent = inout - optional = True [taussxy] standard_name = dimensionless_age_of_surface_snow long_name = non-dimensional snow age @@ -1333,7 +1299,6 @@ type = real kind = kind_phys intent = inout - optional = True [smoiseq] standard_name = volumetric_equilibrium_soil_moisture long_name = equilibrium soil water content @@ -1342,7 +1307,6 @@ type = real kind = kind_phys intent = inout - optional = True [smcwtdxy] standard_name = volumetric_soil_moisture_between_soil_bottom_and_water_table long_name = soil water content between the bottom of the soil and the water table @@ -1351,7 +1315,6 @@ type = real kind = kind_phys intent = inout - optional = True [deeprechxy] standard_name = water_table_recharge_assuming_deep long_name = recharge to or from the water table when deep @@ -1360,7 +1323,6 @@ type = real kind = kind_phys intent = inout - optional = True [rechxy] standard_name = water_table_recharge_assuming_shallow long_name = recharge to or from the water table when shallow @@ -1369,7 +1331,6 @@ type = real kind = kind_phys intent = inout - optional = True [albdvis] standard_name = surface_albedo_direct_visible_over_land long_name = direct surface albedo visible band over land @@ -1594,7 +1555,6 @@ type = real kind = kind_phys intent = out - optional = True [t2mmp] standard_name = temperature_at_2m_from_noahmp long_name = 2 meter temperature from noahmp @@ -1603,7 +1563,6 @@ type = real kind = kind_phys intent = out - optional = True [q2mp] standard_name = specific_humidity_at_2m_from_noahmp long_name = 2 meter specific humidity from noahmp @@ -1612,7 +1571,6 @@ type = real kind = kind_phys intent = out - optional = True [zvfun] standard_name = function_of_surface_roughness_length_and_green_vegetation_fraction long_name = function of surface roughness length and green vegetation fraction @@ -1637,7 +1595,6 @@ type = real kind = kind_phys intent = out - optional = True [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP diff --git a/physics/SFC_Models/Land/RUC/lsm_ruc.F90 b/physics/SFC_Models/Land/RUC/lsm_ruc.F90 index c6176fe31..b24e72758 100644 --- a/physics/SFC_Models/Land/RUC/lsm_ruc.F90 +++ b/physics/SFC_Models/Land/RUC/lsm_ruc.F90 @@ -88,22 +88,22 @@ subroutine lsm_ruc_init (me, master, isot, ivegsrc, nlunit, & real (kind_phys), dimension(:,:), intent(in) :: smc,slc,stc real (kind_phys), intent(in) :: min_seaice ! --- in/out: - real (kind_phys), dimension(:), intent(inout), optional :: wetness + real (kind_phys), dimension(:), intent(inout) :: wetness ! --- inout - real (kind_phys), dimension(:,:), intent(inout), optional :: sh2o, smfrkeep - real (kind_phys), dimension(:,:), intent(inout), optional :: tslb, smois + real (kind_phys), dimension(:,:), intent(inout) :: sh2o, smfrkeep + real (kind_phys), dimension(:,:), intent(inout) :: tslb, smois real (kind_phys), dimension(:), intent(inout) :: semis_lnd real (kind_phys), dimension(:), intent(inout) :: semis_ice real (kind_phys), dimension(:), intent(inout) :: & albdvis_lnd, albdnir_lnd, albivis_lnd, albinir_lnd - real (kind_phys), dimension(:), intent(inout), optional :: & + real (kind_phys), dimension(:), intent(inout) :: & albdvis_ice, albdnir_ice, albivis_ice, albinir_ice, & sfcqv_lnd, sfcqv_ice ! --- out real (kind_phys), dimension(:), intent(out) :: zs - real (kind_phys), dimension(:), intent(inout), optional :: sfalb_lnd_bck + real (kind_phys), dimension(:), intent(inout) :: sfalb_lnd_bck real (kind_phys), dimension(:,:), intent(inout) :: tsice real (kind_phys), dimension(:), intent(out) :: semisbase real (kind_phys), dimension(:), intent(out) :: pores, resid @@ -383,7 +383,7 @@ subroutine lsm_ruc_run & ! inputs imp_physics_nssl real (kind_phys), dimension(:), intent(in) :: xlat_d, xlon_d real (kind_phys), dimension(:), intent(in) :: oro, sigma - real (kind_phys), dimension(:), intent(in), optional :: sfalb_lnd_bck + real (kind_phys), dimension(:), intent(in) :: sfalb_lnd_bck real (kind_phys), dimension(:), intent(in) :: & & t1, sigmaf, dlwflx, dswsfc, tg3, & & coszen, prsl1, wind, shdmin, shdmax, & @@ -420,7 +420,7 @@ subroutine lsm_ruc_run & ! inputs real (kind_phys), dimension(:), intent(in) :: zs real (kind_phys), dimension(:), intent(in) :: srflag - real (kind_phys), dimension(:), intent(inout), optional :: & + real (kind_phys), dimension(:), intent(inout) :: & & laixy, tsnow_lnd, sfcqv_lnd, sfcqc_lnd, sfcqc_ice, sfcqv_ice,& & tsnow_ice real (kind_phys), dimension(:), intent(inout) :: & @@ -433,21 +433,21 @@ subroutine lsm_ruc_run & ! inputs & tsurf_ice, z0rl_ice, fice ! --- in - real (kind_phys), dimension(:), intent(in), optional :: & + real (kind_phys), dimension(:), intent(in) :: & & rainnc, rainc, ice, snow, graupel real (kind_phys), dimension(:), intent(in) :: rhonewsn1 - real (kind_phys), dimension(:), intent(in), optional :: & + real (kind_phys), dimension(:), intent(in) :: & fire_heat_flux_out, frac_grid_burned_out logical, intent(in) :: add_fire_heat_flux ! --- in/out: ! --- on RUC levels - real (kind_phys), dimension(:,:), intent(inout), optional :: & + real (kind_phys), dimension(:,:), intent(inout) :: & & smois, tslb, sh2o, keepfr, smfrkeep real (kind_phys), dimension(:,:), intent(inout) :: & & tsice ! --- output: - real (kind_phys), dimension(:), intent(inout), optional :: & + real (kind_phys), dimension(:), intent(inout) :: & & sfalb_lnd, sfalb_ice, wetness, snowfallac_lnd, & & snowfallac_ice, rhosnf real (kind_phys), dimension(:), intent(inout) :: & @@ -461,11 +461,11 @@ subroutine lsm_ruc_run & ! inputs & sncovr1_ice, qsurf_ice, gflux_ice, evap_ice, ep1d_ice, & & cmm_ice, chh_ice, hflx_ice, & & snowmt_ice - real (kind_phys), dimension(:), intent(inout), optional :: & + real (kind_phys), dimension(:), intent(inout) :: & acsnow_lnd, acsnow_ice real (kind_phys), dimension(:), intent( out) :: & & albdvis_lnd, albdnir_lnd, albivis_lnd, albinir_lnd - real (kind_phys), dimension(:), intent( out), optional :: & + real (kind_phys), dimension(:), intent( out) :: & & albdvis_ice, albdnir_ice, albivis_ice, albinir_ice logical, intent(in) :: flag_init, lsm_cold_start diff --git a/physics/SFC_Models/Land/RUC/lsm_ruc.meta b/physics/SFC_Models/Land/RUC/lsm_ruc.meta index fc3c52d2a..bc4d358e3 100644 --- a/physics/SFC_Models/Land/RUC/lsm_ruc.meta +++ b/physics/SFC_Models/Land/RUC/lsm_ruc.meta @@ -320,7 +320,6 @@ type = real kind = kind_phys intent = inout - optional = True [sfcqv_ice] standard_name = water_vapor_mixing_ratio_at_surface_over_ice long_name = water vapor mixing ratio at surface over ice @@ -329,7 +328,6 @@ type = real kind = kind_phys intent = inout - optional = True [sfalb_lnd_bck] standard_name =surface_snow_free_albedo_over_land long_name = surface snow-free albedo over ice @@ -338,7 +336,6 @@ type = real kind = kind_phys intent = inout - optional = True [semisbase] standard_name = baseline_surface_longwave_emissivity long_name = baseline surface lw emissivity in fraction @@ -403,7 +400,6 @@ type = real kind = kind_phys intent = inout - optional = True [albdnir_ice] standard_name = surface_albedo_direct_NIR_over_ice long_name = direct surface albedo NIR band over ice @@ -412,7 +408,6 @@ type = real kind = kind_phys intent = inout - optional = True [albivis_ice] standard_name = surface_albedo_diffuse_visible_over_ice long_name = diffuse surface albedo visible band over ice @@ -421,7 +416,6 @@ type = real kind = kind_phys intent = inout - optional = True [albinir_ice] standard_name = surface_albedo_diffuse_NIR_over_ice long_name = diffuse surface albedo NIR band over ice @@ -430,7 +424,6 @@ type = real kind = kind_phys intent = inout - optional = True [zs] standard_name = depth_of_soil_layers long_name = depth of soil levels for land surface model @@ -447,7 +440,6 @@ type = real kind = kind_phys intent = inout - optional = True [smfrkeep] standard_name = volume_fraction_of_frozen_soil_moisture_for_land_surface_model long_name = volume fraction of frozen soil moisture for lsm @@ -456,7 +448,6 @@ type = real kind = kind_phys intent = inout - optional = True [tslb] standard_name = soil_temperature_for_land_surface_model long_name = soil temperature for land surface model @@ -465,7 +456,6 @@ type = real kind = kind_phys intent = inout - optional = True [smois] standard_name = volume_fraction_of_soil_moisture_for_land_surface_model long_name = volumetric fraction of soil moisture for lsm @@ -474,7 +464,6 @@ type = real kind = kind_phys intent = inout - optional = True [wetness] standard_name = normalized_soil_wetness_for_land_surface_model long_name = normalized soil wetness @@ -483,7 +472,6 @@ type = real kind = kind_phys intent = inout - optional = True [tsice] standard_name = temperature_in_ice_layer long_name = sea ice internal temperature @@ -827,7 +815,6 @@ type = real kind = kind_phys intent = inout - optional = True [dlwflx] standard_name = surface_downwelling_longwave_flux long_name = surface downwelling longwave flux at current time @@ -889,7 +876,6 @@ type = real kind = kind_phys intent = in - optional = True [rainc] standard_name = lwe_thickness_of_convective_precipitation_amount_on_previous_timestep long_name = convective_precipitation_amount from previous timestep @@ -898,7 +884,6 @@ type = real kind = kind_phys intent = in - optional = True [ice] standard_name = lwe_thickness_of_ice_precipitation_amount_on_previous_timestep long_name = ice amount from previous timestep @@ -907,7 +892,6 @@ type = real kind = kind_phys intent = in - optional = True [snow] standard_name = snow_mass_on_previous_timestep long_name = snow amount from previous timestep @@ -916,7 +900,6 @@ type = real kind = kind_phys intent = in - optional = True [graupel] standard_name = lwe_thickness_of_graupel_amount_on_previous_timestep long_name = graupel amount from previous timestep @@ -925,7 +908,6 @@ type = real kind = kind_phys intent = in - optional = True [prsl1] standard_name = air_pressure_at_surface_adjacent_layer long_name = mean pressure at lowest model layer @@ -982,7 +964,6 @@ type = real kind = kind_phys intent = in - optional = True [snoalb] standard_name = upper_bound_of_max_albedo_assuming_deep_snow long_name = maximum snow albedo @@ -1173,7 +1154,6 @@ type = real kind = kind_phys intent = inout - optional = True [sfalb_ice] standard_name = surface_diffused_shortwave_albedo_over_ice long_name = mean surface diffused sw albedo over ice @@ -1182,7 +1162,6 @@ type = real kind = kind_phys intent = inout - optional = True [sncovr1_lnd] standard_name = surface_snow_area_fraction_over_land long_name = surface snow area fraction over land @@ -1255,7 +1234,6 @@ type = real kind = kind_phys intent = inout - optional = True [tsice] standard_name = temperature_in_ice_layer long_name = sea ice internal temperature @@ -1272,7 +1250,6 @@ type = real kind = kind_phys intent = inout - optional = True [sh2o] standard_name = volume_fraction_of_unfrozen_soil_moisture_for_land_surface_model long_name = volume fraction of unfrozen soil moisture for lsm @@ -1281,7 +1258,6 @@ type = real kind = kind_phys intent = inout - optional = True [keepfr] standard_name = control_for_frozen_soil_physics long_name = flag for frozen soil physics (RUC) @@ -1290,7 +1266,6 @@ type = real kind = kind_phys intent = inout - optional = True [smfrkeep] standard_name = volume_fraction_of_frozen_soil_moisture_for_land_surface_model long_name = volume fraction of frozen soil moisture for lsm @@ -1299,7 +1274,6 @@ type = real kind = kind_phys intent = inout - optional = True [canopy] standard_name = canopy_water_amount long_name = canopy water amount @@ -1332,7 +1306,6 @@ type = real kind = kind_phys intent = inout - optional = True [z0rl_lnd] standard_name = surface_roughness_length_over_land long_name = surface roughness length over land (temporary use as interstitial) @@ -1349,7 +1322,6 @@ type = real kind = kind_phys intent = inout - optional = True [sfcqv_lnd] standard_name = water_vapor_mixing_ratio_at_surface_over_land long_name = water vapor mixing ratio at surface over land @@ -1358,7 +1330,6 @@ type = real kind = kind_phys intent = inout - optional = True [qsurf_lnd] standard_name = surface_specific_humidity_over_land long_name = surface air saturation specific humidity over land @@ -1471,7 +1442,6 @@ type = real kind = kind_phys intent = inout - optional = True [snowfallac_lnd] standard_name = surface_snow_amount_assuming_variable_snow_density_over_land long_name = run-total snow accumulation on the ground with variable snow density over land @@ -1480,7 +1450,6 @@ type = real kind = kind_phys intent = inout - optional = True [acsnow_lnd] standard_name = surface_snow_lwe_thickness_amount_over_land long_name = run-total snowfall water equivalent over land @@ -1489,7 +1458,6 @@ type = real kind = kind_phys intent = inout - optional = True [snowmt_lnd] standard_name = surface_snow_melt_over_land long_name = snow melt during timestep over land @@ -1546,7 +1514,6 @@ type = real kind = kind_phys intent = inout - optional = True [sfcqv_ice] standard_name = water_vapor_mixing_ratio_at_surface_over_ice long_name = water vapor mixing ratio at surface over ice @@ -1555,7 +1522,6 @@ type = real kind = kind_phys intent = inout - optional = True [tsurf_ice] standard_name = surface_skin_temperature_after_iteration_over_ice long_name = surface skin temperature after iteration over ice @@ -1572,7 +1538,6 @@ type = real kind = kind_phys intent = inout - optional = True [z0rl_ice] standard_name = surface_roughness_length_over_ice long_name = surface roughness length over ice (temporary use as interstitial) @@ -1645,7 +1610,6 @@ type = real kind = kind_phys intent = inout - optional = True [acsnow_ice] standard_name = surface_snow_lwe_thickness_amount_over_ice long_name = run-total snowfall water equivalent over ice @@ -1654,7 +1618,6 @@ type = real kind = kind_phys intent = inout - optional = True [snowmt_ice] standard_name = surface_snow_melt_over_ice long_name = snow melt during timestep over ice @@ -1671,7 +1634,6 @@ type = real kind = kind_phys intent = out - optional = True [albdnir_ice] standard_name = surface_albedo_direct_NIR_over_ice long_name = direct surface albedo NIR band over ice @@ -1680,7 +1642,6 @@ type = real kind = kind_phys intent = out - optional = True [albivis_ice] standard_name = surface_albedo_diffuse_visible_over_ice long_name = diffuse surface albedo visible band over ice @@ -1689,7 +1650,6 @@ type = real kind = kind_phys intent = out - optional = True [albinir_ice] standard_name = surface_albedo_diffuse_NIR_over_ice long_name = diffuse surface albedo NIR band over ice @@ -1698,7 +1658,6 @@ type = real kind = kind_phys intent = out - optional = True [rhosnf] standard_name = lsm_internal_surface_frozen_precipitation_density long_name = density of frozen precipitation @@ -1707,7 +1666,6 @@ type = real kind = kind_phys intent = inout - optional = True [sbsno] standard_name = snow_deposition_sublimation_upward_latent_heat_flux long_name = latent heat flux from snow depo/subl @@ -1805,7 +1763,6 @@ type = real kind = kind_phys intent = in - optional = True [frac_grid_burned_out] standard_name = fraction_of_grid_cell_burning long_name = ration of the burnt area to the grid cell area @@ -1814,7 +1771,6 @@ type = real kind = kind_phys intent = in - optional = True [errmsg] standard_name = ccpp_error_message long_name = error message for error handling in CCPP diff --git a/physics/SFC_Models/SeaIce/CICE/sfc_cice.f b/physics/SFC_Models/SeaIce/CICE/sfc_cice.f index 26768b4f9..3147c0aa1 100644 --- a/physics/SFC_Models/SeaIce/CICE/sfc_cice.f +++ b/physics/SFC_Models/SeaIce/CICE/sfc_cice.f @@ -90,10 +90,10 @@ subroutine sfc_cice_run & ! real (kind=kind_phys), dimension(im), intent(in) :: u1, v1, & real (kind=kind_phys), dimension(:), intent(in) :: & & t1, q1, cm, ch, prsl1, wind - real (kind=kind_phys), dimension(:), intent(in), optional :: & + real (kind=kind_phys), dimension(:), intent(in) :: & & snowd - real (kind=kind_phys), dimension(:), intent(in), optional :: & + real (kind=kind_phys), dimension(:), intent(in) :: & & dqsfc, dtsfc, dusfc, dvsfc logical, dimension(:), intent(in) :: flag_cice, flag_iter diff --git a/physics/SFC_Models/SeaIce/CICE/sfc_cice.meta b/physics/SFC_Models/SeaIce/CICE/sfc_cice.meta index 71bf56720..c44f9d6b5 100644 --- a/physics/SFC_Models/SeaIce/CICE/sfc_cice.meta +++ b/physics/SFC_Models/SeaIce/CICE/sfc_cice.meta @@ -124,7 +124,6 @@ type = real kind = kind_phys intent = in - optional = True [dtsfc] standard_name = surface_upward_sensible_heat_flux_from_coupled_process long_name = sfc sensible heat flux for coupling @@ -133,7 +132,6 @@ type = real kind = kind_phys intent = in - optional = True [dusfc] standard_name = surface_x_momentum_flux_from_coupled_process long_name = sfc x momentum flux for coupling @@ -142,7 +140,6 @@ type = real kind = kind_phys intent = in - optional = True [dvsfc] standard_name = surface_y_momentum_flux_from_coupled_process long_name = sfc y momentum flux for coupling @@ -151,7 +148,6 @@ type = real kind = kind_phys intent = in - optional = True [snowd] standard_name = lwe_surface_snow_from_coupled_process long_name = sfc snow depth in meters over sea ice for coupling @@ -160,7 +156,6 @@ type = real kind = kind_phys intent = in - optional = True [qsurf] standard_name = surface_specific_humidity_over_ice long_name = surface air saturation specific humidity over ice diff --git a/physics/smoke_dust/rrfs_smoke_wrapper.F90 b/physics/smoke_dust/rrfs_smoke_wrapper.F90 index 764561272..4d8071f0e 100755 --- a/physics/smoke_dust/rrfs_smoke_wrapper.F90 +++ b/physics/smoke_dust/rrfs_smoke_wrapper.F90 @@ -146,11 +146,11 @@ subroutine rrfs_smoke_wrapper_run(im, flag_init, kte, kme, ktau, dt, garea, land integer, parameter :: its=1,jts=1,jte=1, kts=1 integer, dimension(:), intent(in) :: land, vegtype_dom, soiltyp - real(kind_phys), dimension(:,:), intent(in), optional :: smc, tslb - real(kind_phys), dimension(:,:,:), intent(in), optional :: dust12m_in - real(kind_phys), dimension(:,:,:), intent(in), optional :: smoke_RRFS - real(kind_phys), dimension(:,:), intent(in), optional :: smoke2d_RRFS - real(kind_phys), dimension(:,:), intent(in), optional :: emi_ant_in + real(kind_phys), dimension(:,:), intent(in), optional :: smc, tslb + real(kind_phys), dimension(:,:,:), intent(in), optional :: dust12m_in + real(kind_phys), dimension(:,:,:), intent(in), optional :: smoke_RRFS + real(kind_phys), dimension(:,:), intent(in), optional :: smoke2d_RRFS + real(kind_phys), dimension(:,:), intent(in), optional :: emi_ant_in real(kind_phys), dimension(:), intent(in) :: u10m, v10m, ustar, dswsfc, & recmol, garea, rlat,rlon, tskin, pb2d, zorl, snow, & rain_cpl, rainc_cpl, hf2d, t2m, dpt2m, totprcp @@ -162,7 +162,7 @@ subroutine rrfs_smoke_wrapper_run(im, flag_init, kte, kme, ktau, dt, garea, land real(kind_phys), dimension(:), intent(inout), optional :: emdust, emseas, emanoc real(kind_phys), dimension(:), intent(inout), optional :: ebb_smoke_in,coef_bb, frp_output, fhist real(kind_phys), dimension(:,:), intent(inout), optional :: ebu_smoke - real(kind_phys), dimension(:,:), intent(inout), optional :: rho_dry + real(kind_phys), dimension(:,:), intent(inout), optional :: rho_dry real(kind_phys), dimension(:), intent(out ), optional :: fire_heat_flux_out, frac_grid_burned_out real(kind_phys), dimension(:), intent(inout), optional :: max_fplume, min_fplume, uspdavg, hpbl_thetav real(kind_phys), dimension(:), intent(inout), optional :: hwp, peak_hr_out diff --git a/physics/smoke_dust/rrfs_smoke_wrapper.meta b/physics/smoke_dust/rrfs_smoke_wrapper.meta index 2f3605ff4..ba630d101 100755 --- a/physics/smoke_dust/rrfs_smoke_wrapper.meta +++ b/physics/smoke_dust/rrfs_smoke_wrapper.meta @@ -940,7 +940,7 @@ type = real kind = kind_phys intent = out - optional = True + optional = True [lu_nofire_out] standard_name = sum_of_land_use_fractions_for_no_fire_pixels long_name = land use of no fire pixels for type @@ -949,7 +949,7 @@ type = real kind = kind_phys intent = out - optional = True + optional = True [lu_qfire_out] standard_name = sum_of_land_use_fractions_for_cropland_fire_pixels long_name = land use of fire pixels for type @@ -958,7 +958,7 @@ type = real kind = kind_phys intent = out - optional = True + optional = True [fire_heat_flux_out] standard_name = surface_fire_heat_flux long_name = heat flux of fire at the surface