Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Accumulated cleanup #956

Merged
merged 38 commits into from
Feb 8, 2023
Merged
Show file tree
Hide file tree
Changes from 21 commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
7271136
Issue 886
dustinswales Aug 11, 2022
8329e07
Issue 764
dustinswales Aug 11, 2022
a282821
Issue 672
dustinswales Aug 11, 2022
7c37906
Cleanup to radiation_aerosols. Related to #923. Made changes to made …
dustinswales Aug 12, 2022
11f1ef0
Remove dependency on physcons and physparam in radiation_aerosols.f. …
dustinswales Aug 15, 2022
063e15d
bug fix in argument list.
dustinswales Aug 15, 2022
225f5b5
Remove dependency on physcons and physparam in radiation_astronomy.f.…
dustinswales Aug 15, 2022
da57e02
Replaced stop statements with ccpp error handling
dustinswales Aug 15, 2022
1dbed67
Replaced all remaing stop statements with ccpp error handling.
dustinswales Aug 16, 2022
1d907a2
Merge branch 'main' of https://github.com/NCAR/ccpp-physics into HEAD
dustinswales Aug 16, 2022
e02f1dd
Bug fix in html include location.
dustinswales Aug 16, 2022
f885b9c
Remove dependency on physcons and physparam in radiation_surface.f. …
dustinswales Aug 17, 2022
9f9ed2a
Remove dependency on physcons and physparam in radiation_gases.f. Pro…
dustinswales Aug 17, 2022
c0d2d20
Remove dependency on physparam in radlw_main/radsw_main.F90. Provided…
dustinswales Aug 18, 2022
98cf6d2
Adios physparam.f
dustinswales Aug 18, 2022
1d8998d
Revert change to CMakeLists.txt
dustinswales Aug 31, 2022
82bcd67
Omission from previous commit
dustinswales Sep 6, 2022
2f9e604
Adress reviewers comments
dustinswales Sep 7, 2022
0650bae
Fix bug in metadata.
Sep 12, 2022
2fe654e
Address reviewers comments. Bug found in seeding for cloud-sampling i…
Sep 21, 2022
3b3ecf2
Merge branch 'main' of https://github.com/NCAR/ccpp-physics into HEAD
Sep 21, 2022
51b9243
Update CODEOWNERS file
Sep 22, 2022
f5ca603
Update CODEOWNERS
Sep 22, 2022
d0e5b30
Merge pull request #19 from dustinswales/update_codeowners
Sep 22, 2022
62079c1
Merge branch 'main' of https://github.com/NCAR/ccpp-physics into HEAD
Oct 3, 2022
d0d7d50
Update CODEOWNERS
dustinswales Oct 17, 2022
297cf32
Merge branch 'main' of https://github.com/NCAR/ccpp-physics into HEAD
Oct 27, 2022
469ef08
Update CODEOWNERS
Oct 27, 2022
6d74eaf
Changes to metadata to accommodate standard_name rules.
Oct 27, 2022
e7fdd76
Merge branch 'main' of https://github.com/NCAR/ccpp-physics into HEAD
Nov 2, 2022
4900b30
Omission from previous commit.
Nov 2, 2022
f21b760
Merge branch 'main' of https://github.com/NCAR/ccpp-physics into HEAD
Nov 22, 2022
786cd20
Omission from previous commit
Nov 22, 2022
fb6fdb9
Move declaration to init.
Nov 22, 2022
b855d2b
Merge branch 'main' of https://github.com/NCAR/ccpp-physics into HEAD
Dec 19, 2022
d083f87
Bugfox in argument list
Dec 20, 2022
ae82e1a
Merge branch 'main' of https://github.com/NCAR/ccpp-physics into HEAD
dustinswales Jan 18, 2023
0f687f8
Merge branch 'main' of https://github.com/NCAR/ccpp-physics into HEAD
Jan 31, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
80 changes: 39 additions & 41 deletions physics/GFS_cloud_diagnostics.F90
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@

