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

Update from emc/develop 2020/03/12 and other changes #30

2 changes: 1 addition & 1 deletion atmos_cubed_sphere
2 changes: 1 addition & 1 deletion atmos_model.F90
Original file line number Diff line number Diff line change
Expand Up @@ -1672,7 +1672,7 @@ subroutine assign_importdata(rc)
if (trim(impfield_name) == trim(fldname)) then
findex = QueryFieldList(ImportFieldsList,fldname)
if (importFieldsValid(findex) .and. IPD_control%cplwav2atm) then
!$omp parallel do default(shared) private(i,j,nb,ix)
!$omp parallel do default(shared) private(i,j,nb,ix,tem)
do j=jsc,jec
do i=isc,iec
nb = Atm_block%blkno(i,j)
Expand Down
28 changes: 22 additions & 6 deletions gfsphysics/GFS_layer/GFS_typedefs.F90
Original file line number Diff line number Diff line change
Expand Up @@ -709,7 +709,8 @@ module GFS_typedefs

!--- Thompson's microphysical parameters
logical :: ltaerosol !< flag for aerosol version
logical :: lradar !< flag for radar reflectivity
logical :: lradar !< flag for radar reflectivity
real(kind=kind_phys) :: nsradar_reset !< seconds between resetting radar reflectivity calculation
real(kind=kind_phys) :: ttendlim !< temperature tendency limiter per time step in K/s

!--- GFDL microphysical paramters
Expand Down Expand Up @@ -1785,6 +1786,7 @@ module GFS_typedefs
real (kind=kind_phys), pointer :: qss_ice(:) => null() !<
real (kind=kind_phys), pointer :: qss_land(:) => null() !<
real (kind=kind_phys), pointer :: qss_ocean(:) => null() !<
logical :: radar_reset !<
real (kind=kind_phys) :: raddt !<
real (kind=kind_phys), pointer :: rainmp(:) => null() !<
real (kind=kind_phys), pointer :: raincd(:) => null() !<
Expand Down Expand Up @@ -2781,11 +2783,11 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
real(kind=kind_phys) :: evpco = 2.0d-5 !< [in] coeff for evaporation of largescale rain
real(kind=kind_phys) :: wminco(2) = (/1.0d-5,1.0d-5/) !< [in] water and ice minimum threshold for Zhao
!---Max hourly
real(kind=kind_phys) :: avg_max_length = 3600. !< reset value in seconds for max hourly.
real(kind=kind_phys) :: avg_max_length = 3600. !< reset value in seconds for max hourly
!--- Ferrier-Aligo microphysical parameters
#ifdef CCPP
real(kind=kind_phys) :: rhgrd = 0.98 !< fer_hires microphysics only
logical :: spec_adv = .true. !< Individual cloud species advected
real(kind=kind_phys) :: rhgrd = 0.98 !< fer_hires microphysics only
logical :: spec_adv = .true. !< Individual cloud species advected
#endif
!--- M-G microphysical parameters
integer :: fprcp = 0 !< no prognostic rain and snow (MG)
Expand Down Expand Up @@ -2823,6 +2825,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
!--- Thompson microphysical parameters
logical :: ltaerosol = .false. !< flag for aerosol version
logical :: lradar = .false. !< flag for radar reflectivity
real(kind=kind_phys) :: nsradar_reset = -999.0 !< seconds between resetting radar reflectivity calculation, set to <0 for every time step
real(kind=kind_phys) :: ttendlim = -999.0 !< temperature tendency limiter, set to <0 to deactivate

!--- GFDL microphysical parameters
Expand Down Expand Up @@ -3119,7 +3122,8 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
mg_do_graupel, mg_do_hail, mg_nccons, mg_nicons, mg_ngcons, &
mg_ncnst, mg_ninst, mg_ngnst, sed_supersat, do_sb_physics, &
mg_alf, mg_qcmin, mg_do_ice_gmao, mg_do_liq_liu, &
ltaerosol, lradar, lrefres, ttendlim, lgfdlmprad, &
ltaerosol, lradar, nsradar_reset, lrefres, ttendlim, &
lgfdlmprad, &
!--- max hourly
avg_max_length, &
!--- land/surface model control
Expand Down Expand Up @@ -3408,6 +3412,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
!--- Thompson MP parameters
Model%ltaerosol = ltaerosol
Model%lradar = lradar
Model%nsradar_reset = nsradar_reset
Model%ttendlim = ttendlim
!--- F-A MP parameters
#ifdef CCPP
Expand Down Expand Up @@ -4201,7 +4206,10 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
if (Model%me == Model%master) print *,' Using Thompson double moment', &
' microphysics',' ltaerosol = ',Model%ltaerosol, &
' ttendlim =',Model%ttendlim, &
' lradar =',Model%lradar,Model%num_p3d,Model%num_p2d
' lradar =',Model%lradar, &
' nsradar_reset =',Model%nsradar_reset, &
' num_p3d =',Model%num_p3d, &
' num_p2d =',Model%num_p2d

else if (Model%imp_physics == Model%imp_physics_mg) then ! Morrison-Gettelman Microphysics
Model%npdf3d = 0
Expand Down Expand Up @@ -4473,6 +4481,7 @@ subroutine control_print(Model)
print *, ' Thompson microphysical parameters'
print *, ' ltaerosol : ', Model%ltaerosol
print *, ' lradar : ', Model%lradar
print *, ' nsradar_reset : ', Model%nsradar_reset
print *, ' lrefres : ', Model%lrefres
print *, ' ttendlim : ', Model%ttendlim
print *, ' '
Expand Down Expand Up @@ -6518,6 +6527,12 @@ subroutine interstitial_phys_reset (Interstitial, Model)
!
! Set flag for resetting maximum hourly output fields
Interstitial%reset = mod(Model%kdt-1, nint(Model%avg_max_length/Model%dtp)) == 0
! Set flag for resetting radar reflectivity calculation
if (Interstitial%radar_reset<0) then
Interstitial%radar_reset = .true.
else
Interstitial%radar_reset = mod(Model%kdt-1, nint(Model%nsradar_reset/Model%dtp)) == 0
end if
!
end subroutine interstitial_phys_reset

Expand Down Expand Up @@ -6705,6 +6720,7 @@ subroutine interstitial_print(Interstitial, Model, mpirank, omprank, blkno)
write (0,*) 'sum(Interstitial%qss_ice ) = ', sum(Interstitial%qss_ice )
write (0,*) 'sum(Interstitial%qss_land ) = ', sum(Interstitial%qss_land )
write (0,*) 'sum(Interstitial%qss_ocean ) = ', sum(Interstitial%qss_ocean )
write (0,*) 'Interstitial%radar_reset = ', Interstitial%radar_reset
write (0,*) 'Interstitial%raddt = ', Interstitial%raddt
write (0,*) 'sum(Interstitial%raincd ) = ', sum(Interstitial%raincd )
write (0,*) 'sum(Interstitial%raincs ) = ', sum(Interstitial%raincs )
Expand Down
6 changes: 6 additions & 0 deletions gfsphysics/GFS_layer/GFS_typedefs.meta
Original file line number Diff line number Diff line change
Expand Up @@ -7565,6 +7565,12 @@
dimensions = (horizontal_dimension)
type = real
kind = kind_phys
[radar_reset]
standard_name = flag_for_resetting_radar_reflectivity_calculation
long_name = flag for resetting radar reflectivity calculation
units = flag
dimensions = ()
type = logical
[raddt]
standard_name = time_step_for_radiation
long_name = radiation time step
Expand Down