Skip to content

Commit

Permalink
add vars to meta table
Browse files Browse the repository at this point in the history
  • Loading branch information
mzhangw committed Sep 11, 2019
1 parent d749a68 commit 08662ae
Show file tree
Hide file tree
Showing 3 changed files with 100 additions and 6 deletions.
16 changes: 16 additions & 0 deletions physics/GFS_PBL_generic.meta
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,14 @@
type = integer
intent = in
optional = F
[nqrimef]
standard_name = index_for_mass_weighted_rime_factor
long_name = tracer index for mass weighted rime factor
units = index
dimensions = ()
type = integer
intent = in
optional = F
[trans_aero]
standard_name = flag_for_aerosol_convective_transport_and_PBL_diffusion
long_name = flag for aerosol convective transport and PBL diffusion
Expand Down Expand Up @@ -233,6 +241,14 @@
type = integer
intent = in
optional = F
[imp_physics_fer_hires]
standard_name = flag_for_fer_hires_microphysics_scheme
long_name = choice of Ferrier-Aligo microphysics scheme
units = flag
dimensions = ()
type = integer
intent = in
optional = F
[cplchm]
standard_name = flag_for_chemistry_coupling
long_name = flag controlling cplchm collection (default off)
Expand Down
46 changes: 40 additions & 6 deletions physics/GFS_suite_interstitial.F90
Original file line number Diff line number Diff line change
Expand Up @@ -14,21 +14,22 @@ end subroutine GFS_suite_interstitial_rad_reset_finalize
!> \section arg_table_GFS_suite_interstitial_rad_reset_run Argument Table
!! \htmlinclude GFS_suite_interstitial_rad_reset_run.html
!!
subroutine GFS_suite_interstitial_rad_reset_run (Interstitial, errmsg, errflg)
subroutine GFS_suite_interstitial_rad_reset_run (Interstitial, Model, errmsg, errflg)

use GFS_typedefs, only: GFS_interstitial_type
use GFS_typedefs, only: GFS_control_type,GFS_interstitial_type

implicit none

! interface variables
type(GFS_interstitial_type), intent(inout) :: Interstitial
type(GFS_control_type), intent(in) :: Model
character(len=*), intent(out) :: errmsg
integer, intent(out) :: errflg

errmsg = ''
errflg = 0

call Interstitial%rad_reset()
call Interstitial%rad_reset(Model)

end subroutine GFS_suite_interstitial_rad_reset_run

Expand Down Expand Up @@ -620,8 +621,8 @@ end subroutine GFS_suite_interstitial_4_finalize
!!
subroutine GFS_suite_interstitial_4_run (im, levs, ltaerosol, lgocart, cplchm, tracers_total, ntrac, ntcw, ntiw, ntclamt, &
ntrw, ntsw, ntrnc, ntsnc, ntgl, ntgnc, ntlnc, ntinc, nn, imp_physics, imp_physics_gfdl, imp_physics_thompson, &
imp_physics_zhao_carr, imp_physics_zhao_carr_pdf, dtf, save_qc, save_qi, con_pi, &
gq0, clw, dqdti, errmsg, errflg)
imp_physics_zhao_carr, imp_physics_zhao_carr_pdf,imp_physics_fer_hires, dtf, save_qc, save_qi, con_pi, epsq &
gq0, clw, cwm, f_ice, f_rain, dqdti, errmsg, errflg)

use machine, only: kind_phys

Expand All @@ -635,13 +636,16 @@ subroutine GFS_suite_interstitial_4_run (im, levs, ltaerosol, lgocart, cplchm, t

logical, intent(in) :: ltaerosol, lgocart, cplchm

real(kind=kind_phys), intent(in) :: con_pi, dtf
real(kind=kind_phys), intent(in) :: con_pi, dtf, epsq
real(kind=kind_phys), dimension(im,levs), intent(in) :: save_qc
! save_qi is not allocated for Zhao-Carr MP
real(kind=kind_phys), dimension(:, :), intent(in) :: save_qi

real(kind=kind_phys), dimension(im,levs,ntrac), intent(inout) :: gq0
real(kind=kind_phys), dimension(im,levs,nn), intent(inout) :: clw
real(kind=kind_phys), dimension(im,levs), intent(inout) :: cwm
real(kind=kind_phys), dimension(im,levs), intent(inout) :: f_ice
real(kind=kind_phys), dimension(im,levs), intent(inout) :: f_rain
! dqdti may not be allocated
real(kind=kind_phys), dimension(:,:), intent(inout) :: dqdti

Expand Down Expand Up @@ -713,6 +717,36 @@ subroutine GFS_suite_interstitial_4_run (im, levs, ltaerosol, lgocart, cplchm, t
enddo
endif
endif

!MZ
if (imp_physics == imp_physics_fer_hires) then
!MZ: Update CWM,F_ICE,F_RAIN arrays from separate species advection (spec_adv=T)
DO K=1,levs
DO I=1,IM
CWM(I,K)= max(0.0,gq0(i,k,ntcw))+max(0.0,gq0(i,k,ntiw)) &
+max(0.0,gq0(i,k,ntrw))
IF (gq0(I,K,ntiw)>EPSQ) THEN
F_ICE(I,K)=gq0(I,K,ntiw)/CWM(I,K)
ELSE
F_ICE(I,K)=0.0
ENDIF
IF (gq0(I,K,ntrw)>EPSQ) THEN
F_RAIN(I,K)=gq0(I,K,ntrw)/(gq0(I,K,ntcw)+gq0(I,K,ntrw))
ELSE
F_RAIN(I,K)=0.
ENDIF
ENDDO
ENDDO
!if(mpirank == mpiroot) write (0,*)'interstitial_4: cwm =', &
! maxval(cwm),minval(cwm)
!if(mpirank == mpiroot) write (0,*)'interstitial_4: f_ice =', &
! maxval(f_ice),minval(f_ice)
!if(mpirank == mpiroot) write (0,*)'interstitial_4: f_rain =', &
! maxval(f_rain),minval(f_rain)

endif

!MZ
else
do k=1,levs
do i=1,im
Expand Down
44 changes: 44 additions & 0 deletions physics/GFS_suite_interstitial.meta
Original file line number Diff line number Diff line change
Expand Up @@ -1553,6 +1553,41 @@
type = integer
intent = in
optional = F
[imp_physics_fer_hires]
standard_name = flag_for_fer_hires_microphysics_scheme
long_name = choice of Ferrier-Aligo microphysics scheme
units = flag
dimensions = ()
type = integer
intent = in
optional = F
[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
intent = inout
optional = F
[f_ice]
standard_name = fraction_of_ice_water_cloud
long_name = fraction of ice water cloud
units = frac
dimensions = (horizontal_dimension,vertical_dimension)
type = real
kind = kind_phys
intent = inout
optional = F
[f_rain]
standard_name = fraction_of_rain_water_cloud
long_name = fraction of rain water cloud
units = frac
dimensions = (horizontal_dimension,vertical_dimension)
type = real
kind = kind_phys
intent = inout
optional = F
[dtf]
standard_name = time_step_for_dynamics
long_name = dynamics timestep
Expand Down Expand Up @@ -1589,6 +1624,15 @@
kind = kind_phys
intent = in
optional = F
[epsq]
standard_name = minimum_value_of_specific_humidity
long_name = floor value for specific humidity
units = kg kg-1
dimensions = ()
type = real
kind = kind_phys
intent = in
optional = F
[gq0]
standard_name = tracer_concentration_updated_by_physics
long_name = tracer concentration updated by physics
Expand Down

0 comments on commit 08662ae

Please sign in to comment.