module GFS_cloud_diagnostics
use machine, only: kind_phys
use physparam, only: icldflg
use module_radiation_clouds, only: gethml

! Module parameters (imported directly from radiation_cloud.f)
Expand All @@ -19,10 +18,6 @@ module GFS_cloud_diagnostics

! Version tag and last revision date
character(40), parameter :: VTAGCLD='UFS-cloud-diagnostics vX.x May 2020 '

! Module variables
integer :: &
llyr = 2 ! Upper limit of boundary layer clouds

public GFS_cloud_diagnostics_run

Expand All @@ -36,51 +31,54 @@ module GFS_cloud_diagnostics
!> \section arg_table_GFS_cloud_diagnostics_run
!! \htmlinclude GFS_cloud_diagnostics_run.html
!!
subroutine GFS_cloud_diagnostics_run(nCol, nLev, iovr_rand, iovr_maxrand, iovr_max, &
iovr_dcorr, iovr_exp, iovr_exprand, lsswr, lslwr, lat, de_lgth, p_lay, &
subroutine GFS_cloud_diagnostics_run(nCol, nLev, iovr, iovr_rand, iovr_maxrand, &
iovr_max, iovr_dcorr, iovr_exp, iovr_exprand, lsswr, lslwr, lat, de_lgth, p_lay, &
cld_frac, p_lev, deltaZ, cloud_overlap_param, precip_overlap_param, con_pi, &
mtopa, mbota, cldsa, errmsg, errflg)
top_at_1, si, mtopa, mbota, cldsa, errmsg, errflg)
implicit none

! Inputs
integer, intent(in) :: &
nCol, & ! Number of horizontal grid-points
nLev ! Number of vertical-layers
integer, intent(in) :: &
iovr_rand, & ! Flag for random cloud overlap method
iovr_maxrand, & ! Flag for maximum-random cloud overlap method
iovr_max, & ! Flag for maximum cloud overlap method
iovr_dcorr, & ! Flag for decorrelation-length cloud overlap method
iovr_exp, & ! Flag for exponential cloud overlap method
iovr_exprand ! Flag for exponential-random cloud overlap method
logical, intent(in) :: &
lsswr, & ! Call SW radiation?
lslwr ! Call LW radiation
real(kind_phys), intent(in) :: &
con_pi ! Physical constant: pi
integer, intent(in) :: &
nCol, & ! Number of horizontal grid-points
nLev ! Number of vertical-layers
integer, intent(in) :: &
iovr, & ! Choice of cloud-overlap method
iovr_rand, & ! Flag for random cloud overlap method
iovr_maxrand, & ! Flag for maximum-random cloud overlap method
iovr_max, & ! Flag for maximum cloud overlap method
iovr_dcorr, & ! Flag for decorrelation-length cloud overlap method
iovr_exp, & ! Flag for exponential cloud overlap method
iovr_exprand ! Flag for exponential-random cloud overlap method
logical, intent(in) :: &
lsswr, & ! Call SW radiation?
lslwr, & ! Call LW radiation?
top_at_1 ! Vertical ordering flag
real(kind_phys), intent(in) :: &
con_pi ! Physical constant: pi
real(kind_phys), dimension(:), intent(in) :: &
lat, & ! Latitude
de_lgth ! Decorrelation length
lat, & ! Latitude
de_lgth, & ! Decorrelation length
si ! Vertical sigma coordinate
real(kind_phys), dimension(:,:), intent(in) :: &
p_lay, & ! Pressure at model-layer
cld_frac ! Total cloud fraction
p_lay, & ! Pressure at model-layer
cld_frac ! Total cloud fraction
real(kind_phys), dimension(:,:), intent(in) :: &
p_lev ! Pressure at model interfaces
p_lev ! Pressure at model interfaces
real(kind_phys), dimension(:,:), intent(in) :: &
deltaZ, & ! Layer thickness (m)
cloud_overlap_param, & ! Cloud-overlap parameter
precip_overlap_param ! Precipitation overlap parameter
deltaZ, & ! Layer thickness (m)
cloud_overlap_param, & ! Cloud-overlap parameter
precip_overlap_param ! Precipitation overlap parameter

