diff --git a/physics/GFS_rrtmgp_gas_optics.F90 b/physics/GFS_rrtmgp_gas_optics.F90 index 42a1cf2b6..73a23078d 100644 --- a/physics/GFS_rrtmgp_gas_optics.F90 +++ b/physics/GFS_rrtmgp_gas_optics.F90 @@ -35,7 +35,6 @@ subroutine GFS_rrtmgp_gas_optics_init(Model, Radtend, errmsg, errflg) errmsg = '' errflg = 0 - ! Which gases are active? Provided via physics namelist. if (len(Model%active_gases) .gt. 0) then diff --git a/physics/GFS_rrtmgp_post.meta b/physics/GFS_rrtmgp_post.meta index 067fe7e7f..76411512d 100644 --- a/physics/GFS_rrtmgp_post.meta +++ b/physics/GFS_rrtmgp_post.meta @@ -114,10 +114,10 @@ intent = in optional = F [cld_frac] - standard_name = RRTMGP_total_cloud_fraction + standard_name = total_cloud_fraction long_name = layer total cloud fraction units = frac - dimensions = (horizontal_dimension,vertical_dimension_plus_one) + dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys intent = in @@ -126,7 +126,7 @@ standard_name = RRTMGP_cloud_optical_depth_layers_at_10mu_band long_name = approx 10mu band layer cloud optical depth units = none - dimensions = (horizontal_dimension,vertical_dimension_plus_one) + dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys intent = in @@ -135,7 +135,7 @@ standard_name = RRTMGP_cloud_optical_depth_layers_at_0_55mu_band long_name = approx .55mu band layer cloud optical depth units = none - dimensions = (horizontal_dimension,vertical_dimension_plus_one) + dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys intent = in diff --git a/physics/GFS_rrtmgp_pre.F90 b/physics/GFS_rrtmgp_pre.F90 index 360886a57..df85c752f 100644 --- a/physics/GFS_rrtmgp_pre.F90 +++ b/physics/GFS_rrtmgp_pre.F90 @@ -317,6 +317,7 @@ subroutine GFS_rrtmgp_pre_run (Model, Grid, Statein, Coupling, Radtend, Sfcprop, cld_rerain = clouds(:,:,7) cld_swp = clouds(:,:,8) cld_resnow = clouds(:,:,9) + print*,clouds(:,:,5) ! ####################################################################################### ! mg, sfc-perts diff --git a/physics/GFS_rrtmgp_pre.meta b/physics/GFS_rrtmgp_pre.meta index 74362b448..f0e21928e 100644 --- a/physics/GFS_rrtmgp_pre.meta +++ b/physics/GFS_rrtmgp_pre.meta @@ -145,82 +145,82 @@ intent = out optional = F [cld_frac] - standard_name = RRTMGP_total_cloud_fraction + standard_name = total_cloud_fraction long_name = layer total cloud fraction units = frac - dimensions = (horizontal_dimension,vertical_dimension_plus_one) + dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys intent = out optional = F [cld_lwp] - standard_name = RRTMGP_cloud_liquid_water_path + standard_name = cloud_liquid_water_path long_name = layer cloud liquid water path units = g m-2 - dimensions = (horizontal_dimension,vertical_dimension_plus_one) + dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys intent = out optional = F [cld_reliq] - standard_name = RRTMGP_mean_effective_radius_for_liquid_cloud + standard_name = mean_effective_radius_for_liquid_cloud long_name = mean effective radius for liquid cloud units = micron - dimensions = (horizontal_dimension,vertical_dimension_plus_one) + dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys intent = out optional = F [cld_iwp] - standard_name = RRTMGP_cloud_ice_water_path + standard_name = cloud_ice_water_path long_name = layer cloud ice water path units = g m-2 - dimensions = (horizontal_dimension,vertical_dimension_plus_one) + dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys intent = out optional = F [cld_reice] - standard_name = RRTMGP_mean_effective_radius_for_ice_cloud + standard_name = mean_effective_radius_for_ice_cloud long_name = mean effective radius for ice cloud units = micron - dimensions = (horizontal_dimension,vertical_dimension_plus_one) + dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys intent = out optional = F [cld_swp] - standard_name = RRTMGP_cloud_snow_water_path + standard_name = cloud_snow_water_path long_name = layer cloud snow water path units = g m-2 - dimensions = (horizontal_dimension,vertical_dimension_plus_one) + dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys intent = out optional = F [cld_resnow] - standard_name = RRTMGP_mean_effective_radius_for_snow_flake + standard_name = mean_effective_radius_for_snow_flake long_name = mean effective radius for snow cloud units = micron - dimensions = (horizontal_dimension,vertical_dimension_plus_one) + dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys intent = out optional = F [cld_rwp] - standard_name = RRTMGP_cloud_rain_water_path + standard_name = cloud_rain_water_path long_name = layer cloud rain water path units = g m-2 - dimensions = (horizontal_dimension,vertical_dimension_plus_one) + dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys intent = out optional = F [cld_rerain] - standard_name = RRTMGP_mean_effective_radius_for_rain_drop + standard_name = mean_effective_radius_for_rain_drop long_name = mean effective radius for rain cloud units = micron - dimensions = (horizontal_dimension,vertical_dimension_plus_one) + dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys intent = out @@ -229,7 +229,7 @@ standard_name = RRTMGP_aerosol_optical_properties_for_longwave_bands_01_16 long_name = aerosol optical properties for longwave bands 01-16 units = various - dimensions = (horizontal_dimension,vertical_dimension_plus_one, number_of_lw_bands_rrtmgp,number_of_aerosol_output_fields_for_longwave_radiation) + dimensions = (horizontal_dimension,vertical_dimension, number_of_lw_bands_rrtmgp,number_of_aerosol_output_fields_for_longwave_radiation) type = real kind = kind_phys intent = out @@ -238,7 +238,7 @@ standard_name = RRTMGP_aerosol_optical_properties_for_shortwave_bands_01_16 long_name = aerosol optical properties for shortwave bands 01-16 units = various - dimensions = (horizontal_dimension,vertical_dimension_plus_one, number_of_sw_bands_rrtmgp, number_of_aerosol_output_fields_for_shortwave_radiation) + dimensions = (horizontal_dimension,vertical_dimension, number_of_sw_bands_rrtmgp, number_of_aerosol_output_fields_for_shortwave_radiation) type = real intent = out kind = kind_phys diff --git a/physics/GFS_rrtmgp_setup.F90 b/physics/GFS_rrtmgp_setup.F90 index 77e604c72..bf9bfa04d 100644 --- a/physics/GFS_rrtmgp_setup.F90 +++ b/physics/GFS_rrtmgp_setup.F90 @@ -3,7 +3,6 @@ module GFS_rrtmgp_setup use physparam, only : isolar , ictmflg, ico2flg, ioznflg, iaerflg,& -! & iaermdl, laswflg, lalwflg, lavoflg, icldflg, & & iaermdl, icldflg, & & iovrsw , iovrlw , lcrick , lcnorm , lnoprec, & & ialbflg, iemsflg, isubcsw, isubclw, ivflip , ipsd0, & @@ -21,7 +20,7 @@ module GFS_rrtmgp_setup ! --- version tag and last revision date character(40), parameter :: & - & VTAGRAD='NCEP-Radiation_driver v5.2 Jan 2013 ' + & VTAGRAD='NCEP-RRTMGP_driver v1.0 Sep 2019 ' ! & VTAGRAD='NCEP-Radiation_driver v5.1 Nov 2012 ' ! & VTAGRAD='NCEP-Radiation_driver v5.0 Aug 2012 ' @@ -36,7 +35,8 @@ module GFS_rrtmgp_setup logical :: loz1st = .true. contains - +!> \defgroup GFS_rrtmgp_setup GFS RRTMGP Scheme Setup +!! @{ !! \section arg_table_GFS_rrtmgp_setup_init !! \htmlinclude GFS_rrtmgp_setup.html !! @@ -46,7 +46,6 @@ subroutine GFS_rrtmgp_setup_init ( & icliq_sw, crick_proof, ccnorm, & imp_physics, & norad_precip, idate, iflip, & - im, aerosolslw, aerosolssw, aerodp, & ! for consistency checks me, errmsg, errflg) ! ================= subprogram documentation block ================ ! ! ! @@ -183,71 +182,38 @@ subroutine GFS_rrtmgp_setup_init ( & logical, intent(in) :: norad_precip integer, intent(in) :: idate(4) integer, intent(in) :: iflip - ! For consistency checks - integer, intent(in) :: im - real(kind_phys), intent(in) :: aerosolslw(:,:,:,:) - real(kind_phys), intent(in) :: aerosolssw(:,:,:,:) - real(kind_phys), intent(in) :: aerodp(:,:) - ! End for consistency checks integer, intent(in) :: me character(len=*), intent(out) :: errmsg integer, intent(out) :: errflg - ! For consistency checks - real(kind_phys), dimension(im,levr,NBDLW,NF_AELW) :: aerosolslw_check - real(kind_phys), dimension(im,levr,NBDSW,NF_AESW) :: aerosolssw_check - real(kind_phys), dimension(im,NSPC1) :: aerodp_check - ! End for consistency checks ! Initialize the CCPP error handling variables errmsg = '' errflg = 0 - if (is_initialized) return - ! Consistency checks for dimensions of arrays, this is required - ! to detect differences in FV3's parameters that are used to - ! dimension certain arrays and the values in ccpp-physics - if (size(aerosolslw(1,:,:,:)).ne.size(aerosolslw_check(1,:,:,:))) then - write(errmsg,"(3a,4i4,a,4i4)") & - "Runtime error: dimension mismatch for aerosolslw,", & - " check definitions of Model%levs, nbdlw, nf_aelw:", & - " expected shape ", shape(aerosolslw_check(:,:,:,:)), & - " but got ", shape(aerosolslw(:,:,:,:)) - errflg = 1 - return - end if - if (size(aerosolssw(1,:,:,:)).ne.size(aerosolssw_check(1,:,:,:))) then - write(errmsg,"(3a,4i4,a,4i4)") & - "Runtime error: dimension mismatch for aerosolssw,", & - " check definitions of Model%levs, nbdsw, nf_aesw:", & - " expected shape ", shape(aerosolssw_check(:,:,:,:)), & - " but got ", shape(aerosolssw(:,:,:,:)) - errflg = 1 - return - end if - if (size(aerodp(1,:)).ne.size(aerodp_check(1,:))) then - write(errmsg,"(3a,2i4,a,2i4)") & - "Runtime error: dimension mismatch for aerodp,", & - " check definitions of nspc1:", & - " expected shape ", shape(aerodp_check(:,:)), & - " but got ", shape(aerodp(:,:)) - errflg = 1 - return - end if - - ! End of consistency checks - - isolar = isol ! solar constant control flag - ictmflg= ictm ! data ic time/date control flag - ico2flg= ico2 ! co2 data source control flag - ioznflg= ntoz ! ozone data source control flag + ! Set radiation parameters + isolar = isol ! solar constant control flag + ictmflg = ictm ! data ic time/date control flag + ico2flg = ico2 ! co2 data source control flag + ioznflg = ntoz ! ozone data source control flag + iswcliq = icliq_sw ! optical property for liquid clouds for sw + iovrsw = iovr_sw ! cloud overlapping control flag for sw + iovrlw = iovr_lw ! cloud overlapping control flag for lw + lcrick = crick_proof ! control flag for eliminating CRICK + lcnorm = ccnorm ! control flag for in-cld condensate + lnoprec = norad_precip ! precip effect on radiation flag (ferrier microphysics) + isubcsw = isubc_sw ! sub-column cloud approx flag in sw radiation + isubclw = isubc_lw ! sub-column cloud approx flag in lw radiation + ialbflg = ialb ! surface albedo control flag + iemsflg = iems ! surface emissivity control flag + ivflip = iflip ! vertical index direction control flag if ( ictm==0 .or. ictm==-2 ) then - iaerflg = mod(iaer, 100) ! no volcanic aerosols for clim hindcast + iaerflg = mod(iaer, 100) ! no volcanic aerosols for clim hindcast else - iaerflg = mod(iaer, 1000) + iaerflg = mod(iaer, 1000) endif iaermdl = iaer/1000 ! control flag for aerosol scheme selection if ( iaermdl < 0 .or. (iaermdl>2 .and. iaermdl/=5) ) then @@ -255,64 +221,41 @@ subroutine GFS_rrtmgp_setup_init ( & stop 7777 endif -! if ( ntcw > 0 ) then - icldflg = 1 ! prognostic cloud optical prop scheme -! else -! icldflg = 0 ! no support for diag cloud opt prop scheme -! endif - - iswcliq = icliq_sw ! optical property for liquid clouds for sw - - iovrsw = iovr_sw ! cloud overlapping control flag for sw - iovrlw = iovr_lw ! cloud overlapping control flag for lw - - lcrick = crick_proof ! control flag for eliminating CRICK - lcnorm = ccnorm ! control flag for in-cld condensate - lnoprec = norad_precip ! precip effect on radiation flag (ferrier microphysics) - isubcsw = isubc_sw ! sub-column cloud approx flag in sw radiation - isubclw = isubc_lw ! sub-column cloud approx flag in lw radiation - - ialbflg= ialb ! surface albedo control flag - iemsflg= iems ! surface emissivity control flag + !if ( ntcw > 0 ) then + icldflg = 1 ! prognostic cloud optical prop scheme + !else + ! icldflg = 0 ! no support for diag cloud opt prop scheme + !endif - ivflip = iflip ! vertical index direction control flag - -! --- assign initial permutation seed for mcica cloud-radiation + ! Set initial permutation seed for mcica cloud-radiation if ( isubc_sw>0 .or. isubc_lw>0 ) then -! ipsd0 = 17*idate(1)+43*idate(2)+37*idate(3)+23*idate(4) + ipsd0 - ipsd0 = 17*idate(1)+43*idate(2)+37*idate(3)+23*idate(4) + ipsd0 = 17*idate(1)+43*idate(2)+37*idate(3)+23*idate(4) endif if ( me == 0 ) then - print *,' In rad_initialize (GFS_rrtmgp_setup_init), before calling radinit' - print *,' si =',si - print *,' levr=',levr,' ictm=',ictm,' isol=',isol,' ico2=',ico2,& - & ' iaer=',iaer,' ialb=',ialb,' iems=',iems,' ntcw=',ntcw - print *,' np3d=',num_p3d,' ntoz=',ntoz,' iovr_sw=',iovr_sw, & - & ' iovr_lw=',iovr_lw,' isubc_sw=',isubc_sw, & - & ' isubc_lw=',isubc_lw,' icliq_sw=',icliq_sw, & - & ' iflip=',iflip,' me=',me - print *,' crick_proof=',crick_proof, & - & ' ccnorm=',ccnorm,' norad_precip=',norad_precip + print *,' In rad_initialize (GFS_rrtmgp_setup_init), before calling radinit' + print *,' si =',si + print *,' levr=',levr,' ictm=',ictm,' isol=',isol,' ico2=',ico2,& + ' iaer=',iaer,' ialb=',ialb,' iems=',iems,' ntcw=',ntcw + print *,' np3d=',num_p3d,' ntoz=',ntoz,' iovr_sw=',iovr_sw, & + ' iovr_lw=',iovr_lw,' isubc_sw=',isubc_sw, & + ' isubc_lw=',isubc_lw,' icliq_sw=',icliq_sw, & + ' iflip=',iflip,' me=',me + print *,' crick_proof=',crick_proof, & + ' ccnorm=',ccnorm,' norad_precip=',norad_precip endif - call radinit & -! --- inputs: - & ( si, levr, imp_physics, me ) -! --- outputs: -! ( none ) + call radinit( si, levr, imp_physics, me ) if ( me == 0 ) then - print *,' Radiation sub-cloud initial seed =',ipsd0, & - & ' IC-idate =',idate - print *,' return from rad_initialize (GFS_rrtmgp_setup_init) - after calling radinit' + print *,' Radiation sub-cloud initial seed =',ipsd0, & + ' IC-idate =',idate + print *,' return from rad_initialize (GFS_rrtmgp_setup_init) - after calling radinit' endif -! + is_initialized = .true. -! return - - end subroutine GFS_rrtmgp_setup_init + end subroutine GFS_rrtmgp_setup_init !> \section arg_table_GFS_rrtmgp_setup_run !! \htmlinclude GFS_rrtmgp_setup.html @@ -497,8 +440,6 @@ subroutine radinit( si, NLAY, imp_physics, me ) use module_radiation_gases, only : gas_init use module_radiation_surface, only : sfc_init use module_radiation_clouds, only : cld_init - ! DH* these should be called by rrtmgp_lw_init and rrtmgp_sw_init! - use rrtmg_sw, only : rswinit implicit none @@ -585,39 +526,16 @@ subroutine radinit( si, NLAY, imp_physics, me ) endif endif -!> -# Initialization -!! - astronomy initialization routine: -!! call module_radiation_astronomy::sol_init() -!! - aerosols initialization routine: -!! call module_radiation_aerosols::aer_init() -!! - CO2 and other gases intialization routine: -!! call module_radiation_gases::gas_init() -!! - surface intialization routine: -!! call module_radiation_surface::sfc_init() -!! - cloud initialization routine: -!! call module_radiation_clouds::cld_init() -!! - LW radiation initialization routine: -!! call module_radlw_main::rlwinit() -!! - SW radiation initialization routine: -!! call module_radsw_main::rswinit() -! Initialization - - call sol_init ( me ) ! --- ... astronomy initialization routine - - call aer_init ( NLAY, me ) ! --- ... aerosols initialization routine - - call gas_init ( me ) ! --- ... co2 and other gases initialization routine - - call sfc_init ( me ) ! --- ... surface initialization routine + ! Initialization + call sol_init ( me ) ! --- ... astronomy initialization routine + call aer_init ( NLAY, me ) ! --- ... aerosols initialization routine + call gas_init ( me ) ! --- ... co2 and other gases initialization routine + call sfc_init ( me ) ! --- ... surface initialization routine call cld_init ( si, NLAY, imp_physics, me) ! --- ... cloud initialization routine - !call rlwinit ( me ) ! --- ... lw radiation initialization routine - - call rswinit ( me ) ! --- ... sw radiation initialization routine -! return -!................................... + !................................... end subroutine radinit !----------------------------------- diff --git a/physics/GFS_rrtmgp_setup.meta b/physics/GFS_rrtmgp_setup.meta index cf14c3de4..b14f3aa68 100644 --- a/physics/GFS_rrtmgp_setup.meta +++ b/physics/GFS_rrtmgp_setup.meta @@ -178,41 +178,6 @@ type = integer intent = in optional = F -[im] - standard_name = horizontal_loop_extent - long_name = horizontal loop extent - units = count - dimensions = () - type = integer - intent = in - optional = F -[aerosolssw] - standard_name = RRTMGP_aerosol_optical_properties_for_shortwave_bands_01_16 - long_name = aerosol optical properties for shortwave bands 01-16 - units = various - dimensions = (horizontal_dimension,vertical_dimension_plus_one, number_of_sw_bands_rrtmgp, number_of_aerosol_output_fields_for_shortwave_radiation) - type = real - kind = kind_phys - intent = in - optional = F -[aerosolslw] - standard_name = RRTMGP_aerosol_optical_properties_for_longwave_bands_01_16 - long_name = aerosol optical properties for longwave bands 01-16 - units = various - dimensions = (horizontal_dimension,vertical_dimension_plus_one, number_of_lw_bands_rrtmgp,number_of_aerosol_output_fields_for_longwave_radiation) - type = real - kind = kind_phys - optional = F - intent = in -[aerodp] - standard_name = atmosphere_optical_thickness_due_to_ambient_aerosol_particles - long_name = vertical integrated optical depth for various aerosol species - units = none - dimensions = (horizontal_dimension,number_of_species_for_aerosol_optical_depth) - type = real - kind = kind_phys - intent = in - optional = F [me] standard_name = mpi_rank long_name = current MPI-rank diff --git a/physics/rrtmgp_lw_cloud_optics.meta b/physics/rrtmgp_lw_cloud_optics.meta index 5a1fe99d5..53ea2bb2a 100644 --- a/physics/rrtmgp_lw_cloud_optics.meta +++ b/physics/rrtmgp_lw_cloud_optics.meta @@ -96,74 +96,74 @@ intent = in optional = F [cld_frac] - standard_name = RRTMGP_total_cloud_fraction + standard_name = total_cloud_fraction long_name = layer total cloud fraction units = frac - dimensions = (horizontal_dimension,vertical_dimension_plus_one) + dimensions = (horizontal_dimension,vertical_dimension) type = real intent = in kind = kind_phys [cld_lwp] - standard_name = RRTMGP_cloud_liquid_water_path + standard_name = cloud_liquid_water_path long_name = layer cloud liquid water path units = g m-2 - dimensions = (horizontal_dimension,vertical_dimension_plus_one) + dimensions = (horizontal_dimension,vertical_dimension) type = real intent = in kind = kind_phys [cld_reliq] - standard_name = RRTMGP_mean_effective_radius_for_liquid_cloud + standard_name = mean_effective_radius_for_liquid_cloud long_name = mean effective radius for liquid cloud units = micron - dimensions = (horizontal_dimension,vertical_dimension_plus_one) + dimensions = (horizontal_dimension,vertical_dimension) type = real intent = in kind = kind_phys [cld_iwp] - standard_name = RRTMGP_cloud_ice_water_path + standard_name = cloud_ice_water_path long_name = layer cloud ice water path units = g m-2 - dimensions = (horizontal_dimension,vertical_dimension_plus_one) + dimensions = (horizontal_dimension,vertical_dimension) type = real intent = in kind = kind_phys [cld_reice] - standard_name = RRTMGP_mean_effective_radius_for_ice_cloud + standard_name = mean_effective_radius_for_ice_cloud long_name = mean effective radius for ice cloud units = micron - dimensions = (horizontal_dimension,vertical_dimension_plus_one) + dimensions = (horizontal_dimension,vertical_dimension) type = real intent = in kind = kind_phys [cld_swp] - standard_name = RRTMGP_cloud_snow_water_path + standard_name = cloud_snow_water_path long_name = cloud snow water path units = g m-2 - dimensions = (horizontal_dimension,vertical_dimension_plus_one) + dimensions = (horizontal_dimension,vertical_dimension) type = real intent = in kind = kind_phys [cld_resnow] - standard_name = RRTMGP_mean_effective_radius_for_snow_flake + standard_name = mean_effective_radius_for_snow_flake long_name = mean effective radius for snow flake units = micron - dimensions = (horizontal_dimension,vertical_dimension_plus_one) + dimensions = (horizontal_dimension,vertical_dimension) type = real intent = in kind = kind_phys [cld_rwp] - standard_name = RRTMGP_cloud_rain_water_path + standard_name = cloud_rain_water_path long_name = cloud rain water path units = g m-2 - dimensions = (horizontal_dimension,vertical_dimension_plus_one) + dimensions = (horizontal_dimension,vertical_dimension) type = real intent = in kind = kind_phys [cld_rerain] - standard_name = RRTMGP_mean_effective_radius_for_rain_drop + standard_name = mean_effective_radius_for_rain_drop long_name = mean effective radius for rain drop units = micron - dimensions = (horizontal_dimension,vertical_dimension_plus_one) + dimensions = (horizontal_dimension,vertical_dimension) type = real intent = in kind = kind_phys @@ -187,7 +187,7 @@ standard_name = RRTMGP_aerosol_optical_properties_for_longwave_bands_01_16 long_name = aerosol optical properties for longwave bands 01-16 units = various - dimensions = (horizontal_dimension,vertical_dimension_plus_one, number_of_lw_bands_rrtmgp,number_of_aerosol_output_fields_for_longwave_radiation) + dimensions = (horizontal_dimension,vertical_dimension, number_of_lw_bands_rrtmgp,number_of_aerosol_output_fields_for_longwave_radiation) type = real kind = kind_phys intent = in @@ -196,7 +196,7 @@ standard_name = RRTMGP_cloud_optical_depth_layers_at_10mu_band long_name = approx 10mu band layer cloud optical depth units = none - dimensions = (horizontal_dimension,vertical_dimension_plus_one) + dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys intent = out diff --git a/physics/rrtmgp_lw_clrallsky_driver.F90 b/physics/rrtmgp_lw_clrallsky_driver.F90 index 2d5237916..004a3fb90 100644 --- a/physics/rrtmgp_lw_clrallsky_driver.F90 +++ b/physics/rrtmgp_lw_clrallsky_driver.F90 @@ -59,7 +59,7 @@ subroutine rrtmgp_lw_clrallsky_driver_run(Model, Radtend, ncol, lw_gas_props, p_ ! Outputs character(len=*), intent(out) :: errmsg integer, intent(out) :: errflg - real(kind_phys), dimension(ncol,model%levs), intent(out) :: & + real(kind_phys), dimension(ncol,model%levs+1), intent(out) :: & fluxlwUP_allsky, & ! All-sky flux (W/m2) fluxlwDOWN_allsky, & ! All-sky flux (W/m2) fluxlwUP_clrsky, & ! Clear-sky flux (W/m2) diff --git a/physics/rrtmgp_sw_cloud_optics.F90 b/physics/rrtmgp_sw_cloud_optics.F90 index 6efdb5f01..84911e7b6 100644 --- a/physics/rrtmgp_sw_cloud_optics.F90 +++ b/physics/rrtmgp_sw_cloud_optics.F90 @@ -456,7 +456,7 @@ subroutine rrtmgp_sw_cloud_optics_run(Model, ncol, icseed_sw, cld_frac, cld_lwp, call random_number(rng1D,rng_stat) rng3D(:,:,iCol) = reshape(source = rng1D,shape=[sw_gas_props%get_ngpt(),model%levs]) enddo - + ! Call McICA select case ( iovrsw ) ! Maximumn-random diff --git a/physics/rrtmgp_sw_cloud_optics.meta b/physics/rrtmgp_sw_cloud_optics.meta index 2b0d54a47..0e0e968ab 100644 --- a/physics/rrtmgp_sw_cloud_optics.meta +++ b/physics/rrtmgp_sw_cloud_optics.meta @@ -80,82 +80,82 @@ intent = in optional = F [cld_frac] - standard_name = RRTMGP_total_cloud_fraction + standard_name = total_cloud_fraction long_name = layer total cloud fraction units = frac - dimensions = (horizontal_dimension,vertical_dimension_plus_one) + dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys intent = in optional = F [cld_lwp] - standard_name = RRTMGP_cloud_liquid_water_path + standard_name = cloud_liquid_water_path long_name = layer cloud liquid water path units = g m-2 - dimensions = (horizontal_dimension,vertical_dimension_plus_one) + dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys intent = in optional = F [cld_reliq] - standard_name = RRTMGP_mean_effective_radius_for_liquid_cloud + standard_name = mean_effective_radius_for_liquid_cloud long_name = mean effective radius for liquid cloud units = micron - dimensions = (horizontal_dimension,vertical_dimension_plus_one) + dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys intent = in optional = F [cld_iwp] - standard_name = RRTMGP_cloud_ice_water_path + standard_name = cloud_ice_water_path long_name = layer cloud ice water path units = g m-2 - dimensions = (horizontal_dimension,vertical_dimension_plus_one) + dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys intent = in optional = F [cld_reice] - standard_name = RRTMGP_mean_effective_radius_for_ice_cloud + standard_name = mean_effective_radius_for_ice_cloud long_name = mean effective radius for ice cloud units = micron - dimensions = (horizontal_dimension,vertical_dimension_plus_one) + dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys intent = in optional = F [cld_swp] - standard_name = RRTMGP_cloud_snow_water_path + standard_name = cloud_snow_water_path long_name = layer cloud snow water path units = g m-2 - dimensions = (horizontal_dimension,vertical_dimension_plus_one) + dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys intent = in optional = F [cld_resnow] - standard_name = RRTMGP_mean_effective_radius_for_snow_flake + standard_name = mean_effective_radius_for_snow_flake long_name = mean effective radius for snow cloud units = micron - dimensions = (horizontal_dimension,vertical_dimension_plus_one) + dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys intent = in optional = F [cld_rwp] - standard_name = RRTMGP_cloud_rain_water_path + standard_name = cloud_rain_water_path long_name = layer cloud rain water path units = g m-2 - dimensions = (horizontal_dimension,vertical_dimension_plus_one) + dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys intent = in optional = F [cld_rerain] - standard_name = RRTMGP_mean_effective_radius_for_rain_drop + standard_name = mean_effective_radius_for_rain_drop long_name = mean effective radius for rain cloud units = micron - dimensions = (horizontal_dimension,vertical_dimension_plus_one) + dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys intent = in @@ -172,7 +172,7 @@ standard_name = RRTMGP_aerosol_optical_properties_for_shortwave_bands_01_16 long_name = aerosol optical properties for shortwave bands 01-16 units = various - dimensions = (horizontal_dimension,adjusted_vertical_layer_dimension_for_radiation,number_of_aerosol_bands_for_shortwave_radiation,number_of_aerosol_output_fields_for_shortwave_radiation) + dimensions = (horizontal_dimension,vertical_dimension,number_of_lw_bands_rrtmgp,number_of_aerosol_output_fields_for_shortwave_radiation) type = real kind = kind_phys intent = in @@ -237,7 +237,7 @@ standard_name = RRTMGP_cloud_optical_depth_layers_at_0_55mu_band long_name = approx .55mu band layer cloud optical depth units = none - dimensions = (horizontal_dimension,vertical_dimension_plus_one) + dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys intent = out diff --git a/physics/rrtmgp_sw_clrallsky_driver.F90 b/physics/rrtmgp_sw_clrallsky_driver.F90 index 4d284b71d..249975783 100644 --- a/physics/rrtmgp_sw_clrallsky_driver.F90 +++ b/physics/rrtmgp_sw_clrallsky_driver.F90 @@ -61,7 +61,7 @@ subroutine rrtmgp_sw_clrallsky_driver_run(Model, Radtend, ncol, sw_gas_props, p_ ! Outputs character(len=*), intent(out) :: errmsg integer, intent(out) :: errflg - real(kind_phys), dimension(ncol,Model%levs), intent(out) :: & + real(kind_phys), dimension(ncol,Model%levs+1), intent(out) :: & fluxswUP_allsky, & ! All-sky flux (W/m2) fluxswDOWN_allsky, & ! All-sky flux (W/m2) fluxswUP_clrsky, & ! Clear-sky flux (W/m2)