From b6a244c8f5572c55980a22c7f70e489921337fd5 Mon Sep 17 00:00:00 2001 From: Grant Firl Date: Thu, 13 Aug 2020 16:06:50 -0600 Subject: [PATCH 01/11] change mod_name of nonphys tendencies in GFS_diagnostics.F90 to gfs_dyn from gfs_phys --- gfsphysics/GFS_layer/GFS_diagnostics.F90 | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/gfsphysics/GFS_layer/GFS_diagnostics.F90 b/gfsphysics/GFS_layer/GFS_diagnostics.F90 index ed2e5d51a..c9fc3a6a6 100644 --- a/gfsphysics/GFS_layer/GFS_diagnostics.F90 +++ b/gfsphysics/GFS_layer/GFS_diagnostics.F90 @@ -2434,7 +2434,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop ExtDiag(idx)%name = 'dt3dt_nophys' ExtDiag(idx)%desc = 'temperature tendency due to non-physics processes' ExtDiag(idx)%unit = 'K s-1' - ExtDiag(idx)%mod_name = 'gfs_phys' + ExtDiag(idx)%mod_name = 'gfs_dyn' ExtDiag(idx)%time_avg = .TRUE. allocate (ExtDiag(idx)%data(nblks)) do nb = 1,nblks @@ -2615,7 +2615,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop ExtDiag(idx)%name = 'du3dt_nophys' ExtDiag(idx)%desc = 'u momentum tendency due to non-physics processes' ExtDiag(idx)%unit = 'm s-2' - ExtDiag(idx)%mod_name = 'gfs_phys' + ExtDiag(idx)%mod_name = 'gfs_dyn' ExtDiag(idx)%time_avg = .TRUE. allocate (ExtDiag(idx)%data(nblks)) do nb = 1,nblks @@ -2627,7 +2627,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop ExtDiag(idx)%name = 'dv3dt_nophys' ExtDiag(idx)%desc = 'v momentum tendency due to non-physics processes' ExtDiag(idx)%unit = 'm s-2' - ExtDiag(idx)%mod_name = 'gfs_phys' + ExtDiag(idx)%mod_name = 'gfs_dyn' ExtDiag(idx)%time_avg = .TRUE. allocate (ExtDiag(idx)%data(nblks)) do nb = 1,nblks @@ -2774,7 +2774,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop ExtDiag(idx)%name = 'dq3dt_nophys' ExtDiag(idx)%desc = 'water vapor specific humidity tendency due to non-physics processes' ExtDiag(idx)%unit = 'kg kg-1 s-1' - ExtDiag(idx)%mod_name = 'gfs_phys' + ExtDiag(idx)%mod_name = 'gfs_dyn' ExtDiag(idx)%time_avg = .TRUE. allocate (ExtDiag(idx)%data(nblks)) do nb = 1,nblks @@ -2786,7 +2786,7 @@ subroutine GFS_externaldiag_populate (ExtDiag, Model, Statein, Stateout, Sfcprop ExtDiag(idx)%name = 'dq3dt_o3nophys' ExtDiag(idx)%desc = 'ozone concentration tendency due to non-physics processes' ExtDiag(idx)%unit = 'kg kg-1 s-1' - ExtDiag(idx)%mod_name = 'gfs_phys' + ExtDiag(idx)%mod_name = 'gfs_dyn' ExtDiag(idx)%time_avg = .TRUE. allocate (ExtDiag(idx)%data(nblks)) do nb = 1,nblks From dc137768ff1b92e85556d074680a1128badcdf87 Mon Sep 17 00:00:00 2001 From: Grant Firl Date: Thu, 27 Aug 2020 14:22:21 -0600 Subject: [PATCH 02/11] add new variables and metadata to GFS_typedefs.[F90,meta] to support removal of GFS DDTs from ccpp physics (except for time_vary routines) --- gfsphysics/GFS_layer/GFS_typedefs.F90 | 54 +++-- gfsphysics/GFS_layer/GFS_typedefs.meta | 307 +++++++++++++++++++++++-- 2 files changed, 321 insertions(+), 40 deletions(-) diff --git a/gfsphysics/GFS_layer/GFS_typedefs.F90 b/gfsphysics/GFS_layer/GFS_typedefs.F90 index 3c1252b1e..fba255668 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.F90 +++ b/gfsphysics/GFS_layer/GFS_typedefs.F90 @@ -9,7 +9,7 @@ module GFS_typedefs con_t0c, con_cvap, con_cliq, con_eps, con_epsq, & con_epsm1, con_ttp, rlapse, con_jcal, con_rhw0, & con_sbc, con_tice, cimin, con_p0, rhowater, & - con_csol, con_epsqs + con_csol, con_epsqs, con_rocp, con_rog use module_radsw_parameters, only: topfsw_type, sfcfsw_type, profsw_type, cmpfsw_type, NBDSW use module_radlw_parameters, only: topflw_type, sfcflw_type, proflw_type, NBDLW @@ -1105,6 +1105,12 @@ module GFS_typedefs integer :: nkbfshoc !< the index of upward kinematic buoyancy flux from SHOC in phy_f3d integer :: nahdshoc !< the index of diffusivity for heat from from SHOC in phy_f3d integer :: nscfshoc !< the index of subgrid-scale cloud fraction from from SHOC in phy_f3d + integer :: nT2delt !< the index of air temperature 2 timesteps back for Z-C MP in phy_f3d + integer :: nTdelt !< the index of air temperature at the previous timestep for Z-C MP in phy_f3d + integer :: nqv2delt !< the index of specific humidity 2 timesteps back for Z-C MP in phy_f3d + integer :: nqvdelt !< the index of specific humidity at the previous timestep for Z-C MP in phy_f3d + integer :: nps2delt !< the index of surface air pressure 2 timesteps back for Z-C MP in phy_f2d + integer :: npsdelt !< the index of surface air pressure at the previous timestep for Z-C MP in phy_f2d #endif !--- debug flag @@ -4523,17 +4529,29 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & endif !--- set up cloud schemes and tracer elements - Model%nleffr = -999 - Model%nieffr = -999 - Model%nreffr = -999 - Model%nseffr = -999 - Model%ngeffr = -999 + Model%nleffr = -999 + Model%nieffr = -999 + Model%nreffr = -999 + Model%nseffr = -999 + Model%ngeffr = -999 + Model%nT2delt = -999 + Model%nTdelt = -999 + Model%nqv2delt = -999 + Model%nqvdelt = -999 + Model%nps2delt = -999 + Model%npsdelt = -999 if (Model%imp_physics == Model%imp_physics_zhao_carr) then - Model%npdf3d = 0 - Model%num_p3d = 4 - Model%num_p2d = 3 - Model%shcnvcw = .false. - Model%ncnd = 1 ! ncnd is the number of cloud condensate types + Model%npdf3d = 0 + Model%num_p3d = 4 + Model%num_p2d = 3 + Model%shcnvcw = .false. + Model%ncnd = 1 ! ncnd is the number of cloud condensate types + Model%nT2delt = 1 + Model%nqv2delt = 2 + Model%nTdelt = 3 + Model%nqvdelt = 4 + Model%nps2delt = 1 + Model%npsdelt = 2 if (Model%me == Model%master) print *,' Using Zhao/Carr/Sundqvist Microphysics' elseif (Model%imp_physics == Model%imp_physics_zhao_carr_pdf) then !Zhao Microphysics with PDF cloud @@ -4553,9 +4571,9 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & Model%pdfcld = .false. Model%shcnvcw = .false. Model%ncnd = 5 - Model%nleffr = 1 - Model%nieffr = 2 - Model%nseffr = 3 + Model%nleffr = 1 + Model%nieffr = 2 + Model%nseffr = 3 if (Model%me == Model%master) print *,' Using Ferrier-Aligo MP scheme', & ' microphysics', & ' lradar =',Model%lradar @@ -4580,9 +4598,9 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & Model%pdfcld = .false. Model%shcnvcw = .false. Model%ncnd = 5 - Model%nleffr = 1 - Model%nieffr = 2 - Model%nseffr = 3 + Model%nleffr = 1 + Model%nieffr = 2 + Model%nseffr = 3 if (Model%me == Model%master) print *,' Using Thompson double moment', & ' microphysics',' ltaerosol = ',Model%ltaerosol, & ' ttendlim =',Model%ttendlim, & @@ -4723,7 +4741,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & !--- BEGIN CODE FROM GLOOPR -!--- set up parameters for Xu & Randell's cloudiness computation (Radiation) +!--- set up parameters for Xu & Randall's cloudiness computation (Radiation) Model%lmfshal = (Model%shal_cnv .and. Model%imfshalcnv > 0) #ifdef CCPP diff --git a/gfsphysics/GFS_layer/GFS_typedefs.meta b/gfsphysics/GFS_layer/GFS_typedefs.meta index 4c5d75267..8e42165f7 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.meta +++ b/gfsphysics/GFS_layer/GFS_typedefs.meta @@ -2013,6 +2013,13 @@ units = none dimensions = () type = integer +[fhzero] + standard_name = frequency_for_diagnostic_clearing + long_name = frequency for clearing diagnostic fields + units = h + dimensions = () + type = real + kind = kind_phys [ldiag3d] standard_name = flag_diagnostics_3D long_name = flag for 3d diagnostic fields @@ -2055,6 +2062,42 @@ units = flag dimensions = () type = logical +[isc] + standard_name = starting_x_index_for_this_MPI_rank + long_name = starting index in the x direction for this MPI rank + units = count + dimensions = () + type = integer +[jsc] + standard_name = starting_y_index_for_this_MPI_rank + long_name = starting index in the y direction for this MPI rank + units = count + dimensions = () + type = integer +[nx] + standard_name = number_of_points_in_x_direction_for_this_MPI_rank + long_name = number of points in x direction for this MPI rank + units = count + dimensions = () + type = integer +[ny] + standard_name = number_of_points_in_y_direction_for_this_MPI_rank + long_name = number of points in y direction for this MPI rank + units = count + dimensions = () + type = integer +[cnx] + standard_name = number_of_points_in_x_direction_for_this_cubed_sphere_face + long_name = number of points in x direction for this cubed sphere face + units = count + dimensions = () + type = integer +[cny] + standard_name = number_of_points_in_y_direction_for_this_cubed_sphere_face + long_name = number of points in y direction for this cubed sphere face + units = count + dimensions = () + type = integer [naux2d] standard_name = number_of_2d_auxiliary_arrays long_name = number of 2d auxiliary arrays to output (for debugging) @@ -2172,7 +2215,13 @@ [nscyc] standard_name = number_of_timesteps_between_surface_cycling_calls long_name = number of timesteps between surface cycling calls - units = + units = count + dimensions = () + type = integer +[nszero] + standard_name = number_of_timesteps_between_diagnostic_clearing + long_name = number of timesteps between calls to clear diagnostic variables + units = count dimensions = () type = integer [dtp] @@ -2245,6 +2294,12 @@ units = count dimensions = () type = integer +[nfxr] + standard_name = number_of_radiation_diagnostic_variables + long_name = number of variables stored in the fluxr array + units = count + dimensions = () + type = integer [iaerclm] standard_name = flag_for_aerosol_input_MG_radiation long_name = flag for using aerosols in Morrison-Gettelman MP_radiation @@ -2588,6 +2643,12 @@ dimensions = (2) type = real kind = kind_phys +[seed0] + standard_name = seed_random_numbers_RAS + long_name = random number seed for the RAS scheme + units = none + dimensions = () + type = integer [dlqf] standard_name = condensate_fraction_detrained_in_updraft_layers long_name = condensate fraction detrained with in a updraft layers @@ -2864,6 +2925,12 @@ dimensions = () type = real kind = kind_phys +[lgfdlmprad] + standard_name = flag_for_GFDL_microphysics_radiation_interaction + long_name = flag for GFDL microphysics-radiation interaction + units = flag + dimensions = () + type = logical [lsm] standard_name = flag_for_land_surface_scheme long_name = flag for land surface model @@ -3136,6 +3203,12 @@ units = flag dimensions = () type = logical +[h2o_phys] + standard_name = flag_for_stratospheric_water_vapor_physics + long_name = flag for stratospheric water vapor physics + units = flag + dimensions = () + type = logical [shcnvcw] standard_name = flag_shallow_convective_cloud long_name = flag for shallow convective cloud @@ -3166,6 +3239,12 @@ units = flag dimensions = () type = logical +[random_clds] + standard_name = flag_for_random_clouds_for_RAS + long_name = flag for using random clouds with the RAS scheme + units = flag + dimensions = () + type = logical [shal_cnv] standard_name = flag_for_shallow_convection long_name = flag for calling shallow convection @@ -3539,7 +3618,7 @@ [rho_h2o] standard_name = density_of_fresh_water long_name = density of fresh water - units = ??? + units = kg m-3 dimensions = () type = real kind = kind_phys @@ -4015,6 +4094,42 @@ units = dimensions = () type = integer +[nT2delt] + standard_name = index_for_air_temperature_two_timesteps_back + long_name = the index of air temperature two timesteps back in phy f3d + units = + dimensions = () + type = integer +[nTdelt] + standard_name = index_for_air_temperature_at_previous_timestep + long_name = the index of air temperature at previous timestep in phy f3d + units = + dimensions = () + type = integer +[nqv2delt] + standard_name = index_for_specific_humidity_two_timesteps_back + long_name = the index of specific humidity two timesteps back in phy f3d + units = + dimensions = () + type = integer +[nqvdelt] + standard_name = index_for_specific_humidity_at_previous_timestep + long_name = the index of specific humidity at previous timestep in phy f3d + units = + dimensions = () + type = integer +[nps2delt] + standard_name = index_for_surface_air_pressure_two_timesteps_back + long_name = the index of surface air pressure two timesteps back in phy f2d + units = + dimensions = () + type = integer +[npsdelt] + standard_name = index_for_surface_air_pressure_at_previous_timestep + long_name = the index of surface air pressure at previous timestep in phy f2d + units = + dimensions = () + type = integer [debug] standard_name = flag_debug long_name = control flag for debug @@ -4348,14 +4463,20 @@ long_name = flag for uni_cld units = flag dimensions = () - type = logical + type = logical [lmfshal] standard_name = flag_for_lmfshal long_name = flag for lmfshal units = flag dimensions = () type = logical - +[lmfdeep2] + standard_name = flag_for_scale_aware_mass_flux_convection + long_name = flag for some scale-aware mass-flux convection scheme active + units = flag + dimensions = () + type = logical + ######################################################################## [ccpp-arg-table] name = GFS_grid_type @@ -4409,6 +4530,127 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys +[xlon_d] + standard_name = longitude_in_degree + long_name = longitude in degrees + units = degree_east + dimensions = (horizontal_dimension) + type = real + kind = kind_phys +[jindx1_o3] + standard_name = lower_ozone_interpolation_index + long_name = interpolation low index for ozone + units = index + dimensions = (horizontal_dimension) + type = integer +[jindx2_o3] + standard_name = upper_ozone_interpolation_index + long_name = interpolation high index for ozone + units = index + dimensions = (horizontal_dimension) + type = integer +[ddy_o3] + standard_name = ozone_interpolation_weight + long_name = interpolation high index for ozone + units = none + dimensions = (horizontal_dimension) + type = real + kind = kind_phys +[jindx1_h] + standard_name = lower_water_vapor_interpolation_index + long_name = interpolation low index for stratospheric water vapor + units = index + dimensions = (horizontal_dimension) + type = integer +[jindx2_h] + standard_name = upper_water_vapor_interpolation_index + long_name = interpolation high index for stratospheric water vapor + units = index + dimensions = (horizontal_dimension) + type = integer +[ddy_h] + standard_name = water_vapor_interpolation_weight + long_name = interpolation high index for stratospheric water vapor + units = none + dimensions = (horizontal_dimension) + type = real + kind = kind_phys +[jindx1_aer] + standard_name = lower_aerosol_y_interpolation_index + long_name = interpolation low index for prescribed aerosols in the y direction + units = index + dimensions = (horizontal_dimension) + type = integer +[jindx2_aer] + standard_name = upper_aerosol_y_interpolation_index + long_name = interpolation high index for prescribed aerosols in the y direction + units = index + dimensions = (horizontal_dimension) + type = integer +[ddy_aer] + standard_name = aerosol_y_interpolation_weight + long_name = interpolation high index for prescribed aerosols in the y direction + units = none + dimensions = (horizontal_dimension) + type = real + kind = kind_phys +[iindx1_aer] + standard_name = lower_aerosol_x_interpolation_index + long_name = interpolation low index for prescribed aerosols in the x direction + units = index + dimensions = (horizontal_dimension) + type = integer +[iindx2_aer] + standard_name = upper_aerosol_x_interpolation_index + long_name = interpolation high index for prescribed aerosols in the x direction + units = index + dimensions = (horizontal_dimension) + type = integer +[ddx_aer] + standard_name = aerosol_x_interpolation_weight + long_name = interpolation high index for prescribed aerosols in the x direction + units = none + dimensions = (horizontal_dimension) + type = real + kind = kind_phys +[jindx1_ci] + standard_name = lower_cloud_nuclei_y_interpolation_index + long_name = interpolation low index for ice and cloud condensation nuclei in the y direction + units = index + dimensions = (horizontal_dimension) + type = integer +[jindx2_ci] + standard_name = upper_cloud_nuclei_y_interpolation_index + long_name = interpolation high index for ice and cloud condensation nuclei in the y direction + units = index + dimensions = (horizontal_dimension) + type = integer +[ddy_ci] + standard_name = cloud_nuclei_y_interpolation_weight + long_name = interpolation high index for ice and cloud condensation nuclei in the y direction + units = none + dimensions = (horizontal_dimension) + type = real + kind = kind_phys +[iindx1_ci] + standard_name = lower_cloud_nuclei_x_interpolation_index + long_name = interpolation low index for ice and cloud condensation nuclei in the x direction + units = index + dimensions = (horizontal_dimension) + type = integer +[iindx2_ci] + standard_name = upper_cloud_nuclei_x_interpolation_index + long_name = interpolation high index for ice and cloud condensation nuclei in the x direction + units = index + dimensions = (horizontal_dimension) + type = integer +[ddx_ci] + standard_name = cloud_nuclei_x_interpolation_weight + long_name = interpolation high index for ice and cloud condensation nuclei in the x direction + units = none + dimensions = (horizontal_dimension) + type = real + kind = kind_phys ######################################################################## [ccpp-arg-table] @@ -4536,16 +4778,16 @@ dimensions = (horizontal_dimension,number_of_cloud_types_CS) type = real kind = kind_phys -[phy_f2d(:,1)] - standard_name = surface_air_pressure_two_time_steps_back - long_name = surface air pressure two time steps back +[phy_f2d(:,index_for_surface_air_pressure_two_timesteps_back)] + standard_name = surface_air_pressure_two_timesteps_back + long_name = surface air pressure two timesteps back units = Pa dimensions = (horizontal_dimension) type = real kind = kind_phys -[phy_f2d(:,2)] - standard_name = surface_air_pressure_at_previous_time_step - long_name = surface air pressure at previous time step +[phy_f2d(:,index_for_surface_air_pressure_at_previous_timestep)] + standard_name = surface_air_pressure_at_previous_timestep + long_name = surface air pressure at previous timestep units = Pa dimensions = (horizontal_dimension) type = real @@ -4557,30 +4799,30 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys -[phy_f3d(:,:,1)] - standard_name = air_temperature_two_time_steps_back - long_name = air temperature two time steps back +[phy_f3d(:,:,index_for_air_temperature_two_timesteps_back)] + standard_name = air_temperature_two_timesteps_back + long_name = air temperature two timesteps back units = K dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys -[phy_f3d(:,:,2)] - standard_name = water_vapor_specific_humidity_two_time_steps_back - long_name = water vapor specific humidity two time steps back +[phy_f3d(:,:,index_for_specific_humidity_two_timesteps_back)] + standard_name = water_vapor_specific_humidity_two_timesteps_back + long_name = water vapor specific humidity two timesteps back units = kg kg-1 dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys -[phy_f3d(:,:,3)] - standard_name = air_temperature_at_previous_time_step - long_name = air temperature at previous time step +[phy_f3d(:,:,index_for_air_temperature_at_previous_timestep)] + standard_name = air_temperature_at_previous_timestep + long_name = air temperature at previous timestep units = K dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys -[phy_f3d(:,:,4)] - standard_name = water_vapor_specific_humidity_at_previous_time_step - long_name = water vapor specific humidity at previous time step +[phy_f3d(:,:,index_for_specific_humidity_at_previous_timestep)] + standard_name = water_vapor_specific_humidity_at_previous_timestep + long_name = water vapor specific humidity at previous timestep units = kg kg-1 dimensions = (horizontal_dimension,vertical_dimension) type = real @@ -4968,6 +5210,13 @@ [ccpp-arg-table] name = GFS_diag_type type = ddt +[fluxr] + standard_name = cumulative_radiation_diagnostic + long_name = time-accumulated 2D radiation-related diagnostic fields + units = various + dimensions = (horizontal_dimension,number_of_radiation_diagnostic_variables) + type = real + kind = kind_phys [topfsw] standard_name = sw_fluxes_top_atmosphere long_name = sw radiation fluxes at toa @@ -9466,6 +9715,20 @@ dimensions = () type = real kind = kind_phys +[con_rocp] + standard_name = ratio_of_gas_constant_dry_air_to_specific_heat_of_dry_air_at_constant_pressure + long_name = (rd/cp) + units = none + dimensions = () + type = real + kind = kind_phys +[con_rog] + standard_name = ratio_of_gas_constant_dry_air_to_gravitational_acceleration + long_name = (rd/g) + units = J s2 K-1 kg-1 m-1 + dimensions = () + type = real + kind = kind_phys [con_fvirt] standard_name = ratio_of_vapor_to_dry_air_gas_constants_minus_one long_name = (rv/rd) - 1 (rv = ideal gas constant for water vapor) From 65800dcb9467200dd0d277225f792ffef907f51b Mon Sep 17 00:00:00 2001 From: Grant Firl Date: Thu, 3 Sep 2020 15:44:29 -0600 Subject: [PATCH 03/11] add active attribute to slices of du3dt, dv3dt, dt3dt, and dq3dt that did not have them --- gfsphysics/GFS_layer/GFS_typedefs.meta | 35 ++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/gfsphysics/GFS_layer/GFS_typedefs.meta b/gfsphysics/GFS_layer/GFS_typedefs.meta index cb6e5e9d3..c75ab7221 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.meta +++ b/gfsphysics/GFS_layer/GFS_typedefs.meta @@ -6147,6 +6147,7 @@ dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys + active = (flag_diagnostics_3D) [du3dt(:,:,2)] standard_name = cumulative_change_in_x_wind_due_to_orographic_gravity_wave_drag long_name = cumulative change in x wind due to orographic gravity wave drag @@ -6154,6 +6155,7 @@ dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys + active = (flag_diagnostics_3D) [du3dt(:,:,3)] standard_name = cumulative_change_in_x_wind_due_to_deep_convection long_name = cumulative change in x wind due to deep convection @@ -6161,6 +6163,7 @@ dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys + active = (flag_diagnostics_3D) [du3dt(:,:,4)] standard_name = cumulative_change_in_x_wind_due_to_convective_gravity_wave_drag long_name = cumulative change in x wind due to convective gravity wave drag @@ -6168,6 +6171,7 @@ dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys + active = (flag_diagnostics_3D) [du3dt(:,:,5)] standard_name = cumulative_change_in_x_wind_due_to_rayleigh_damping long_name = cumulative change in x wind due to Rayleigh damping @@ -6175,6 +6179,7 @@ dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys + active = (flag_diagnostics_3D) [du3dt(:,:,6)] standard_name = cumulative_change_in_x_wind_due_to_shallow_convection long_name = cumulative change in x wind due to shallow convection @@ -6182,6 +6187,7 @@ dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys + active = (flag_diagnostics_3D) [du3dt(:,:,7)] standard_name = cumulative_change_in_x_wind_due_to_physics long_name = cumulative change in x wind due to physics @@ -6189,6 +6195,7 @@ dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys + active = (flag_diagnostics_3D) [du3dt(:,:,8)] standard_name = cumulative_change_in_x_wind_due_to_non_physics_processes long_name = cumulative change in x wind due to non-physics processes @@ -6204,6 +6211,7 @@ dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys + active = (flag_diagnostics_3D) [dv3dt(:,:,2)] standard_name = cumulative_change_in_y_wind_due_to_orographic_gravity_wave_drag long_name = cumulative change in y wind due to orographic gravity wave drag @@ -6211,6 +6219,7 @@ dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys + active = (flag_diagnostics_3D) [dv3dt(:,:,3)] standard_name = cumulative_change_in_y_wind_due_to_deep_convection long_name = cumulative change in y wind due to deep convection @@ -6218,6 +6227,7 @@ dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys + active = (flag_diagnostics_3D) [dv3dt(:,:,4)] standard_name = cumulative_change_in_y_wind_due_to_convective_gravity_wave_drag long_name = cumulative change in y wind due to convective gravity wave drag @@ -6232,6 +6242,7 @@ dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys + active = (flag_diagnostics_3D) [dv3dt(:,:,6)] standard_name = cumulative_change_in_y_wind_due_to_shallow_convection long_name = cumulative change in y wind due to shallow convection @@ -6239,6 +6250,7 @@ dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys + active = (flag_diagnostics_3D) [dv3dt(:,:,7)] standard_name = cumulative_change_in_y_wind_due_to_physics long_name = cumulative change in y wind due to physics @@ -6246,6 +6258,7 @@ dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys + active = (flag_diagnostics_3D) [dv3dt(:,:,8)] standard_name = cumulative_change_in_y_wind_due_to_non_physics_processes long_name = cumulative change in y wind due to non-physics processes @@ -6261,6 +6274,7 @@ dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys + active = (flag_diagnostics_3D) [dt3dt(:,:,2)] standard_name = cumulative_change_in_temperature_due_to_shortwave_radiation long_name = cumulative change in temperature due to shortwave radiation @@ -6268,6 +6282,7 @@ dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys + active = (flag_diagnostics_3D) [dt3dt(:,:,3)] standard_name = cumulative_change_in_temperature_due_to_PBL long_name = cumulative change in temperature due to PBL @@ -6275,6 +6290,7 @@ dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys + active = (flag_diagnostics_3D) [dt3dt(:,:,4)] standard_name = cumulative_change_in_temperature_due_to_deep_convection long_name = cumulative change in temperature due to deep convection @@ -6282,6 +6298,7 @@ dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys + active = (flag_diagnostics_3D) [dt3dt(:,:,5)] standard_name = cumulative_change_in_temperature_due_to_shallow_convection long_name = cumulative change in temperature due to shallow convection @@ -6289,6 +6306,7 @@ dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys + active = (flag_diagnostics_3D) [dt3dt(:,:,6)] standard_name = cumulative_change_in_temperature_due_to_microphysics long_name = cumulative change in temperature due to microphysics @@ -6296,6 +6314,7 @@ dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys + active = (flag_diagnostics_3D) [dt3dt(:,:,7)] standard_name = cumulative_change_in_temperature_due_to_orographic_gravity_wave_drag long_name = cumulative change in temperature due to orographic gravity wave drag @@ -6303,6 +6322,7 @@ dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys + active = (flag_diagnostics_3D) [dt3dt(:,:,8)] standard_name = cumulative_change_in_temperature_due_to_rayleigh_damping long_name = cumulative change in temperature due to Rayleigh damping @@ -6310,6 +6330,7 @@ dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys + active = (flag_diagnostics_3D) [dt3dt(:,:,9)] standard_name = cumulative_change_in_temperature_due_to_convective_gravity_wave_drag long_name = cumulative change in temperature due to convective gravity wave drag @@ -6317,6 +6338,7 @@ dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys + active = (flag_diagnostics_3D) [dt3dt(:,:,10)] standard_name = cumulative_change_in_temperature_due_to_physics long_name = cumulative change in temperature due to physics @@ -6324,6 +6346,7 @@ dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys + active = (flag_diagnostics_3D) [dt3dt(:,:,11)] standard_name = cumulative_change_in_temperature_due_to_non_physics_processes long_name = cumulative change in temperature due to non-physics processed @@ -6339,6 +6362,7 @@ dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys + active = (flag_diagnostics_3D .and. flag_tracer_diagnostics_3D) [dq3dt(:,:,2)] standard_name = cumulative_change_in_water_vapor_specific_humidity_due_to_deep_convection long_name = cumulative change in water vapor specific humidity due to deep convection @@ -6346,6 +6370,7 @@ dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys + active = (flag_diagnostics_3D .and. flag_tracer_diagnostics_3D) [dq3dt(:,:,3)] standard_name = cumulative_change_in_water_vapor_specific_humidity_due_to_shallow_convection long_name = cumulative change in water vapor specific humidity due to shallow convection @@ -6353,6 +6378,7 @@ dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys + active = (flag_diagnostics_3D .and. flag_tracer_diagnostics_3D) [dq3dt(:,:,4)] standard_name = cumulative_change_in_water_vapor_specific_humidity_due_to_microphysics long_name = cumulative change in water vapor specific humidity due to microphysics @@ -6360,6 +6386,7 @@ dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys + active = (flag_diagnostics_3D .and. flag_tracer_diagnostics_3D) [dq3dt(:,:,5)] standard_name = cumulative_change_in_ozone_mixing_ratio_due_to_PBL long_name = cumulative change in ozone mixing ratio due to PBL @@ -6367,6 +6394,7 @@ dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys + active = (flag_diagnostics_3D .and. flag_tracer_diagnostics_3D) [dq3dt(:,:,6)] standard_name = cumulative_change_in_ozone_concentration_due_to_production_and_loss_rate long_name = cumulative change in ozone concentration due to production and loss rate @@ -6374,6 +6402,7 @@ dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys + active = (flag_diagnostics_3D .and. flag_tracer_diagnostics_3D) [dq3dt(:,:,7)] standard_name = cumulative_change_in_ozone_concentration_due_to_ozone_mixing_ratio long_name = cumulative change in ozone concentration due to ozone mixing ratio @@ -6381,6 +6410,7 @@ dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys + active = (flag_diagnostics_3D .and. flag_tracer_diagnostics_3D) [dq3dt(:,:,8)] standard_name = cumulative_change_in_ozone_concentration_due_to_temperature long_name = cumulative change in ozone concentration due to temperature @@ -6388,6 +6418,7 @@ dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys + active = (flag_diagnostics_3D .and. flag_tracer_diagnostics_3D) [dq3dt(:,:,9)] standard_name = cumulative_change_in_ozone_concentration_due_to_overhead_ozone_column long_name = cumulative change in ozone concentration due to overhead ozone column @@ -6395,6 +6426,7 @@ dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys + active = (flag_diagnostics_3D .and. flag_tracer_diagnostics_3D) [dq3dt(:,:,10)] standard_name = cumulative_change_in_water_vapor_specific_humidity_due_to_physics long_name = cumulative change in water vapor specific humidity due to physics @@ -6402,6 +6434,7 @@ dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys + active = (flag_diagnostics_3D .and. flag_tracer_diagnostics_3D) [dq3dt(:,:,11)] standard_name = cumulative_change_in_ozone_concentration_due_to_physics long_name = cumulative change in ozone concentration due to physics @@ -6409,6 +6442,7 @@ dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys + active = (flag_diagnostics_3D .and. flag_tracer_diagnostics_3D) [dq3dt(:,:,12)] standard_name = cumulative_change_in_water_vapor_specific_humidity_due_to_non_physics_processes long_name = cumulative change in water vapor specific humidity due to non-physics processes @@ -6416,6 +6450,7 @@ dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys + active = (flag_diagnostics_3D .and. flag_tracer_diagnostics_3D) [dq3dt(:,:,13)] standard_name = cumulative_change_in_ozone_concentration_due_to_non_physics_processes long_name = cumulative change in ozone_concentration due to non-physics processes From 50a1edcfb0376cf34f4c722a44b4d474217196e8 Mon Sep 17 00:00:00 2001 From: "Man.Zhang" Date: Thu, 10 Sep 2020 08:56:42 -0600 Subject: [PATCH 04/11] initialize correct_unit branch --- gfsphysics/GFS_layer/GFS_typedefs.F90 | 8 +++++ gfsphysics/GFS_layer/GFS_typedefs.meta | 50 +++++++++++++------------- 2 files changed, 33 insertions(+), 25 deletions(-) diff --git a/gfsphysics/GFS_layer/GFS_typedefs.F90 b/gfsphysics/GFS_layer/GFS_typedefs.F90 index 429170059..aa00381e0 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.F90 +++ b/gfsphysics/GFS_layer/GFS_typedefs.F90 @@ -1986,6 +1986,8 @@ module GFS_typedefs ! RRTMGP integer :: ipsdlw0 !< integer :: ipsdsw0 !< + real (kind=kind_phys), pointer :: pcldtaulw(:,:) => null() !< + real (kind=kind_phys), pointer :: pcldtausw(:,:) => null() !< real (kind=kind_phys), pointer :: sktp1r(:) => null() !< real (kind=kind_phys), pointer :: p_lay(:,:) => null() !< real (kind=kind_phys), pointer :: p_lev(:,:) => null() !< @@ -6400,6 +6402,8 @@ subroutine interstitial_create (Interstitial, IM, Model) allocate (Interstitial%sktp1r (IM)) allocate (Interstitial%fluxlwUP_allsky (IM, Model%levs+1)) if (Model%do_RRTMGP) then + allocate (Interstitial%pcldtaulw (IM, Model%levs)) + allocate (Interstitial%pcldtausw (IM, Model%levs)) allocate (Interstitial%tracer (IM, Model%levs,Model%ntrac)) allocate (Interstitial%tv_lay (IM, Model%levs)) allocate (Interstitial%relhum (IM, Model%levs)) @@ -6773,6 +6777,8 @@ subroutine interstitial_rad_reset (Interstitial, Model) end if if (Model%do_RRTMGP) then + Interstitial%pcldtaulw = clear_val + Interstitial%pcldtausw = clear_val Interstitial%tracer = clear_val Interstitial%tv_lay = clear_val Interstitial%relhum = clear_val @@ -7450,6 +7456,8 @@ subroutine interstitial_print(Interstitial, Model, mpirank, omprank, blkno) end if ! RRTMGP if (Model%do_RRTMGP) then + write (0,*) 'sum(Interstitial%pcldtaulw ) = ', sum(Interstitial%pcldtaulw ) + write (0,*) 'sum(Interstitial%pcldtausw ) = ', sum(Interstitial%pcldtausw ) write (0,*) 'sum(Interstitial%aerosolslw ) = ', sum(Interstitial%aerosolslw ) write (0,*) 'sum(Interstitial%aerosolssw ) = ', sum(Interstitial%aerosolssw ) write (0,*) 'sum(Interstitial%cld_frac ) = ', sum(Interstitial%cld_frac ) diff --git a/gfsphysics/GFS_layer/GFS_typedefs.meta b/gfsphysics/GFS_layer/GFS_typedefs.meta index 84ba83e86..0cee417b5 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.meta +++ b/gfsphysics/GFS_layer/GFS_typedefs.meta @@ -2469,14 +2469,14 @@ dimensions = () type = integer [iovr_sw] - standard_name = flag_for_max_random_overlap_clouds_for_shortwave_radiation - long_name = sw: max-random overlap clouds + standard_name = flag_for_cloud_overlapping_method_for_shortwave_radiation + long_name = control flag for cloud overlapping method for SW units = flag dimensions = () type = integer [iovr_lw] - standard_name = flag_for_max_random_overlap_clouds_for_longwave_radiation - long_name = lw: max-random overlap clouds + standard_name = flag_for_cloud_overlapping_method_for_longwave_radiation + long_name = control flag for cloud overlapping method for LW units = flag dimensions = () type = integer @@ -2487,14 +2487,14 @@ dimensions = () type = integer [isubc_sw] - standard_name = flag_for_sw_clouds_without_sub_grid_approximation - long_name = flag for sw clouds without sub-grid approximation + standard_name = flag_for_subcolumn_cloud_approximation_for_shortwave_radiation + long_name = flag for subcolumn cloud approximation for shortwave radiation units = flag dimensions = () type = integer [isubc_lw] - standard_name = flag_for_lw_clouds_without_sub_grid_approximation - long_name = flag for lw clouds without sub-grid approximation + standard_name = flag_for_subcolumn_cloud_approximation_for_longwave_radiation + long_name = flag for subcolumn cloud approximation for longwave radiation units = flag dimensions = () type = integer @@ -4572,14 +4572,14 @@ units = none dimensions = (horizontal_dimension) type = integer - active = (flag_for_lw_clouds_without_sub_grid_approximation == 2 .or. flag_for_sw_clouds_without_sub_grid_approximation == 2) + active = (flag_for_subcolumn_cloud_approximation_for_longwave_radiation == 2 .or. flag_for_subcolumn_cloud_approximation_for_shortwave_radiation == 2) [icsdlw] standard_name = seed_random_numbers_lw long_name = random seeds for sub-column cloud generators lw units = none dimensions = (horizontal_dimension) type = integer - active = (flag_for_lw_clouds_without_sub_grid_approximation == 2 .or. flag_for_sw_clouds_without_sub_grid_approximation == 2) + active = (flag_for_subcolumn_cloud_approximation_for_longwave_radiation == 2 .or. flag_for_subcolumn_cloud_approximation_for_shortwave_radiation == 2) [ozpl] standard_name = ozone_forcing long_name = ozone forcing data @@ -6227,21 +6227,21 @@ [upd_mf] standard_name = cumulative_atmosphere_updraft_convective_mass_flux long_name = cumulative updraft mass flux - units = Pa + units = kg m-1 s-2 dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys [dwn_mf] standard_name = cumulative_atmosphere_downdraft_convective_mass_flux long_name = cumulative downdraft mass flux - units = Pa + units = kg m-1 s-2 dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys [det_mf] standard_name = cumulative_atmosphere_detrainment_convective_mass_flux long_name = cumulative detrainment mass flux - units = Pa + units = kg m-1 s-2 dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys @@ -6256,7 +6256,7 @@ standard_name = instantaneous_3d_cloud_fraction long_name = instantaneous 3D cloud fraction for all MPs units = frac - dimensions = (horizontal_dimension,vertical_dimension) + dimensions = (horizontal_dimension,adjusted_vertical_layer_dimension_for_radiation) type = real kind = kind_phys [ndust] @@ -6889,63 +6889,63 @@ standard_name = total_cloud_fraction long_name = layer total cloud fraction units = frac - dimensions = (horizontal_dimension,vertical_dimension) + dimensions = (horizontal_dimension,adjusted_vertical_layer_dimension_for_radiation) type = real kind = kind_phys [clouds(:,:,2)] standard_name = cloud_liquid_water_path long_name = layer cloud liquid water path units = g m-2 - dimensions = (horizontal_dimension,vertical_dimension) + dimensions = (horizontal_dimension,adjusted_vertical_layer_dimension_for_radiation) type = real kind = kind_phys [clouds(:,:,3)] standard_name = mean_effective_radius_for_liquid_cloud long_name = mean effective radius for liquid cloud units = micron - dimensions = (horizontal_dimension,vertical_dimension) + dimensions = (horizontal_dimension,adjusted_vertical_layer_dimension_for_radiation) type = real kind = kind_phys [clouds(:,:,4)] standard_name = cloud_ice_water_path long_name = layer cloud ice water path units = g m-2 - dimensions = (horizontal_dimension,vertical_dimension) + dimensions = (horizontal_dimension,adjusted_vertical_layer_dimension_for_radiation) type = real kind = kind_phys [clouds(:,:,5)] standard_name = mean_effective_radius_for_ice_cloud long_name = mean effective radius for ice cloud units = micron - dimensions = (horizontal_dimension,vertical_dimension) + dimensions = (horizontal_dimension,adjusted_vertical_layer_dimension_for_radiation) type = real kind = kind_phys [clouds(:,:,6)] standard_name = cloud_rain_water_path long_name = cloud rain water path units = g m-2 - dimensions = (horizontal_dimension,vertical_dimension) + dimensions = (horizontal_dimension,adjusted_vertical_layer_dimension_for_radiation) type = real kind = kind_phys [clouds(:,:,7)] standard_name = mean_effective_radius_for_rain_drop long_name = mean effective radius for rain drop units = micron - dimensions = (horizontal_dimension,vertical_dimension) + dimensions = (horizontal_dimension,adjusted_vertical_layer_dimension_for_radiation) type = real kind = kind_phys [clouds(:,:,8)] standard_name = cloud_snow_water_path long_name = cloud snow water path units = g m-2 - dimensions = (horizontal_dimension,vertical_dimension) + dimensions = (horizontal_dimension,adjusted_vertical_layer_dimension_for_radiation) type = real kind = kind_phys [clouds(:,:,9)] standard_name = mean_effective_radius_for_snow_flake long_name = mean effective radius for snow flake units = micron - dimensions = (horizontal_dimension,vertical_dimension) + dimensions = (horizontal_dimension,adjusted_vertical_layer_dimension_for_radiation) type = real kind = kind_phys [clw] @@ -9218,7 +9218,7 @@ units = none dimensions = () type = integer -[cldtausw] +[pcldtausw] standard_name = RRTMGP_cloud_optical_depth_layers_at_0_55mu_band long_name = approx .55mu band layer cloud optical depth units = none @@ -9226,7 +9226,7 @@ type = real kind = kind_phys optional = F -[cldtaulw] +[pcldtaulw] standard_name = RRTMGP_cloud_optical_depth_layers_at_10mu_band long_name = approx 10mu band layer cloud optical depth units = none From f18c9c7687c7995f1a5914990f8623822609911e Mon Sep 17 00:00:00 2001 From: "Man.Zhang" Date: Mon, 14 Sep 2020 09:30:23 -0600 Subject: [PATCH 05/11] fix blank unit and redundant variables --- gfsphysics/GFS_layer/GFS_typedefs.F90 | 27 --------- gfsphysics/GFS_layer/GFS_typedefs.meta | 82 ++++---------------------- 2 files changed, 13 insertions(+), 96 deletions(-) diff --git a/gfsphysics/GFS_layer/GFS_typedefs.F90 b/gfsphysics/GFS_layer/GFS_typedefs.F90 index aa00381e0..8722f27be 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.F90 +++ b/gfsphysics/GFS_layer/GFS_typedefs.F90 @@ -2056,14 +2056,6 @@ module GFS_typedefs type(ty_source_func_lw) :: sources !< RRTMGP DDT #endif - !-- HWRF physics: dry mixing ratios - real (kind=kind_phys), pointer :: qv_r(:,:) => null() !< - real (kind=kind_phys), pointer :: qc_r(:,:) => null() !< - real (kind=kind_phys), pointer :: qi_r(:,:) => null() !< - real (kind=kind_phys), pointer :: qr_r(:,:) => null() !< - real (kind=kind_phys), pointer :: qs_r(:,:) => null() !< - real (kind=kind_phys), pointer :: qg_r(:,:) => null() !< - !-- GSD drag suite real (kind=kind_phys), pointer :: varss(:) => null() !< real (kind=kind_phys), pointer :: ocss(:) => null() !< @@ -2074,7 +2066,6 @@ module GFS_typedefs real (kind=kind_phys), pointer :: f_rain (:,:) => null() !< real (kind=kind_phys), pointer :: f_ice (:,:) => null() !< real (kind=kind_phys), pointer :: f_rimef (:,:) => null() !< - real (kind=kind_phys), pointer :: cwm (:,:) => null() !< contains @@ -6497,19 +6488,10 @@ subroutine interstitial_create (Interstitial, IM, Model) allocate (Interstitial%cnv_nice (IM,Model%levs)) end if if (Model%imp_physics == Model%imp_physics_fer_hires) then - !--- if HWRF physics? - allocate (Interstitial%qv_r (IM,Model%levs)) - allocate (Interstitial%qc_r (IM,Model%levs)) - allocate (Interstitial%qi_r (IM,Model%levs)) - allocate (Interstitial%qr_r (IM,Model%levs)) - allocate (Interstitial%qs_r (IM,Model%levs)) - allocate (Interstitial%qg_r (IM,Model%levs)) - !--- Ferrier-Aligo MP scheme allocate (Interstitial%f_ice (IM,Model%levs)) allocate (Interstitial%f_rain (IM,Model%levs)) allocate (Interstitial%f_rimef (IM,Model%levs)) - allocate (Interstitial%cwm (IM,Model%levs)) end if if (Model%do_shoc) then if (.not. associated(Interstitial%qrn)) allocate (Interstitial%qrn (IM,Model%levs)) @@ -6762,17 +6744,10 @@ subroutine interstitial_rad_reset (Interstitial, Model) ! F-A scheme if (Model%imp_physics == Model%imp_physics_fer_hires) then - Interstitial%qv_r = clear_val - Interstitial%qc_r = clear_val - Interstitial%qi_r = clear_val - Interstitial%qr_r = clear_val - Interstitial%qs_r = clear_val - Interstitial%qg_r = clear_val if(Model%spec_adv) then Interstitial%f_ice = clear_val Interstitial%f_rain = clear_val Interstitial%f_rimef = clear_val - Interstitial%cwm = clear_val end if end if @@ -7080,7 +7055,6 @@ subroutine interstitial_phys_reset (Interstitial, Model) Interstitial%f_ice = clear_val Interstitial%f_rain = clear_val Interstitial%f_rimef = clear_val - Interstitial%cwm = clear_val end if if (Model%do_shoc) then Interstitial%qrn = clear_val @@ -7421,7 +7395,6 @@ subroutine interstitial_print(Interstitial, Model, mpirank, omprank, blkno) write (0,*) 'sum(Interstitial%f_ice ) = ', sum(Interstitial%f_ice ) write (0,*) 'sum(Interstitial%f_rain ) = ', sum(Interstitial%f_rain ) write (0,*) 'sum(Interstitial%f_rimef ) = ', sum(Interstitial%f_rimef ) - write (0,*) 'sum(Interstitial%cwm ) = ', sum(Interstitial%cwm ) else if (Model%imp_physics == Model%imp_physics_mg) then write (0,*) 'Interstitial_print: values specific to MG microphysics' write (0,*) 'sum(Interstitial%ncgl ) = ', sum(Interstitial%ncgl ) diff --git a/gfsphysics/GFS_layer/GFS_typedefs.meta b/gfsphysics/GFS_layer/GFS_typedefs.meta index 0cee417b5..5c1be66a1 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.meta +++ b/gfsphysics/GFS_layer/GFS_typedefs.meta @@ -2892,7 +2892,7 @@ [effr_in] standard_name = flag_for_cloud_effective_radii long_name = flag for cloud effective radii calculations in GFDL microphysics - units = + units = flag dimensions = () type = logical [microp_uniform] @@ -4111,43 +4111,43 @@ [ncnvw] standard_name = index_for_convective_cloud_water_mixing_ratio_in_phy_f3d long_name = the index of convective cloud water mixing ratio in phy f3d - units = + units = index dimensions = () type = integer [ncnvc] standard_name = index_for_convective_cloud_cover_in_phy_f3d long_name = the index of convective cloud cover in phy f3d - units = + units = index dimensions = () type = integer [nleffr] standard_name = index_for_cloud_liquid_water_effective_radius long_name = the index of cloud liquid water effective radius in phy_f3d - units = + units = index dimensions = () type = integer [nieffr] standard_name = index_for_ice_effective_radius long_name = the index of ice effective radius in phy_f3d - units = + units = index dimensions = () type = integer [nreffr] standard_name = index_for_rain_effective_radius long_name = the index of rain effective radius in phy_f3d - units = + units = index dimensions = () type = integer [nseffr] standard_name = index_for_snow_effective_radius long_name = the index of snow effective radius in phy_f3d - units = + units = index dimensions = () type = integer [ngeffr] standard_name = index_for_graupel_effective_radius long_name = the index of graupel effective radius in phy_f3d - units = + units = index dimensions = () type = integer [debug] @@ -4159,7 +4159,7 @@ [ipt] standard_name = index_for_diagnostic_printout long_name = horizontal index for point used for diagnostic printout - units = + units = index dimensions = () type = integer [lprnt] @@ -6579,54 +6579,6 @@ [ccpp-arg-table] name = GFS_interstitial_type type = ddt -[qv_r] - standard_name = humidity_mixing_ratio - long_name = the ratio of the mass of water vapor to the mass of dry air - units = kg kg-1 - dimensions = (horizontal_dimension,vertical_dimension) - type = real - kind = kind_phys - active = (flag_for_microphysics_scheme == flag_for_fer_hires_microphysics_scheme) -[qc_r] - standard_name = cloud_liquid_water_mixing_ratio - long_name = the ratio of the mass of liquid water to the mass of dry air - units = kg kg-1 - dimensions = (horizontal_dimension,vertical_dimension) - type = real - kind = kind_phys - active = (flag_for_microphysics_scheme == flag_for_fer_hires_microphysics_scheme) -[qr_r] - standard_name = cloud_rain_water_mixing_ratio - long_name = the ratio of the mass rain water to the mass of dry air - units = kg kg-1 - dimensions = (horizontal_dimension,vertical_dimension) - type = real - kind = kind_phys - active = (flag_for_microphysics_scheme == flag_for_fer_hires_microphysics_scheme) -[qi_r] - standard_name = cloud_ice_mixing_ratio - long_name = the ratio of the mass of ice to the mass of dry air - units = kg kg-1 - dimensions = (horizontal_dimension,vertical_dimension) - type = real - kind = kind_phys - active = (flag_for_microphysics_scheme == flag_for_fer_hires_microphysics_scheme) -[qs_r] - standard_name = cloud_snow_mixing_ratio - long_name = the ratio of the mass of snow to mass of dry air - units = kg kg-1 - dimensions = (horizontal_dimension,vertical_dimension) - type = real - kind = kind_phys - active = (flag_for_microphysics_scheme == flag_for_fer_hires_microphysics_scheme) -[qg_r] - standard_name = mass_weighted_rime_factor_mixing_ratio - long_name = the ratio of the mass of rime factor to mass of dry air - units = kg kg-1 - dimensions = (horizontal_dimension,vertical_dimension) - type = real - kind = kind_phys - active = (flag_for_microphysics_scheme == flag_for_fer_hires_microphysics_scheme) [f_ice] standard_name = fraction_of_ice_water_cloud long_name = fraction of ice water cloud @@ -6651,14 +6603,6 @@ type = real kind = kind_phys active = (flag_for_microphysics_scheme == flag_for_fer_hires_microphysics_scheme) -[cwm] - standard_name = total_cloud_condensate_mixing_ratio_updated_by_physics - long_name = total cloud condensate mixing ratio (except water vapor) updated by physics - units = kg kg-1 - dimensions = (horizontal_dimension,vertical_dimension) - type = real - kind = kind_phys - active = (flag_for_microphysics_scheme == flag_for_fer_hires_microphysics_scheme) [adjsfculw_ocean] standard_name = surface_upwelling_longwave_flux_over_ocean_interstitial long_name = surface upwelling longwave flux at current time over ocean (temporary use as interstitial) @@ -6902,7 +6846,7 @@ [clouds(:,:,3)] standard_name = mean_effective_radius_for_liquid_cloud long_name = mean effective radius for liquid cloud - units = micron + units = um dimensions = (horizontal_dimension,adjusted_vertical_layer_dimension_for_radiation) type = real kind = kind_phys @@ -6916,7 +6860,7 @@ [clouds(:,:,5)] standard_name = mean_effective_radius_for_ice_cloud long_name = mean effective radius for ice cloud - units = micron + units = um dimensions = (horizontal_dimension,adjusted_vertical_layer_dimension_for_radiation) type = real kind = kind_phys @@ -6930,7 +6874,7 @@ [clouds(:,:,7)] standard_name = mean_effective_radius_for_rain_drop long_name = mean effective radius for rain drop - units = micron + units = um dimensions = (horizontal_dimension,adjusted_vertical_layer_dimension_for_radiation) type = real kind = kind_phys @@ -6944,7 +6888,7 @@ [clouds(:,:,9)] standard_name = mean_effective_radius_for_snow_flake long_name = mean effective radius for snow flake - units = micron + units = um dimensions = (horizontal_dimension,adjusted_vertical_layer_dimension_for_radiation) type = real kind = kind_phys From 6fc540069044dc416aec287200438c036bd2abe7 Mon Sep 17 00:00:00 2001 From: "Man.Zhang" Date: Wed, 16 Sep 2020 09:35:40 -0600 Subject: [PATCH 06/11] unit fix --- gfsphysics/GFS_layer/GFS_typedefs.F90 | 32 ++++++++++++++------------ gfsphysics/GFS_layer/GFS_typedefs.meta | 20 ++++++++-------- 2 files changed, 27 insertions(+), 25 deletions(-) diff --git a/gfsphysics/GFS_layer/GFS_typedefs.F90 b/gfsphysics/GFS_layer/GFS_typedefs.F90 index 8722f27be..d68e66a0a 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.F90 +++ b/gfsphysics/GFS_layer/GFS_typedefs.F90 @@ -1055,6 +1055,7 @@ module GFS_typedefs !--- tracer handling character(len=32), pointer :: tracer_names(:) !< array of initialized tracers from dynamic core integer :: ntrac !< number of tracers + character(len=20), pointer :: fscav_aero(:) !< aerosol scavenging factors #ifdef CCPP integer :: ntracp1 !< number of tracers plus one integer :: nqrimef !< tracer index for mass weighted rime factor @@ -1080,7 +1081,7 @@ module GFS_typedefs integer :: ntchm !< number of chemical tracers integer :: ntchs !< tracer index for first chemical tracer logical, pointer :: ntdiag(:) => null() !< array to control diagnostics for chemical tracers - real(kind=kind_phys), pointer :: fscav(:) => null() !< array of aerosol scavenging coefficients + real(kind=kind_phys), pointer :: fscav_sas(:) => null() !< coefficients for aerosol scavenging in samfdeep/samfshal !--- derived totals for phy_f*d integer :: ntot2d !< total number of variables for phyf2d @@ -1773,7 +1774,7 @@ module GFS_typedefs real (kind=kind_phys), pointer :: fm10_ocean(:) => null() !< real (kind=kind_phys) :: frain !< real (kind=kind_phys), pointer :: frland(:) => null() !< - real (kind=kind_phys), pointer :: fscav(:) => null() !< + real (kind=kind_phys), pointer :: fscav_cs(:) => null() !< fraction of tracer scavenged in cs_conv real (kind=kind_phys), pointer :: fswtr(:) => null() !< real (kind=kind_phys), pointer :: gabsbdlw(:) => null() !< real (kind=kind_phys), pointer :: gabsbdlw_ice(:) => null() !< @@ -4093,20 +4094,20 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & endif ! -- setup aerosol scavenging factors - allocate(Model%fscav(Model%ntchm)) + allocate(Model%fscav_sas(Model%ntchm)) if (Model%ntchm > 0) then ! -- initialize to default - Model%fscav = 0.6_kind_phys + Model%fscav_sas = 0.6_kind_phys n = get_tracer_index(Model%tracer_names, 'seas1', Model%me, Model%master, Model%debug) - Model%ntchs + 1 - if (n > 0) Model%fscav(n) = 1.0_kind_phys + if (n > 0) Model%fscav_sas(n) = 1.0_kind_phys n = get_tracer_index(Model%tracer_names, 'seas2', Model%me, Model%master, Model%debug) - Model%ntchs + 1 - if (n > 0) Model%fscav(n) = 1.0_kind_phys + if (n > 0) Model%fscav_sas(n) = 1.0_kind_phys n = get_tracer_index(Model%tracer_names, 'seas3', Model%me, Model%master, Model%debug) - Model%ntchs + 1 - if (n > 0) Model%fscav(n) = 1.0_kind_phys + if (n > 0) Model%fscav_sas(n) = 1.0_kind_phys n = get_tracer_index(Model%tracer_names, 'seas4', Model%me, Model%master, Model%debug) - Model%ntchs + 1 - if (n > 0) Model%fscav(n) = 1.0_kind_phys + if (n > 0) Model%fscav_sas(n) = 1.0_kind_phys n = get_tracer_index(Model%tracer_names, 'seas5', Model%me, Model%master, Model%debug) - Model%ntchs + 1 - if (n > 0) Model%fscav(n) = 1.0_kind_phys + if (n > 0) Model%fscav_sas(n) = 1.0_kind_phys ! -- read factors from namelist do i = 1, size(fscav_aero) j = index(fscav_aero(i),":") @@ -4114,12 +4115,12 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & read(fscav_aero(i)(j+1:), *, iostat=ios) tem if (ios /= 0) cycle if (adjustl(fscav_aero(i)(:j-1)) == "*") then - Model%fscav = tem + Model%fscav_sas = tem exit else n = get_tracer_index(Model%tracer_names, adjustl(fscav_aero(i)(:j-1)), Model%me, Model%master, Model%debug) & - Model%ntchs + 1 - if (n > 0) Model%fscav(n) = tem + if (n > 0) Model%fscav_sas(n) = tem endif endif enddo @@ -5109,7 +5110,8 @@ subroutine control_print(Model) print *, ' ntia : ', Model%ntia print *, ' ntchm : ', Model%ntchm print *, ' ntchs : ', Model%ntchs - print *, ' fscav : ', Model%fscav + print *, ' fscav_aero : ', Model%fscav_aero + print *, ' fscav_sas : ', Model%fscav_sas print *, ' ' print *, 'derived totals for phy_f*d' print *, ' ntot2d : ', Model%ntot2d @@ -6254,7 +6256,7 @@ subroutine interstitial_create (Interstitial, IM, Model) allocate (Interstitial%fm10_land (IM)) allocate (Interstitial%fm10_ocean (IM)) allocate (Interstitial%frland (IM)) - allocate (Interstitial%fscav (Interstitial%nscav)) + allocate (Interstitial%fscav_cs (Interstitial%nscav)) allocate (Interstitial%fswtr (Interstitial%nscav)) allocate (Interstitial%gabsbdlw (IM)) allocate (Interstitial%gabsbdlw_ice (IM)) @@ -6891,7 +6893,7 @@ subroutine interstitial_phys_reset (Interstitial, Model) Interstitial%fm10_land = huge Interstitial%fm10_ocean = huge Interstitial%frland = clear_val - Interstitial%fscav = clear_val + Interstitial%fscav_cs = clear_val Interstitial%fswtr = clear_val Interstitial%gabsbdlw = clear_val Interstitial%gabsbdlw_ice = clear_val @@ -7217,7 +7219,7 @@ subroutine interstitial_print(Interstitial, Model, mpirank, omprank, blkno) write (0,*) 'sum(Interstitial%fm10_ocean ) = ', sum(Interstitial%fm10_ocean ) write (0,*) 'Interstitial%frain = ', Interstitial%frain write (0,*) 'sum(Interstitial%frland ) = ', sum(Interstitial%frland ) - write (0,*) 'sum(Interstitial%fscav ) = ', sum(Interstitial%fscav ) + write (0,*) 'sum(Interstitial%fscav_cs ) = ', sum(Interstitial%fscav_cs ) write (0,*) 'sum(Interstitial%fswtr ) = ', sum(Interstitial%fswtr ) write (0,*) 'sum(Interstitial%gabsbdlw ) = ', sum(Interstitial%gabsbdlw ) write (0,*) 'sum(Interstitial%gabsbdlw_ice ) = ', sum(Interstitial%gabsbdlw_ice ) diff --git a/gfsphysics/GFS_layer/GFS_typedefs.meta b/gfsphysics/GFS_layer/GFS_typedefs.meta index 5c1be66a1..1cbb8e4ce 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.meta +++ b/gfsphysics/GFS_layer/GFS_typedefs.meta @@ -3702,7 +3702,7 @@ [rho_h2o] standard_name = density_of_fresh_water long_name = density of fresh water - units = ??? + units = kg m-3 dimensions = () type = real kind = kind_phys @@ -4035,7 +4035,7 @@ units = flag dimensions = (number_of_chemical_tracers) type = logical -[fscav] +[fscav_sas] standard_name = coefficients_for_aerosol_scavenging long_name = array of aerosol scavenging coefficients units = none @@ -4602,23 +4602,23 @@ type = real kind = kind_phys [in_nm] - standard_name = in_number_concentration - long_name = IN number concentration - units = kg-1? + standard_name = ice_nucleation_number + long_name = ice nucleation number in MG MP + units = kg-1 dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys [ccn_nm] - standard_name = ccn_number_concentration - long_name = CCN number concentration - units = kg-1? + standard_name = tendency_of_ccn_activated_number + long_name = tendency of ccn activated number + units = kg-1 s-1 dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys [aer_nm] standard_name = aerosol_number_concentration_from_gocart_aerosol_climatology long_name = GOCART aerosol climatology number concentration - units = kg-1? + units = kg-1 dimensions = (horizontal_dimension,vertical_dimension,number_of_aerosol_tracers_MG) type = real kind = kind_phys @@ -7563,7 +7563,7 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys -[fscav] +[fscav_cs] standard_name = fraction_of_tracer_scavenged long_name = fraction of the tracer (aerosols) that is scavenged by convection units = km-1 From 730895f8cef3ffa89243edf5e9653d875e7d4b20 Mon Sep 17 00:00:00 2001 From: "Man.Zhang" Date: Wed, 30 Sep 2020 20:10:24 -0600 Subject: [PATCH 07/11] revert some changes per Doms request --- gfsphysics/GFS_layer/GFS_typedefs.F90 | 67 ++++++++++++-------- gfsphysics/GFS_layer/GFS_typedefs.meta | 84 +++++++++++++++++++++----- 2 files changed, 112 insertions(+), 39 deletions(-) diff --git a/gfsphysics/GFS_layer/GFS_typedefs.F90 b/gfsphysics/GFS_layer/GFS_typedefs.F90 index d68e66a0a..429170059 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.F90 +++ b/gfsphysics/GFS_layer/GFS_typedefs.F90 @@ -1055,7 +1055,6 @@ module GFS_typedefs !--- tracer handling character(len=32), pointer :: tracer_names(:) !< array of initialized tracers from dynamic core integer :: ntrac !< number of tracers - character(len=20), pointer :: fscav_aero(:) !< aerosol scavenging factors #ifdef CCPP integer :: ntracp1 !< number of tracers plus one integer :: nqrimef !< tracer index for mass weighted rime factor @@ -1081,7 +1080,7 @@ module GFS_typedefs integer :: ntchm !< number of chemical tracers integer :: ntchs !< tracer index for first chemical tracer logical, pointer :: ntdiag(:) => null() !< array to control diagnostics for chemical tracers - real(kind=kind_phys), pointer :: fscav_sas(:) => null() !< coefficients for aerosol scavenging in samfdeep/samfshal + real(kind=kind_phys), pointer :: fscav(:) => null() !< array of aerosol scavenging coefficients !--- derived totals for phy_f*d integer :: ntot2d !< total number of variables for phyf2d @@ -1774,7 +1773,7 @@ module GFS_typedefs real (kind=kind_phys), pointer :: fm10_ocean(:) => null() !< real (kind=kind_phys) :: frain !< real (kind=kind_phys), pointer :: frland(:) => null() !< - real (kind=kind_phys), pointer :: fscav_cs(:) => null() !< fraction of tracer scavenged in cs_conv + real (kind=kind_phys), pointer :: fscav(:) => null() !< real (kind=kind_phys), pointer :: fswtr(:) => null() !< real (kind=kind_phys), pointer :: gabsbdlw(:) => null() !< real (kind=kind_phys), pointer :: gabsbdlw_ice(:) => null() !< @@ -1987,8 +1986,6 @@ module GFS_typedefs ! RRTMGP integer :: ipsdlw0 !< integer :: ipsdsw0 !< - real (kind=kind_phys), pointer :: pcldtaulw(:,:) => null() !< - real (kind=kind_phys), pointer :: pcldtausw(:,:) => null() !< real (kind=kind_phys), pointer :: sktp1r(:) => null() !< real (kind=kind_phys), pointer :: p_lay(:,:) => null() !< real (kind=kind_phys), pointer :: p_lev(:,:) => null() !< @@ -2057,6 +2054,14 @@ module GFS_typedefs type(ty_source_func_lw) :: sources !< RRTMGP DDT #endif + !-- HWRF physics: dry mixing ratios + real (kind=kind_phys), pointer :: qv_r(:,:) => null() !< + real (kind=kind_phys), pointer :: qc_r(:,:) => null() !< + real (kind=kind_phys), pointer :: qi_r(:,:) => null() !< + real (kind=kind_phys), pointer :: qr_r(:,:) => null() !< + real (kind=kind_phys), pointer :: qs_r(:,:) => null() !< + real (kind=kind_phys), pointer :: qg_r(:,:) => null() !< + !-- GSD drag suite real (kind=kind_phys), pointer :: varss(:) => null() !< real (kind=kind_phys), pointer :: ocss(:) => null() !< @@ -2067,6 +2072,7 @@ module GFS_typedefs real (kind=kind_phys), pointer :: f_rain (:,:) => null() !< real (kind=kind_phys), pointer :: f_ice (:,:) => null() !< real (kind=kind_phys), pointer :: f_rimef (:,:) => null() !< + real (kind=kind_phys), pointer :: cwm (:,:) => null() !< contains @@ -4094,20 +4100,20 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & endif ! -- setup aerosol scavenging factors - allocate(Model%fscav_sas(Model%ntchm)) + allocate(Model%fscav(Model%ntchm)) if (Model%ntchm > 0) then ! -- initialize to default - Model%fscav_sas = 0.6_kind_phys + Model%fscav = 0.6_kind_phys n = get_tracer_index(Model%tracer_names, 'seas1', Model%me, Model%master, Model%debug) - Model%ntchs + 1 - if (n > 0) Model%fscav_sas(n) = 1.0_kind_phys + if (n > 0) Model%fscav(n) = 1.0_kind_phys n = get_tracer_index(Model%tracer_names, 'seas2', Model%me, Model%master, Model%debug) - Model%ntchs + 1 - if (n > 0) Model%fscav_sas(n) = 1.0_kind_phys + if (n > 0) Model%fscav(n) = 1.0_kind_phys n = get_tracer_index(Model%tracer_names, 'seas3', Model%me, Model%master, Model%debug) - Model%ntchs + 1 - if (n > 0) Model%fscav_sas(n) = 1.0_kind_phys + if (n > 0) Model%fscav(n) = 1.0_kind_phys n = get_tracer_index(Model%tracer_names, 'seas4', Model%me, Model%master, Model%debug) - Model%ntchs + 1 - if (n > 0) Model%fscav_sas(n) = 1.0_kind_phys + if (n > 0) Model%fscav(n) = 1.0_kind_phys n = get_tracer_index(Model%tracer_names, 'seas5', Model%me, Model%master, Model%debug) - Model%ntchs + 1 - if (n > 0) Model%fscav_sas(n) = 1.0_kind_phys + if (n > 0) Model%fscav(n) = 1.0_kind_phys ! -- read factors from namelist do i = 1, size(fscav_aero) j = index(fscav_aero(i),":") @@ -4115,12 +4121,12 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & read(fscav_aero(i)(j+1:), *, iostat=ios) tem if (ios /= 0) cycle if (adjustl(fscav_aero(i)(:j-1)) == "*") then - Model%fscav_sas = tem + Model%fscav = tem exit else n = get_tracer_index(Model%tracer_names, adjustl(fscav_aero(i)(:j-1)), Model%me, Model%master, Model%debug) & - Model%ntchs + 1 - if (n > 0) Model%fscav_sas(n) = tem + if (n > 0) Model%fscav(n) = tem endif endif enddo @@ -5110,8 +5116,7 @@ subroutine control_print(Model) print *, ' ntia : ', Model%ntia print *, ' ntchm : ', Model%ntchm print *, ' ntchs : ', Model%ntchs - print *, ' fscav_aero : ', Model%fscav_aero - print *, ' fscav_sas : ', Model%fscav_sas + print *, ' fscav : ', Model%fscav print *, ' ' print *, 'derived totals for phy_f*d' print *, ' ntot2d : ', Model%ntot2d @@ -6256,7 +6261,7 @@ subroutine interstitial_create (Interstitial, IM, Model) allocate (Interstitial%fm10_land (IM)) allocate (Interstitial%fm10_ocean (IM)) allocate (Interstitial%frland (IM)) - allocate (Interstitial%fscav_cs (Interstitial%nscav)) + allocate (Interstitial%fscav (Interstitial%nscav)) allocate (Interstitial%fswtr (Interstitial%nscav)) allocate (Interstitial%gabsbdlw (IM)) allocate (Interstitial%gabsbdlw_ice (IM)) @@ -6395,8 +6400,6 @@ subroutine interstitial_create (Interstitial, IM, Model) allocate (Interstitial%sktp1r (IM)) allocate (Interstitial%fluxlwUP_allsky (IM, Model%levs+1)) if (Model%do_RRTMGP) then - allocate (Interstitial%pcldtaulw (IM, Model%levs)) - allocate (Interstitial%pcldtausw (IM, Model%levs)) allocate (Interstitial%tracer (IM, Model%levs,Model%ntrac)) allocate (Interstitial%tv_lay (IM, Model%levs)) allocate (Interstitial%relhum (IM, Model%levs)) @@ -6490,10 +6493,19 @@ subroutine interstitial_create (Interstitial, IM, Model) allocate (Interstitial%cnv_nice (IM,Model%levs)) end if if (Model%imp_physics == Model%imp_physics_fer_hires) then + !--- if HWRF physics? + allocate (Interstitial%qv_r (IM,Model%levs)) + allocate (Interstitial%qc_r (IM,Model%levs)) + allocate (Interstitial%qi_r (IM,Model%levs)) + allocate (Interstitial%qr_r (IM,Model%levs)) + allocate (Interstitial%qs_r (IM,Model%levs)) + allocate (Interstitial%qg_r (IM,Model%levs)) + !--- Ferrier-Aligo MP scheme allocate (Interstitial%f_ice (IM,Model%levs)) allocate (Interstitial%f_rain (IM,Model%levs)) allocate (Interstitial%f_rimef (IM,Model%levs)) + allocate (Interstitial%cwm (IM,Model%levs)) end if if (Model%do_shoc) then if (.not. associated(Interstitial%qrn)) allocate (Interstitial%qrn (IM,Model%levs)) @@ -6746,16 +6758,21 @@ subroutine interstitial_rad_reset (Interstitial, Model) ! F-A scheme if (Model%imp_physics == Model%imp_physics_fer_hires) then + Interstitial%qv_r = clear_val + Interstitial%qc_r = clear_val + Interstitial%qi_r = clear_val + Interstitial%qr_r = clear_val + Interstitial%qs_r = clear_val + Interstitial%qg_r = clear_val if(Model%spec_adv) then Interstitial%f_ice = clear_val Interstitial%f_rain = clear_val Interstitial%f_rimef = clear_val + Interstitial%cwm = clear_val end if end if if (Model%do_RRTMGP) then - Interstitial%pcldtaulw = clear_val - Interstitial%pcldtausw = clear_val Interstitial%tracer = clear_val Interstitial%tv_lay = clear_val Interstitial%relhum = clear_val @@ -6893,7 +6910,7 @@ subroutine interstitial_phys_reset (Interstitial, Model) Interstitial%fm10_land = huge Interstitial%fm10_ocean = huge Interstitial%frland = clear_val - Interstitial%fscav_cs = clear_val + Interstitial%fscav = clear_val Interstitial%fswtr = clear_val Interstitial%gabsbdlw = clear_val Interstitial%gabsbdlw_ice = clear_val @@ -7057,6 +7074,7 @@ subroutine interstitial_phys_reset (Interstitial, Model) Interstitial%f_ice = clear_val Interstitial%f_rain = clear_val Interstitial%f_rimef = clear_val + Interstitial%cwm = clear_val end if if (Model%do_shoc) then Interstitial%qrn = clear_val @@ -7219,7 +7237,7 @@ subroutine interstitial_print(Interstitial, Model, mpirank, omprank, blkno) write (0,*) 'sum(Interstitial%fm10_ocean ) = ', sum(Interstitial%fm10_ocean ) write (0,*) 'Interstitial%frain = ', Interstitial%frain write (0,*) 'sum(Interstitial%frland ) = ', sum(Interstitial%frland ) - write (0,*) 'sum(Interstitial%fscav_cs ) = ', sum(Interstitial%fscav_cs ) + write (0,*) 'sum(Interstitial%fscav ) = ', sum(Interstitial%fscav ) write (0,*) 'sum(Interstitial%fswtr ) = ', sum(Interstitial%fswtr ) write (0,*) 'sum(Interstitial%gabsbdlw ) = ', sum(Interstitial%gabsbdlw ) write (0,*) 'sum(Interstitial%gabsbdlw_ice ) = ', sum(Interstitial%gabsbdlw_ice ) @@ -7397,6 +7415,7 @@ subroutine interstitial_print(Interstitial, Model, mpirank, omprank, blkno) write (0,*) 'sum(Interstitial%f_ice ) = ', sum(Interstitial%f_ice ) write (0,*) 'sum(Interstitial%f_rain ) = ', sum(Interstitial%f_rain ) write (0,*) 'sum(Interstitial%f_rimef ) = ', sum(Interstitial%f_rimef ) + write (0,*) 'sum(Interstitial%cwm ) = ', sum(Interstitial%cwm ) else if (Model%imp_physics == Model%imp_physics_mg) then write (0,*) 'Interstitial_print: values specific to MG microphysics' write (0,*) 'sum(Interstitial%ncgl ) = ', sum(Interstitial%ncgl ) @@ -7431,8 +7450,6 @@ subroutine interstitial_print(Interstitial, Model, mpirank, omprank, blkno) end if ! RRTMGP if (Model%do_RRTMGP) then - write (0,*) 'sum(Interstitial%pcldtaulw ) = ', sum(Interstitial%pcldtaulw ) - write (0,*) 'sum(Interstitial%pcldtausw ) = ', sum(Interstitial%pcldtausw ) write (0,*) 'sum(Interstitial%aerosolslw ) = ', sum(Interstitial%aerosolslw ) write (0,*) 'sum(Interstitial%aerosolssw ) = ', sum(Interstitial%aerosolssw ) write (0,*) 'sum(Interstitial%cld_frac ) = ', sum(Interstitial%cld_frac ) diff --git a/gfsphysics/GFS_layer/GFS_typedefs.meta b/gfsphysics/GFS_layer/GFS_typedefs.meta index 1cbb8e4ce..f9dc498a2 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.meta +++ b/gfsphysics/GFS_layer/GFS_typedefs.meta @@ -2469,14 +2469,14 @@ dimensions = () type = integer [iovr_sw] - standard_name = flag_for_cloud_overlapping_method_for_shortwave_radiation - long_name = control flag for cloud overlapping method for SW + standard_name = flag_for_max_random_overlap_clouds_for_shortwave_radiation + long_name = sw: max-random overlap clouds units = flag dimensions = () type = integer [iovr_lw] - standard_name = flag_for_cloud_overlapping_method_for_longwave_radiation - long_name = control flag for cloud overlapping method for LW + standard_name = flag_for_max_random_overlap_clouds_for_longwave_radiation + long_name = lw: max-random overlap clouds units = flag dimensions = () type = integer @@ -2487,14 +2487,14 @@ dimensions = () type = integer [isubc_sw] - standard_name = flag_for_subcolumn_cloud_approximation_for_shortwave_radiation - long_name = flag for subcolumn cloud approximation for shortwave radiation + standard_name = flag_for_sw_clouds_without_sub_grid_approximation + long_name = flag for sw clouds without sub-grid approximation units = flag dimensions = () type = integer [isubc_lw] - standard_name = flag_for_subcolumn_cloud_approximation_for_longwave_radiation - long_name = flag for subcolumn cloud approximation for longwave radiation + standard_name = flag_for_lw_clouds_without_sub_grid_approximation + long_name = flag for lw clouds without sub-grid approximation units = flag dimensions = () type = integer @@ -4035,7 +4035,7 @@ units = flag dimensions = (number_of_chemical_tracers) type = logical -[fscav_sas] +[fscav] standard_name = coefficients_for_aerosol_scavenging long_name = array of aerosol scavenging coefficients units = none @@ -4572,14 +4572,14 @@ units = none dimensions = (horizontal_dimension) type = integer - active = (flag_for_subcolumn_cloud_approximation_for_longwave_radiation == 2 .or. flag_for_subcolumn_cloud_approximation_for_shortwave_radiation == 2) + active = (flag_for_lw_clouds_without_sub_grid_approximation == 2 .or. flag_for_sw_clouds_without_sub_grid_approximation == 2) [icsdlw] standard_name = seed_random_numbers_lw long_name = random seeds for sub-column cloud generators lw units = none dimensions = (horizontal_dimension) type = integer - active = (flag_for_subcolumn_cloud_approximation_for_longwave_radiation == 2 .or. flag_for_subcolumn_cloud_approximation_for_shortwave_radiation == 2) + active = (flag_for_lw_clouds_without_sub_grid_approximation == 2 .or. flag_for_sw_clouds_without_sub_grid_approximation == 2) [ozpl] standard_name = ozone_forcing long_name = ozone forcing data @@ -6579,6 +6579,54 @@ [ccpp-arg-table] name = GFS_interstitial_type type = ddt +[qv_r] + standard_name = humidity_mixing_ratio + long_name = the ratio of the mass of water vapor to the mass of dry air + units = kg kg-1 + dimensions = (horizontal_dimension,vertical_dimension) + type = real + kind = kind_phys + active = (flag_for_microphysics_scheme == flag_for_fer_hires_microphysics_scheme) +[qc_r] + standard_name = cloud_liquid_water_mixing_ratio + long_name = the ratio of the mass of liquid water to the mass of dry air + units = kg kg-1 + dimensions = (horizontal_dimension,vertical_dimension) + type = real + kind = kind_phys + active = (flag_for_microphysics_scheme == flag_for_fer_hires_microphysics_scheme) +[qr_r] + standard_name = cloud_rain_water_mixing_ratio + long_name = the ratio of the mass rain water to the mass of dry air + units = kg kg-1 + dimensions = (horizontal_dimension,vertical_dimension) + type = real + kind = kind_phys + active = (flag_for_microphysics_scheme == flag_for_fer_hires_microphysics_scheme) +[qi_r] + standard_name = cloud_ice_mixing_ratio + long_name = the ratio of the mass of ice to the mass of dry air + units = kg kg-1 + dimensions = (horizontal_dimension,vertical_dimension) + type = real + kind = kind_phys + active = (flag_for_microphysics_scheme == flag_for_fer_hires_microphysics_scheme) +[qs_r] + standard_name = cloud_snow_mixing_ratio + long_name = the ratio of the mass of snow to mass of dry air + units = kg kg-1 + dimensions = (horizontal_dimension,vertical_dimension) + type = real + kind = kind_phys + active = (flag_for_microphysics_scheme == flag_for_fer_hires_microphysics_scheme) +[qg_r] + standard_name = mass_weighted_rime_factor_mixing_ratio + long_name = the ratio of the mass of rime factor to mass of dry air + units = kg kg-1 + dimensions = (horizontal_dimension,vertical_dimension) + type = real + kind = kind_phys + active = (flag_for_microphysics_scheme == flag_for_fer_hires_microphysics_scheme) [f_ice] standard_name = fraction_of_ice_water_cloud long_name = fraction of ice water cloud @@ -6603,6 +6651,14 @@ type = real kind = kind_phys active = (flag_for_microphysics_scheme == flag_for_fer_hires_microphysics_scheme) +[cwm] + standard_name = total_cloud_condensate_mixing_ratio_updated_by_physics + long_name = total cloud condensate mixing ratio (except water vapor) updated by physics + units = kg kg-1 + dimensions = (horizontal_dimension,vertical_dimension) + type = real + kind = kind_phys + active = (flag_for_microphysics_scheme == flag_for_fer_hires_microphysics_scheme) [adjsfculw_ocean] standard_name = surface_upwelling_longwave_flux_over_ocean_interstitial long_name = surface upwelling longwave flux at current time over ocean (temporary use as interstitial) @@ -7563,7 +7619,7 @@ dimensions = (horizontal_dimension) type = real kind = kind_phys -[fscav_cs] +[fscav] standard_name = fraction_of_tracer_scavenged long_name = fraction of the tracer (aerosols) that is scavenged by convection units = km-1 @@ -9162,7 +9218,7 @@ units = none dimensions = () type = integer -[pcldtausw] +[cldtausw] standard_name = RRTMGP_cloud_optical_depth_layers_at_0_55mu_band long_name = approx .55mu band layer cloud optical depth units = none @@ -9170,7 +9226,7 @@ type = real kind = kind_phys optional = F -[pcldtaulw] +[cldtaulw] standard_name = RRTMGP_cloud_optical_depth_layers_at_10mu_band long_name = approx 10mu band layer cloud optical depth units = none From 16bae0a77d11409baf6556ad62b4a063ab08d68d Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Mon, 5 Oct 2020 17:02:58 -0600 Subject: [PATCH 08/11] Update/simplify XML schema, replace lib="ccppphys" ver="N" with version="1" --- ccpp/suites/suite.xsd | 29 ++++++------------- ccpp/suites/suite_FV3_CPT_v0.xml | 2 +- ccpp/suites/suite_FV3_GFS_2017.xml | 2 +- ccpp/suites/suite_FV3_GFS_2017_coupled.xml | 2 +- .../suites/suite_FV3_GFS_2017_couplednsst.xml | 2 +- ccpp/suites/suite_FV3_GFS_2017_csawmg.xml | 2 +- ccpp/suites/suite_FV3_GFS_2017_csawmgshoc.xml | 2 +- ccpp/suites/suite_FV3_GFS_2017_fv3wam.xml | 2 +- ccpp/suites/suite_FV3_GFS_2017_gfdlmp.xml | 2 +- .../suite_FV3_GFS_2017_gfdlmp_noahmp.xml | 2 +- .../suite_FV3_GFS_2017_gfdlmp_regional.xml | 2 +- ...uite_FV3_GFS_2017_gfdlmp_regional_c768.xml | 2 +- ccpp/suites/suite_FV3_GFS_2017_h2ophys.xml | 2 +- ccpp/suites/suite_FV3_GFS_2017_myj.xml | 2 +- ccpp/suites/suite_FV3_GFS_2017_ntiedtke.xml | 2 +- .../suites/suite_FV3_GFS_2017_ozphys_2015.xml | 2 +- ccpp/suites/suite_FV3_GFS_2017_sas.xml | 2 +- ccpp/suites/suite_FV3_GFS_2017_satmedmf.xml | 2 +- .../suite_FV3_GFS_2017_satmedmf_coupled.xml | 2 +- ccpp/suites/suite_FV3_GFS_2017_satmedmfq.xml | 2 +- ccpp/suites/suite_FV3_GFS_2017_shinhong.xml | 2 +- ccpp/suites/suite_FV3_GFS_2017_stretched.xml | 2 +- ccpp/suites/suite_FV3_GFS_2017_ysu.xml | 2 +- ccpp/suites/suite_FV3_GFS_cpld_rasmgshoc.xml | 2 +- .../suite_FV3_GFS_cpld_rasmgshocnsst.xml | 2 +- .../suite_FV3_GFS_cpldnst_rasmgshoc.xml | 2 +- ccpp/suites/suite_FV3_GFS_rasmgshoc.xml | 2 +- ccpp/suites/suite_FV3_GFS_v15.xml | 2 +- ccpp/suites/suite_FV3_GFS_v15_gf.xml | 2 +- ccpp/suites/suite_FV3_GFS_v15_gf_thompson.xml | 2 +- ccpp/suites/suite_FV3_GFS_v15_mynn.xml | 2 +- ccpp/suites/suite_FV3_GFS_v15_ras.xml | 2 +- ccpp/suites/suite_FV3_GFS_v15_rasmgshoc.xml | 2 +- ccpp/suites/suite_FV3_GFS_v15_thompson.xml | 2 +- .../suite_FV3_GFS_v15_thompson_mynn.xml | 2 +- ccpp/suites/suite_FV3_GFS_v15p2.xml | 2 +- ccpp/suites/suite_FV3_GFS_v15p2_RRTMGP.xml | 2 +- ccpp/suites/suite_FV3_GFS_v15p2_coupled.xml | 2 +- ccpp/suites/suite_FV3_GFS_v15p2_no_nsst.xml | 2 +- ccpp/suites/suite_FV3_GFS_v15plus.xml | 2 +- ccpp/suites/suite_FV3_GFS_v15plusras.xml | 2 +- ccpp/suites/suite_FV3_GFS_v16_csawmg.xml | 2 +- ccpp/suites/suite_FV3_GFS_v16beta.xml | 2 +- ccpp/suites/suite_FV3_GFS_v16beta_RRTMGP.xml | 2 +- ccpp/suites/suite_FV3_GFS_v16beta_flake.xml | 2 +- ccpp/suites/suite_FV3_GFS_v16beta_no_nsst.xml | 2 +- ccpp/suites/suite_FV3_GSD_SAR.xml | 2 +- ccpp/suites/suite_FV3_GSD_noah.xml | 2 +- ccpp/suites/suite_FV3_GSD_noah_mynnsfc.xml | 2 +- ccpp/suites/suite_FV3_GSD_v0.xml | 2 +- ccpp/suites/suite_FV3_GSD_v0_drag_suite.xml | 2 +- ccpp/suites/suite_FV3_GSD_v0_mynnsfc.xml | 2 +- .../suite_FV3_HAFS_ferhires_update_moist.xml | 2 +- ccpp/suites/suite_FV3_HRRR.xml | 2 +- ccpp/suites/suite_FV3_RAP.xml | 2 +- ccpp/suites/suite_FV3_RRFS_v1beta.xml | 2 +- 56 files changed, 64 insertions(+), 75 deletions(-) diff --git a/ccpp/suites/suite.xsd b/ccpp/suites/suite.xsd index df7e9c6c7..cab9c05ab 100644 --- a/ccpp/suites/suite.xsd +++ b/ccpp/suites/suite.xsd @@ -1,48 +1,37 @@ + xmlns:xs="http://www.w3.org/2001/XMLSchema"> - - - - - - - - - - - + - + + - + + - + - + - - + diff --git a/ccpp/suites/suite_FV3_CPT_v0.xml b/ccpp/suites/suite_FV3_CPT_v0.xml index 11c23d9cc..0aa9e316d 100644 --- a/ccpp/suites/suite_FV3_CPT_v0.xml +++ b/ccpp/suites/suite_FV3_CPT_v0.xml @@ -1,6 +1,6 @@ - + diff --git a/ccpp/suites/suite_FV3_GFS_2017.xml b/ccpp/suites/suite_FV3_GFS_2017.xml index 5a8438834..a9c82812f 100644 --- a/ccpp/suites/suite_FV3_GFS_2017.xml +++ b/ccpp/suites/suite_FV3_GFS_2017.xml @@ -1,6 +1,6 @@ - + diff --git a/ccpp/suites/suite_FV3_GFS_2017_coupled.xml b/ccpp/suites/suite_FV3_GFS_2017_coupled.xml index 7502371a4..e819383c6 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_coupled.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_coupled.xml @@ -1,6 +1,6 @@ - + diff --git a/ccpp/suites/suite_FV3_GFS_2017_couplednsst.xml b/ccpp/suites/suite_FV3_GFS_2017_couplednsst.xml index 1aa7ca484..85a9335e1 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_couplednsst.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_couplednsst.xml @@ -1,6 +1,6 @@ - + diff --git a/ccpp/suites/suite_FV3_GFS_2017_csawmg.xml b/ccpp/suites/suite_FV3_GFS_2017_csawmg.xml index 9d944612a..7ae828ec0 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_csawmg.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_csawmg.xml @@ -1,6 +1,6 @@ - + diff --git a/ccpp/suites/suite_FV3_GFS_2017_csawmgshoc.xml b/ccpp/suites/suite_FV3_GFS_2017_csawmgshoc.xml index cea2d08c5..f90c8471e 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_csawmgshoc.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_csawmgshoc.xml @@ -1,6 +1,6 @@ - + diff --git a/ccpp/suites/suite_FV3_GFS_2017_fv3wam.xml b/ccpp/suites/suite_FV3_GFS_2017_fv3wam.xml index fac22314c..e0e40e2cc 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_fv3wam.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_fv3wam.xml @@ -1,6 +1,6 @@ - + diff --git a/ccpp/suites/suite_FV3_GFS_2017_gfdlmp.xml b/ccpp/suites/suite_FV3_GFS_2017_gfdlmp.xml index 275a30716..a6f4c4ab3 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_gfdlmp.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_gfdlmp.xml @@ -1,6 +1,6 @@ - + diff --git a/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_noahmp.xml b/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_noahmp.xml index d1c575b97..8dc0f01f5 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_noahmp.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_noahmp.xml @@ -1,6 +1,6 @@ - + diff --git a/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_regional.xml b/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_regional.xml index 6b038f1f9..e7e9f9789 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_regional.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_regional.xml @@ -1,6 +1,6 @@ - + diff --git a/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_regional_c768.xml b/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_regional_c768.xml index f6515c034..d73878b31 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_regional_c768.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_regional_c768.xml @@ -1,6 +1,6 @@ - + diff --git a/ccpp/suites/suite_FV3_GFS_2017_h2ophys.xml b/ccpp/suites/suite_FV3_GFS_2017_h2ophys.xml index a0ad9e927..f06794ef5 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_h2ophys.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_h2ophys.xml @@ -1,6 +1,6 @@ - + diff --git a/ccpp/suites/suite_FV3_GFS_2017_myj.xml b/ccpp/suites/suite_FV3_GFS_2017_myj.xml index 27ffd3411..8684e2bea 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_myj.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_myj.xml @@ -1,6 +1,6 @@ - + diff --git a/ccpp/suites/suite_FV3_GFS_2017_ntiedtke.xml b/ccpp/suites/suite_FV3_GFS_2017_ntiedtke.xml index 124885690..9fa9d320a 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_ntiedtke.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_ntiedtke.xml @@ -1,6 +1,6 @@ - + diff --git a/ccpp/suites/suite_FV3_GFS_2017_ozphys_2015.xml b/ccpp/suites/suite_FV3_GFS_2017_ozphys_2015.xml index de32479b5..469b3ed99 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_ozphys_2015.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_ozphys_2015.xml @@ -1,6 +1,6 @@ - + diff --git a/ccpp/suites/suite_FV3_GFS_2017_sas.xml b/ccpp/suites/suite_FV3_GFS_2017_sas.xml index 5f307c981..32fd8f10a 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_sas.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_sas.xml @@ -1,6 +1,6 @@ - + diff --git a/ccpp/suites/suite_FV3_GFS_2017_satmedmf.xml b/ccpp/suites/suite_FV3_GFS_2017_satmedmf.xml index 1bc076ba3..9132cce62 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_satmedmf.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_satmedmf.xml @@ -1,6 +1,6 @@ - + diff --git a/ccpp/suites/suite_FV3_GFS_2017_satmedmf_coupled.xml b/ccpp/suites/suite_FV3_GFS_2017_satmedmf_coupled.xml index 91ac58b60..ea3774505 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_satmedmf_coupled.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_satmedmf_coupled.xml @@ -1,6 +1,6 @@ - + diff --git a/ccpp/suites/suite_FV3_GFS_2017_satmedmfq.xml b/ccpp/suites/suite_FV3_GFS_2017_satmedmfq.xml index 14ac7ff2f..950a4f3a4 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_satmedmfq.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_satmedmfq.xml @@ -1,6 +1,6 @@ - + diff --git a/ccpp/suites/suite_FV3_GFS_2017_shinhong.xml b/ccpp/suites/suite_FV3_GFS_2017_shinhong.xml index f7eba5170..c98c66491 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_shinhong.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_shinhong.xml @@ -1,6 +1,6 @@ - + diff --git a/ccpp/suites/suite_FV3_GFS_2017_stretched.xml b/ccpp/suites/suite_FV3_GFS_2017_stretched.xml index 1a8c5daea..cfe8e5841 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_stretched.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_stretched.xml @@ -1,6 +1,6 @@ - + diff --git a/ccpp/suites/suite_FV3_GFS_2017_ysu.xml b/ccpp/suites/suite_FV3_GFS_2017_ysu.xml index 0d7c3677d..8fa09fbe5 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_ysu.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_ysu.xml @@ -1,6 +1,6 @@ - + diff --git a/ccpp/suites/suite_FV3_GFS_cpld_rasmgshoc.xml b/ccpp/suites/suite_FV3_GFS_cpld_rasmgshoc.xml index 6cb64c4ba..7f4532fd8 100644 --- a/ccpp/suites/suite_FV3_GFS_cpld_rasmgshoc.xml +++ b/ccpp/suites/suite_FV3_GFS_cpld_rasmgshoc.xml @@ -1,6 +1,6 @@ - + diff --git a/ccpp/suites/suite_FV3_GFS_cpld_rasmgshocnsst.xml b/ccpp/suites/suite_FV3_GFS_cpld_rasmgshocnsst.xml index a08956dfa..e10379552 100644 --- a/ccpp/suites/suite_FV3_GFS_cpld_rasmgshocnsst.xml +++ b/ccpp/suites/suite_FV3_GFS_cpld_rasmgshocnsst.xml @@ -1,6 +1,6 @@ - + diff --git a/ccpp/suites/suite_FV3_GFS_cpldnst_rasmgshoc.xml b/ccpp/suites/suite_FV3_GFS_cpldnst_rasmgshoc.xml index 5403a2e17..0527a5675 100644 --- a/ccpp/suites/suite_FV3_GFS_cpldnst_rasmgshoc.xml +++ b/ccpp/suites/suite_FV3_GFS_cpldnst_rasmgshoc.xml @@ -1,6 +1,6 @@ - + diff --git a/ccpp/suites/suite_FV3_GFS_rasmgshoc.xml b/ccpp/suites/suite_FV3_GFS_rasmgshoc.xml index 1c9377f3b..b3d21d014 100644 --- a/ccpp/suites/suite_FV3_GFS_rasmgshoc.xml +++ b/ccpp/suites/suite_FV3_GFS_rasmgshoc.xml @@ -1,6 +1,6 @@ - + diff --git a/ccpp/suites/suite_FV3_GFS_v15.xml b/ccpp/suites/suite_FV3_GFS_v15.xml index 18fdb129d..eac7d728d 100644 --- a/ccpp/suites/suite_FV3_GFS_v15.xml +++ b/ccpp/suites/suite_FV3_GFS_v15.xml @@ -1,6 +1,6 @@ - + diff --git a/ccpp/suites/suite_FV3_GFS_v15_gf.xml b/ccpp/suites/suite_FV3_GFS_v15_gf.xml index 1ca3ac665..cdb00e747 100644 --- a/ccpp/suites/suite_FV3_GFS_v15_gf.xml +++ b/ccpp/suites/suite_FV3_GFS_v15_gf.xml @@ -1,6 +1,6 @@ - + diff --git a/ccpp/suites/suite_FV3_GFS_v15_gf_thompson.xml b/ccpp/suites/suite_FV3_GFS_v15_gf_thompson.xml index e1f82f5fb..6e59e47bf 100644 --- a/ccpp/suites/suite_FV3_GFS_v15_gf_thompson.xml +++ b/ccpp/suites/suite_FV3_GFS_v15_gf_thompson.xml @@ -1,6 +1,6 @@ - + diff --git a/ccpp/suites/suite_FV3_GFS_v15_mynn.xml b/ccpp/suites/suite_FV3_GFS_v15_mynn.xml index a1eefeb2c..9cfc40f2b 100644 --- a/ccpp/suites/suite_FV3_GFS_v15_mynn.xml +++ b/ccpp/suites/suite_FV3_GFS_v15_mynn.xml @@ -1,6 +1,6 @@ - + diff --git a/ccpp/suites/suite_FV3_GFS_v15_ras.xml b/ccpp/suites/suite_FV3_GFS_v15_ras.xml index d24b4a4fa..d182e78e0 100644 --- a/ccpp/suites/suite_FV3_GFS_v15_ras.xml +++ b/ccpp/suites/suite_FV3_GFS_v15_ras.xml @@ -1,6 +1,6 @@ - + diff --git a/ccpp/suites/suite_FV3_GFS_v15_rasmgshoc.xml b/ccpp/suites/suite_FV3_GFS_v15_rasmgshoc.xml index 8ae039ae3..9411ef974 100644 --- a/ccpp/suites/suite_FV3_GFS_v15_rasmgshoc.xml +++ b/ccpp/suites/suite_FV3_GFS_v15_rasmgshoc.xml @@ -1,6 +1,6 @@ - + diff --git a/ccpp/suites/suite_FV3_GFS_v15_thompson.xml b/ccpp/suites/suite_FV3_GFS_v15_thompson.xml index ea0bdc8bb..3afab2d83 100644 --- a/ccpp/suites/suite_FV3_GFS_v15_thompson.xml +++ b/ccpp/suites/suite_FV3_GFS_v15_thompson.xml @@ -1,6 +1,6 @@ - + diff --git a/ccpp/suites/suite_FV3_GFS_v15_thompson_mynn.xml b/ccpp/suites/suite_FV3_GFS_v15_thompson_mynn.xml index ce5880adb..bfe0763cd 100644 --- a/ccpp/suites/suite_FV3_GFS_v15_thompson_mynn.xml +++ b/ccpp/suites/suite_FV3_GFS_v15_thompson_mynn.xml @@ -1,6 +1,6 @@ - + diff --git a/ccpp/suites/suite_FV3_GFS_v15p2.xml b/ccpp/suites/suite_FV3_GFS_v15p2.xml index c074f08dd..8026c1e90 100644 --- a/ccpp/suites/suite_FV3_GFS_v15p2.xml +++ b/ccpp/suites/suite_FV3_GFS_v15p2.xml @@ -1,6 +1,6 @@ - + diff --git a/ccpp/suites/suite_FV3_GFS_v15p2_RRTMGP.xml b/ccpp/suites/suite_FV3_GFS_v15p2_RRTMGP.xml index 2edcd5c57..244345a95 100644 --- a/ccpp/suites/suite_FV3_GFS_v15p2_RRTMGP.xml +++ b/ccpp/suites/suite_FV3_GFS_v15p2_RRTMGP.xml @@ -1,6 +1,6 @@ - + diff --git a/ccpp/suites/suite_FV3_GFS_v15p2_coupled.xml b/ccpp/suites/suite_FV3_GFS_v15p2_coupled.xml index dd8bbec07..faac2160d 100644 --- a/ccpp/suites/suite_FV3_GFS_v15p2_coupled.xml +++ b/ccpp/suites/suite_FV3_GFS_v15p2_coupled.xml @@ -1,6 +1,6 @@ - + diff --git a/ccpp/suites/suite_FV3_GFS_v15p2_no_nsst.xml b/ccpp/suites/suite_FV3_GFS_v15p2_no_nsst.xml index 2fb5a033e..790a17783 100644 --- a/ccpp/suites/suite_FV3_GFS_v15p2_no_nsst.xml +++ b/ccpp/suites/suite_FV3_GFS_v15p2_no_nsst.xml @@ -1,6 +1,6 @@ - + diff --git a/ccpp/suites/suite_FV3_GFS_v15plus.xml b/ccpp/suites/suite_FV3_GFS_v15plus.xml index e2bcd86a6..ef0d53b02 100644 --- a/ccpp/suites/suite_FV3_GFS_v15plus.xml +++ b/ccpp/suites/suite_FV3_GFS_v15plus.xml @@ -1,6 +1,6 @@ - + diff --git a/ccpp/suites/suite_FV3_GFS_v15plusras.xml b/ccpp/suites/suite_FV3_GFS_v15plusras.xml index f6ae3bca6..49b422bc6 100644 --- a/ccpp/suites/suite_FV3_GFS_v15plusras.xml +++ b/ccpp/suites/suite_FV3_GFS_v15plusras.xml @@ -1,6 +1,6 @@ - + diff --git a/ccpp/suites/suite_FV3_GFS_v16_csawmg.xml b/ccpp/suites/suite_FV3_GFS_v16_csawmg.xml index a899edf99..98074d95d 100644 --- a/ccpp/suites/suite_FV3_GFS_v16_csawmg.xml +++ b/ccpp/suites/suite_FV3_GFS_v16_csawmg.xml @@ -1,6 +1,6 @@ - + diff --git a/ccpp/suites/suite_FV3_GFS_v16beta.xml b/ccpp/suites/suite_FV3_GFS_v16beta.xml index 61653650d..2ae5743fb 100644 --- a/ccpp/suites/suite_FV3_GFS_v16beta.xml +++ b/ccpp/suites/suite_FV3_GFS_v16beta.xml @@ -1,6 +1,6 @@ - + diff --git a/ccpp/suites/suite_FV3_GFS_v16beta_RRTMGP.xml b/ccpp/suites/suite_FV3_GFS_v16beta_RRTMGP.xml index 8ad4b94e3..d27a3f7d3 100644 --- a/ccpp/suites/suite_FV3_GFS_v16beta_RRTMGP.xml +++ b/ccpp/suites/suite_FV3_GFS_v16beta_RRTMGP.xml @@ -1,6 +1,6 @@ - + diff --git a/ccpp/suites/suite_FV3_GFS_v16beta_flake.xml b/ccpp/suites/suite_FV3_GFS_v16beta_flake.xml index dec1a76a2..b7ac405ee 100644 --- a/ccpp/suites/suite_FV3_GFS_v16beta_flake.xml +++ b/ccpp/suites/suite_FV3_GFS_v16beta_flake.xml @@ -1,6 +1,6 @@ - + diff --git a/ccpp/suites/suite_FV3_GFS_v16beta_no_nsst.xml b/ccpp/suites/suite_FV3_GFS_v16beta_no_nsst.xml index aaff505ef..a73d1b561 100644 --- a/ccpp/suites/suite_FV3_GFS_v16beta_no_nsst.xml +++ b/ccpp/suites/suite_FV3_GFS_v16beta_no_nsst.xml @@ -1,6 +1,6 @@ - + diff --git a/ccpp/suites/suite_FV3_GSD_SAR.xml b/ccpp/suites/suite_FV3_GSD_SAR.xml index 093d7e568..08541847a 100644 --- a/ccpp/suites/suite_FV3_GSD_SAR.xml +++ b/ccpp/suites/suite_FV3_GSD_SAR.xml @@ -1,6 +1,6 @@ - + diff --git a/ccpp/suites/suite_FV3_GSD_noah.xml b/ccpp/suites/suite_FV3_GSD_noah.xml index d8821ed66..42d55a5e4 100644 --- a/ccpp/suites/suite_FV3_GSD_noah.xml +++ b/ccpp/suites/suite_FV3_GSD_noah.xml @@ -1,6 +1,6 @@ - + diff --git a/ccpp/suites/suite_FV3_GSD_noah_mynnsfc.xml b/ccpp/suites/suite_FV3_GSD_noah_mynnsfc.xml index f2da9d4e8..7ac1ebb40 100644 --- a/ccpp/suites/suite_FV3_GSD_noah_mynnsfc.xml +++ b/ccpp/suites/suite_FV3_GSD_noah_mynnsfc.xml @@ -1,6 +1,6 @@ - + diff --git a/ccpp/suites/suite_FV3_GSD_v0.xml b/ccpp/suites/suite_FV3_GSD_v0.xml index d3a23a30c..9ea5981bf 100644 --- a/ccpp/suites/suite_FV3_GSD_v0.xml +++ b/ccpp/suites/suite_FV3_GSD_v0.xml @@ -1,6 +1,6 @@ - + diff --git a/ccpp/suites/suite_FV3_GSD_v0_drag_suite.xml b/ccpp/suites/suite_FV3_GSD_v0_drag_suite.xml index 852385dca..7d55abfd2 100644 --- a/ccpp/suites/suite_FV3_GSD_v0_drag_suite.xml +++ b/ccpp/suites/suite_FV3_GSD_v0_drag_suite.xml @@ -1,6 +1,6 @@ - + diff --git a/ccpp/suites/suite_FV3_GSD_v0_mynnsfc.xml b/ccpp/suites/suite_FV3_GSD_v0_mynnsfc.xml index f1c22a774..b3b629550 100644 --- a/ccpp/suites/suite_FV3_GSD_v0_mynnsfc.xml +++ b/ccpp/suites/suite_FV3_GSD_v0_mynnsfc.xml @@ -1,6 +1,6 @@ - + diff --git a/ccpp/suites/suite_FV3_HAFS_ferhires_update_moist.xml b/ccpp/suites/suite_FV3_HAFS_ferhires_update_moist.xml index 66d451186..1f76a676f 100644 --- a/ccpp/suites/suite_FV3_HAFS_ferhires_update_moist.xml +++ b/ccpp/suites/suite_FV3_HAFS_ferhires_update_moist.xml @@ -1,6 +1,6 @@ - + diff --git a/ccpp/suites/suite_FV3_HRRR.xml b/ccpp/suites/suite_FV3_HRRR.xml index 24f57b8ec..4487b8e27 100644 --- a/ccpp/suites/suite_FV3_HRRR.xml +++ b/ccpp/suites/suite_FV3_HRRR.xml @@ -1,6 +1,6 @@ - + diff --git a/ccpp/suites/suite_FV3_RAP.xml b/ccpp/suites/suite_FV3_RAP.xml index 3f145c144..9440efa69 100644 --- a/ccpp/suites/suite_FV3_RAP.xml +++ b/ccpp/suites/suite_FV3_RAP.xml @@ -1,6 +1,6 @@ - + diff --git a/ccpp/suites/suite_FV3_RRFS_v1beta.xml b/ccpp/suites/suite_FV3_RRFS_v1beta.xml index c570483df..2691dedd4 100644 --- a/ccpp/suites/suite_FV3_RRFS_v1beta.xml +++ b/ccpp/suites/suite_FV3_RRFS_v1beta.xml @@ -1,6 +1,6 @@ - + From 126ff0c9e81f71e5d79a032d017b61407ad92569 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Mon, 5 Oct 2020 20:28:44 -0600 Subject: [PATCH 09/11] Update .gitmodules and submodule pointer for ccpp-physics for code review and testing --- .gitmodules | 6 ++++-- ccpp/physics | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.gitmodules b/.gitmodules index b9fc52fd7..c83fba7dc 100644 --- a/.gitmodules +++ b/.gitmodules @@ -8,5 +8,7 @@ branch = feature/transition-to-capgen-1 [submodule "ccpp/physics"] path = ccpp/physics - url = https://github.com/NCAR/ccpp-physics - branch = feature/transition-to-capgen-1 + #url = https://github.com/NCAR/ccpp-physics + #branch = feature/transition-to-capgen-1 + url = https://github.com/climbfuji/ccpp-physics + branch = ddt_removal_radiation diff --git a/ccpp/physics b/ccpp/physics index 5540bd61a..5aaa8db78 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 5540bd61a8ba48b4f5a4c35b0a65d261615d57b2 +Subproject commit 5aaa8db7889c9ac8f7bb41dcd0100c262276c86b From 4b73f1c10388dc5eb34b0c010ebb2fb15643137c Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Tue, 6 Oct 2020 15:22:49 -0600 Subject: [PATCH 10/11] Update .gitmodules and submodule pointers for ccpp-framework and ccpp-physics --- .gitmodules | 6 ++++-- ccpp/framework | 2 +- ccpp/physics | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/.gitmodules b/.gitmodules index c83fba7dc..0fc621860 100644 --- a/.gitmodules +++ b/.gitmodules @@ -4,8 +4,10 @@ branch = dev/emc [submodule "ccpp/framework"] path = ccpp/framework - url = https://github.com/NCAR/ccpp-framework - branch = feature/transition-to-capgen-1 + #url = https://github.com/NCAR/ccpp-framework + #branch = feature/transition-to-capgen-1 + url = https://github.com/climbfuji/ccpp-framework + branch = improve_log_unit_conversion [submodule "ccpp/physics"] path = ccpp/physics #url = https://github.com/NCAR/ccpp-physics diff --git a/ccpp/framework b/ccpp/framework index 3fee72ab3..5b6f4c9be 160000 --- a/ccpp/framework +++ b/ccpp/framework @@ -1 +1 @@ -Subproject commit 3fee72ab3d3d10014654d03d749938cb97c5912a +Subproject commit 5b6f4c9be44892103bb5f4e753329271bfee6672 diff --git a/ccpp/physics b/ccpp/physics index e6e8ef113..8ee53ccd1 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit e6e8ef11345b3f792e5fe8fde512857571a562e4 +Subproject commit 8ee53ccd15671deeb580cc4217b1fc0f48407b1c From 48ab49f51f139fb695ae43ec8f2678a9f22071c4 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Wed, 7 Oct 2020 10:42:59 -0600 Subject: [PATCH 11/11] Revert change to .gitmodules and update submodule pointers for ccpp-framework and ccpp-physics --- .gitmodules | 12 ++++-------- ccpp/framework | 2 +- ccpp/physics | 2 +- 3 files changed, 6 insertions(+), 10 deletions(-) diff --git a/.gitmodules b/.gitmodules index 0fc621860..b9fc52fd7 100644 --- a/.gitmodules +++ b/.gitmodules @@ -4,13 +4,9 @@ branch = dev/emc [submodule "ccpp/framework"] path = ccpp/framework - #url = https://github.com/NCAR/ccpp-framework - #branch = feature/transition-to-capgen-1 - url = https://github.com/climbfuji/ccpp-framework - branch = improve_log_unit_conversion + url = https://github.com/NCAR/ccpp-framework + branch = feature/transition-to-capgen-1 [submodule "ccpp/physics"] path = ccpp/physics - #url = https://github.com/NCAR/ccpp-physics - #branch = feature/transition-to-capgen-1 - url = https://github.com/climbfuji/ccpp-physics - branch = ddt_removal_radiation + url = https://github.com/NCAR/ccpp-physics + branch = feature/transition-to-capgen-1 diff --git a/ccpp/framework b/ccpp/framework index 5b6f4c9be..79c0f8460 160000 --- a/ccpp/framework +++ b/ccpp/framework @@ -1 +1 @@ -Subproject commit 5b6f4c9be44892103bb5f4e753329271bfee6672 +Subproject commit 79c0f8460cf545e62bcb69b8cb227ce854a1f26b diff --git a/ccpp/physics b/ccpp/physics index 8ee53ccd1..cf341916a 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 8ee53ccd15671deeb580cc4217b1fc0f48407b1c +Subproject commit cf341916ae66fa3fed27d374d3f4fc51da37e996