! Outputs
character(len=*), intent(out) :: &
errmsg ! Error message
integer, intent(out) :: &
errflg ! Error flag
integer,dimension(:,:),intent(out) :: &
mbota, & ! Vertical indices for cloud tops
mtopa ! Vertical indices for cloud bases
character(len=*), intent(out) :: &
errmsg ! Error message
integer, intent(out) :: &
errflg ! Error flag
integer,dimension(:,:),intent(out) :: &
mbota, & ! Vertical indices for cloud tops
mtopa ! Vertical indices for cloud bases
real(kind_phys),dimension(:,:), intent(out) :: &
cldsa ! Fraction of clouds for low, middle, high, total and BL
cldsa ! Fraction of clouds for low, middle, high, total and BL

! Local variables
integer i,id,iCol,iLay,icld
Expand Down Expand Up @@ -111,8 +109,8 @@ subroutine GFS_cloud_diagnostics_run(nCol, nLev, iovr_rand, iovr_maxrand, iovr_m
! defined by ptopc. The cloud overlapping method is defined by control flag 'iovr', which may
! be different for lw and sw radiation programs.
call gethml(p_lay*0.01, ptop1, cld_frac, cldcnv, deltaZ, de_lgth, cloud_overlap_param,&
nCol, nLev, iovr_rand, iovr_maxrand, iovr_max, iovr_dcorr, iovr_exp, &
iovr_exprand, cldsa, mtopa, mbota)
nCol, nLev, iovr, iovr_rand, iovr_maxrand, iovr_max, iovr_dcorr, iovr_exp, &
iovr_exprand, top_at_1, si, cldsa, mtopa, mbota)

end subroutine GFS_cloud_diagnostics_run
!> @}
Expand Down
23 changes: 23 additions & 0 deletions physics/GFS_cloud_diagnostics.meta
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
[ccpp-table-properties]
name = GFS_cloud_diagnostics
type = scheme
dependencies = machine.F,radiation_clouds.f

########################################################################
[ccpp-arg-table]
Expand All @@ -20,6 +21,13 @@
dimensions = ()
type = integer
intent = in
[iovr]
standard_name = flag_for_cloud_overlap_method_for_radiation
long_name = max-random overlap clouds
units = flag
dimensions = ()
type = integer
intent = in
[iovr_rand]
standard_name = flag_for_random_cloud_overlap_method
long_name = choice of random cloud overlap method
Expand Down Expand Up @@ -148,6 +156,21 @@
type = real
kind = kind_phys
intent = in
[top_at_1]
standard_name = flag_for_vertical_ordering_in_radiation
long_name = flag for vertical ordering in radiation
units = flag
dimensions = ()
type = logical
intent = in
[si]
standard_name = sigma_pressure_hybrid_vertical_coordinate
long_name = vertical sigma coordinate for radiation initialization
units = none
dimensions = (vertical_interface_dimension)
type = real
kind = kind_phys
intent = in
[mtopa]
standard_name = model_layer_number_at_cloud_top
long_name = vertical indices for low, middle and high cloud tops
Expand Down
14 changes: 7 additions & 7 deletions physics/GFS_phys_time_vary.fv3.F90
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@ module GFS_phys_time_vary
!--- variables needed for calculating 'sncovr'
use namelist_soilveg, only: salp_data, snupx
use set_soilveg_mod, only: set_soilveg
use physparam, only : iaermdl

! --- needed for Noah MP init
use noahmp_tables, only: laim_table,saim_table,sla_table, &
Expand Down Expand Up @@ -67,7 +66,7 @@ module GFS_phys_time_vary
!>\section gen_GFS_phys_time_vary_init GFS_phys_time_vary_init General Algorithm
!> @{
subroutine GFS_phys_time_vary_init ( &
me, master, ntoz, h2o_phys, iaerclm, iccn, iflip, im, levs, &
me, master, ntoz, h2o_phys, iaerclm, iccn, iaermdl, iflip, im, levs, &
nx, ny, idate, xlat_d, xlon_d, &
jindx1_o3, jindx2_o3, ddy_o3, ozpl, jindx1_h, jindx2_h, ddy_h, h2opl,fhour, &
jindx1_aer, jindx2_aer, ddy_aer, iindx1_aer, iindx2_aer, ddx_aer, aer_nm, &
Expand All @@ -86,7 +85,7 @@ subroutine GFS_phys_time_vary_init (
implicit none

! Interface variables
integer, intent(in) :: me, master, ntoz, iccn, iflip, im, nx, ny, levs
integer, intent(in) :: me, master, ntoz, iccn, iflip, im, nx, ny, levs, iaermdl
logical, intent(in) :: h2o_phys, iaerclm, lsm_cold_start
integer, intent(in) :: idate(:)
real(kind_phys), intent(in) :: fhour
Expand Down Expand Up @@ -288,7 +287,7 @@ subroutine GFS_phys_time_vary_init (

!$OMP section
!> - Initialize soil vegetation (needed for sncovr calculation further down)
call set_soilveg(me, isot, ivegsrc, nlunit)
call set_soilveg(me, isot, ivegsrc, nlunit, errmsg, errflg)

!$OMP end sections

Expand Down Expand Up @@ -712,7 +711,7 @@ subroutine GFS_phys_time_vary_timestep_init (
imfdeepcnv, cal_pre, random_clds, nscyc, ntoz, h2o_phys, iaerclm, iccn, clstp, &
jindx1_o3, jindx2_o3, ddy_o3, ozpl, jindx1_h, jindx2_h, ddy_h, h2opl, iflip, &
jindx1_aer, jindx2_aer, ddy_aer, iindx1_aer, iindx2_aer, ddx_aer, aer_nm, &
jindx1_ci, jindx2_ci, ddy_ci, iindx1_ci, iindx2_ci, ddx_ci, in_nm, ccn_nm, &
jindx1_ci, jindx2_ci, ddy_ci, iindx1_ci, iindx2_ci, ddx_ci, in_nm, ccn_nm, fn_nml, &
imap, jmap, prsl, seed0, rann, nthrds, nx, ny, nsst, tile_num, nlunit, lsoil, lsoil_lsm,&
kice, ialb, isot, ivegsrc, input_nml_file, use_ufo, nst_anl, frac_grid, fhcyc, phour, &
lakefrac, min_seaice, min_lakeice, smc, slc, stc, smois, sh2o, tslb, tiice, tg3, tref, &
Expand Down Expand Up @@ -753,6 +752,7 @@ subroutine GFS_phys_time_vary_timestep_init (
integer, intent(in) :: nthrds, nx, ny, nsst, tile_num, nlunit, lsoil
integer, intent(in) :: lsoil_lsm, kice, ialb, isot, ivegsrc
character(len=*), intent(in) :: input_nml_file(:)
character(len=*), intent(in) :: fn_nml
logical, intent(in) :: use_ufo, nst_anl, frac_grid
real(kind_phys), intent(in) :: fhcyc, phour, lakefrac(:), min_seaice, min_lakeice, &
xlat_d(:), xlon_d(:), landfrac(:)
Expand Down Expand Up @@ -893,14 +893,14 @@ subroutine GFS_phys_time_vary_timestep_init (
!> - Call gcycle() to repopulate specific time-varying surface properties for AMIP/forecast runs
if (nscyc > 0) then
if (mod(kdt,nscyc) == 1) THEN
call gcycle (me, nthrds, nx, ny, isc, jsc, nsst, tile_num, nlunit, &
call gcycle (me, nthrds, nx, ny, isc, jsc, nsst, tile_num, nlunit, fn_nml, &
input_nml_file, lsoil, lsoil_lsm, kice, idate, ialb, isot, ivegsrc, &
use_ufo, nst_anl, fhcyc, phour, landfrac, lakefrac, min_seaice, min_lakeice,&
frac_grid, smc, slc, stc, smois, sh2o, tslb, tiice, tg3, tref, tsfc, &
tsfco, tisfc, hice, fice, facsf, facwf, alvsf, alvwf, alnsf, alnwf, &
zorli, zorll, zorlo, weasd, slope, snoalb, canopy, vfrac, vtype, &
stype, shdmin, shdmax, snowd, cv, cvb, cvt, oro, oro_uf, &
xlat_d, xlon_d, slmsk, imap, jmap)
xlat_d, xlon_d, slmsk, imap, jmap, errmsg, errflg)
endif
endif

Expand Down
15 changes: 15 additions & 0 deletions physics/GFS_phys_time_vary.fv3.meta
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,13 @@
dimensions = ()
type = logical
intent = in
[iaermdl]
standard_name = flag_for_aerosol_radiation_scheme
long_name = flag for aerosol scheme to use in radiation
units = flag
dimensions = ()
type = integer
intent = in
[iccn]
standard_name = control_for_ice_cloud_condensation_nuclei_forcing
long_name = flag for IN and CCN forcing for morrison gettelman microphysics
Expand Down Expand Up @@ -1285,6 +1292,14 @@
type = real
kind = kind_phys
intent = inout
[fn_nml]
standard_name = filename_of_namelist
long_name = namelist filename
units = none
dimensions = ()
type = character
kind = len=*
intent = in
[imap]
standard_name = map_of_block_column_number_to_global_i_index
long_name = map of local index ix to global index i for this block
Expand Down
2 changes: 1 addition & 1 deletion physics/GFS_phys_time_vary.scm.F90
Original file line number Diff line number Diff line change
Expand Up @@ -264,7 +264,7 @@ subroutine GFS_phys_time_vary_init (
endif

!> - Initialize soil vegetation (needed for sncovr calculation further down)
call set_soilveg(me, isot, ivegsrc, nlunit)
call set_soilveg(me, isot, ivegsrc, nlunit, errmsg, errflg)

!> - Call setindxoz() to initialize ozone data
if (ntoz > 0) then
Expand Down
8 changes: 4 additions & 4 deletions physics/GFS_rad_time_vary.fv3.F90
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,10 @@ module GFS_rad_time_vary
!!
subroutine GFS_rad_time_vary_timestep_init (lrseeds, rseeds, &
lslwr, lsswr, isubc_lw, isubc_sw, icsdsw, icsdlw, cnx, cny, isc, jsc, &
imap, jmap, sec, kdt, imp_physics, imp_physics_zhao_carr, ps_2delt, &
ps_1delt, t_2delt, t_1delt, qv_2delt, qv_1delt, t, qv, ps, errmsg, errflg)
imap, jmap, sec, kdt, imp_physics, imp_physics_zhao_carr, ipsd0, ipsdlim,&
ps_2delt, ps_1delt, t_2delt, t_1delt, qv_2delt, qv_1delt, t, qv, ps, &
errmsg, errflg)

use physparam, only: ipsd0, ipsdlim, iaerflg
use mersenne_twister, only: random_setseed, random_index, random_stat
use machine, only: kind_phys
use radcons, only: qmin, con_100
Expand All @@ -32,7 +32,7 @@ subroutine GFS_rad_time_vary_timestep_init (lrseeds, rseeds,
logical, intent(in) :: lrseeds
integer, intent(in) :: rseeds(:,:)
integer, intent(in) :: isubc_lw, isubc_sw, cnx, cny, isc, jsc, kdt
integer, intent(in) :: imp_physics, imp_physics_zhao_carr
integer, intent(in) :: imp_physics, imp_physics_zhao_carr, ipsd0, ipsdlim
logical, intent(in) :: lslwr, lsswr
integer, intent(inout) :: icsdsw(:), icsdlw(:)
integer, intent(in) :: imap(:), jmap(:)
Expand Down
16 changes: 15 additions & 1 deletion physics/GFS_rad_time_vary.fv3.meta
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[ccpp-table-properties]
name = GFS_rad_time_vary
type = scheme
dependencies = machine.F,mersenne_twister.f,physparam.f,radcons.f90
dependencies = machine.F,mersenne_twister.f,radcons.f90

########################################################################
[ccpp-arg-table]
Expand Down Expand Up @@ -134,6 +134,20 @@
dimensions = ()
type = integer
intent = in
[ipsd0]
standard_name = initial_seed_for_mcica
long_name = initial permutaion seed for mcica radiation
units = none
dimensions = ()
type = integer
intent = in
[ipsdlim]
standard_name = limit_for_initial_seed_for_mcica
long_name = limit for initial permutaion seed for mcica radiation
units = none
dimensions = ()
type = integer
intent = in
[ps_2delt]
standard_name = surface_air_pressure_two_timesteps_back
long_name = surface air pressure two timesteps back
Expand Down
8 changes: 4 additions & 4 deletions physics/GFS_rad_time_vary.scm.F90
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,10 @@ module GFS_rad_time_vary
!!
subroutine GFS_rad_time_vary_timestep_init (lrseeds, rseeds, &
lslwr, lsswr, isubc_lw, isubc_sw, icsdsw, icsdlw, cnx, cny, isc, jsc, &
imap, jmap, sec, kdt, imp_physics, imp_physics_zhao_carr, ps_2delt, &
ps_1delt, t_2delt, t_1delt, qv_2delt, qv_1delt, t, qv, ps, errmsg, errflg)
imap, jmap, sec, kdt, imp_physics, imp_physics_zhao_carr, ipsd0, ipsdlim,&
ps_2delt, ps_1delt, t_2delt, t_1delt, qv_2delt, qv_1delt, t, qv, ps, &
errmsg, errflg)

use physparam, only: ipsd0, ipsdlim, iaerflg
use mersenne_twister, only: random_setseed, random_index, random_stat
use machine, only: kind_phys
use radcons, only: qmin, con_100
Expand All @@ -32,7 +32,7 @@ subroutine GFS_rad_time_vary_timestep_init (lrseeds, rseeds,
logical, intent(in) :: lrseeds
integer, intent(in) :: rseeds(:,:)
integer, intent(in) :: isubc_lw, isubc_sw, cnx, cny, isc, jsc, kdt
integer, intent(in) :: imp_physics, imp_physics_zhao_carr
integer, intent(in) :: imp_physics, imp_physics_zhao_carr, ipsd0, ipsdlim
logical, intent(in) :: lslwr, lsswr
integer, intent(inout) :: icsdsw(:), icsdlw(:)
integer, intent(in) :: imap(:), jmap(:)
Expand Down
16 changes: 15 additions & 1 deletion physics/GFS_rad_time_vary.scm.meta
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[ccpp-table-properties]
name = GFS_rad_time_vary
type = scheme
dependencies = machine.F,mersenne_twister.f,physparam.f,radcons.f90
dependencies = machine.F,mersenne_twister.f,radcons.f90

########################################################################
[ccpp-arg-table]
Expand Down Expand Up @@ -134,6 +134,20 @@
dimensions = ()
type = integer
intent = in
[ipsd0]
standard_name = initial_seed_for_mcica
long_name = initial permutaion seed for mcica radiation
units = none
dimensions = ()
type = integer
intent = in
[ipsdlim]
standard_name = limit_for_initial_seed_for_mcica
long_name = limit for initial permutaion seed for mcica radiation
units = none
dimensions = ()
type = integer
intent = in
[ps_2delt]
standard_name = surface_air_pressure_two_timesteps_back
long_name = surface air pressure two timesteps back
Expand Down
Loading