Skip to content

Commit

Permalink
Merge branch 'chunxi_physics' of https://github.com/ChunxiZhang-NOAA/…
Browse files Browse the repository at this point in the history
…ccpp-physics into HAFS_fer_hires
  • Loading branch information
mzhangw committed Aug 30, 2019
2 parents 1426c6e + c7faeb7 commit 3a26975
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 15 deletions.
5 changes: 3 additions & 2 deletions physics/GFS_MP_generic.F90
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,7 @@ end subroutine GFS_MP_generic_post_init
!! | imp_physics_gfdl | flag_for_gfdl_microphysics_scheme | choice of GFDL microphysics scheme | flag | 0 | integer | | in | F |
!! | imp_physics_thompson | flag_for_thompson_microphysics_scheme | choice of Thompson microphysics scheme | flag | 0 | integer | | in | F |
!! | imp_physics_mg | flag_for_morrison_gettelman_microphysics_scheme | choice of Morrison-Gettelman microphysics scheme | flag | 0 | integer | | in | F |
!! | imp_physics_fer_hires | flag_for_fer_hires_microphysics_scheme | choice of Ferrier-Aligo microphysics scheme | flag | 0 | integer | | in | F |
!! | cal_pre | flag_for_precipitation_type_algorithm | flag controls precip type algorithm | flag | 0 | logical | | in | F |
!! | lssav | flag_diagnostics | logical flag for storing diagnostics | flag | 0 | logical | | in | F |
!! | ldiag3d | flag_diagnostics_3D | flag for 3d diagnostic fields | flag | 0 | logical | | in | F |
Expand Down Expand Up @@ -177,7 +178,7 @@ end subroutine GFS_MP_generic_post_init
!> \section gfs_mp_gen GFS MP Generic Post General Algorithm
!> @{
subroutine GFS_MP_generic_post_run(im, ix, levs, kdt, nrcm, ncld, nncl, ntcw, ntrac, imp_physics, imp_physics_gfdl, &
imp_physics_thompson, imp_physics_mg, cal_pre, lssav, ldiag3d, cplflx, cplchm, con_g, dtf, frain, rainc, rain1, &
imp_physics_thompson, imp_physics_mg, imp_physics_fer_hires, cal_pre, lssav, ldiag3d, cplflx, cplchm, con_g, dtf, frain, rainc, rain1, &
rann, xlat, xlon, gt0, gq0, prsl, prsi, phii, tsfc, ice, snow, graupel, save_t, save_qv, rain0, ice0, snow0, &
graupel0, del, rain, domr_diag, domzr_diag, domip_diag, doms_diag, tprcp, srflag, sr, cnvprcp, totprcp, totice, &
totsnw, totgrp, cnvprcpb, totprcpb, toticeb, totsnwb, totgrpb, dt3dt, dq3dt, rain_cpl, rainc_cpl, snow_cpl, pwat, &
Expand All @@ -189,7 +190,7 @@ subroutine GFS_MP_generic_post_run(im, ix, levs, kdt, nrcm, ncld, nncl, ntcw, nt
implicit none

integer, intent(in) :: im, ix, levs, kdt, nrcm, ncld, nncl, ntcw, ntrac
integer, intent(in) :: imp_physics, imp_physics_gfdl, imp_physics_thompson, imp_physics_mg
integer, intent(in) :: imp_physics, imp_physics_gfdl, imp_physics_thompson, imp_physics_mg, imp_physics_fer_hires
logical, intent(in) :: cal_pre, lssav, ldiag3d, cplflx, cplchm

real(kind=kind_phys), intent(in) :: dtf, frain, con_g
Expand Down
4 changes: 2 additions & 2 deletions physics/module_mp_fer_hires_pre.F90
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@ end subroutine mp_fer_hires_pre_finalize
!! | local_name | standard_name | long_name | units | rank | type | kind | intent | optional |
!! |----------------|-------------------------------------------------------|--------------------------------------------------------------------------------------------|---------|------|-----------|-----------|--------|----------|
!! | cwm | total_cloud_condensate_mixing_ratio_updated_by_physics| total cloud condensate mixing ratio (except water vapor) updated by physics | kg kg-1 | 2 | real | kind_phys | inout | F |
!! | f_ice | mass_fraction_of_ice_water_cloud | mass fraction of ice water cloud | frac | 2 | real | kind_phys | inout | F |
!! | f_rain | mass_fraction_of_rain_water_cloud | mass fraction of rain water cloud | frac | 2 | real | kind_phys | inout | F |
!! | f_ice | fraction_of_ice_water_cloud | mass fraction of ice water cloud | frac | 2 | real | kind_phys | inout | F |
!! | f_rain | fraction_of_rain_water_cloud | mass fraction of rain water cloud | frac | 2 | real | kind_phys | inout | F |
!! | epsq | minimum_value_of_specific_humidity | floor value for specific humidity | kg kg-1 | 0 | real | kind_phys | in | F |
!! | t | air_temperature | model layer mean temperature | K | 2 | real | kind_phys | inout | F |
!! | qc | cloud_condensed_water_mixing_ratio_updated_by_physics | moist (dry+vapor, no condensates) mixing ratio of cloud condensed water updated by physics | kg kg-1 | 2 | real | kind_phys | inout | F |
Expand Down
20 changes: 9 additions & 11 deletions physics/mp_fer_hires.F90
Original file line number Diff line number Diff line change
Expand Up @@ -111,14 +111,13 @@ end subroutine mp_fer_hires_init
!! | cwm | total_cloud_condensate_mixing_ratio_updated_by_physics | total cloud condensate mixing ratio (except water vapor) updated by physics | kg kg-1 | 2 | real | kind_phys | inout | F |
!! | train | accumulated_tendency_of_air_temperature_due_to_FA_scheme | accumulated tendency of air temperature due to FA MP scheme | K | 2 | real | kind_phys | inout | F |
!! | sr | ratio_of_snowfall_to_rainfall | snow ratio: ratio of snow to total precipitation (explicit only) | frac | 1 | real | kind_phys | out | F |
!! | f_ice | mass_fraction_of_ice_water_cloud | mass fraction of ice water cloud | frac | 2 | real | kind_phys | inout | F |
!! | f_rain | mass_fraction_of_rain_water_cloud | mass fraction of rain water cloud | frac | 2 | real | kind_phys | inout | F |
!! | f_rimef | mass_fraction_of_rime_factor | mass fraction of rime factor | frac | 2 | real | kind_phys | inout | F |
!! | f_ice | fraction_of_ice_water_cloud | fraction of ice water cloud | frac | 2 | real | kind_phys | inout | F |
!! | f_rain | fraction_of_rain_water_cloud | fraction of rain water cloud | frac | 2 | real | kind_phys | inout | F |
!! | f_rimef | rime_factor | rime factor | frac | 2 | real | kind_phys | inout | F |
!! | qc | cloud_condensed_water_mixing_ratio_updated_by_physics | moist (dry+vapor, no condensates) mixing ratio of cloud condensed water updated by physics | kg kg-1 | 2 | real | kind_phys | inout | F |
!! | qr | rain_water_mixing_ratio_updated_by_physics | moist (dry+vapor, no condensates) mixing ratio of rain water updated by physics | kg kg-1 | 2 | real | kind_phys | inout | F |
!! | qi | ice_water_mixing_ratio_updated_by_physics | moist (dry+vapor, no condensates) mixing ratio of ice water updated by physics | kg kg-1 | 2 | real | kind_phys | inout | F |
!! | qs | snow_water_mixing_ratio_updated_by_physics | moist (dry+vapor, no condensates) mixing ratio of snow water updated by physics | kg kg-1 | 2 | real | kind_phys | inout | F |
!! | qg | graupel_mixing_ratio_updated_by_physics | moist (dry+vapor, no condensates) mixing ratio of graupel updated by physics | kg kg-1 | 2 | real | kind_phys | inout | F |
!! | qg | mass_weighted_rime_factor | mass_weighted_rime_factor | kg kg-1 | 2 | real | kind_phys | inout | F |
!! | prec | nonnegative_lwe_thickness_of_precipitation_amount_on_dynamics_timestep | total precipitation amount in each time step | m | 1 | real | kind_phys | inout | F |
!! | acprec | accumulated_lwe_thickness_of_precipitation_amount | accumulated total precipitation | m | 1 | real | kind_phys | inout | F |
!! | mpirank | mpi_rank | current MPI-rank | index | 0 | integer | | in | F |
Expand All @@ -141,7 +140,7 @@ SUBROUTINE mp_fer_hires_run(NCOL, NLEV, DT &
,T,Q,CWM &
,TRAIN,SR &
,F_ICE,F_RAIN,F_RIMEF &
,QC,QR,QI,QS,QG &
,QC,QR,QI,QG &
,PREC,ACPREC &
,mpirank, mpiroot, threads &
,refl_10cm &
Expand Down Expand Up @@ -183,7 +182,6 @@ SUBROUTINE mp_fer_hires_run(NCOL, NLEV, DT &
real(kind_phys), intent(inout) :: qc(1:ncol,1:nlev)
real(kind_phys), intent(inout) :: qr(1:ncol,1:nlev)
real(kind_phys), intent(inout) :: qi(1:ncol,1:nlev)
real(kind_phys), intent(inout) :: qs(1:ncol,1:nlev)
real(kind_phys), intent(inout) :: qg(1:ncol,1:nlev)
real(kind_phys), intent(inout) :: prec(1:ncol)
real(kind_phys), intent(inout) :: acprec(1:ncol)
Expand Down Expand Up @@ -319,8 +317,8 @@ SUBROUTINE mp_fer_hires_run(NCOL, NLEV, DT &
!---------------------------------------------------------------------
DO K=1,LM
DO I=IMS,IME
IF (QG(I,K)>EPSQ .AND. QS(I,K)>EPSQ) THEN
F_RIMEF(I,K)=MIN(50.,MAX(1.,QG(I,K)/QS(I,K)))
IF (QG(I,K)>EPSQ .AND. QI(I,K)>EPSQ) THEN
F_RIMEF(I,K)=MIN(50.,MAX(1.,QG(I,K)/QI(I,K)))
ELSE
F_RIMEF(I,K)=1.
ENDIF
Expand All @@ -332,7 +330,7 @@ SUBROUTINE mp_fer_hires_run(NCOL, NLEV, DT &
DT=dtphs,RHgrd=RHGRD &
,DZ8W=dz,RHO_PHY=rr,P_PHY=p_phy,PI_PHY=pi_phy &
,TH_PHY=th_phy &
,Q=Q,QC=QC,QS=QS,QR=QR,QT=cwm &
,Q=Q,QC=QC,QS=QI,QR=QR,QT=cwm &
,LOWLYR=LOWLYR,SR=SR &
,F_ICE_PHY=F_ICE,F_RAIN_PHY=F_RAIN &
,F_RIMEF_PHY=F_RIMEF &
Expand All @@ -347,7 +345,7 @@ SUBROUTINE mp_fer_hires_run(NCOL, NLEV, DT &
!---------------------------------------------------------------------
DO K=1,LM
DO I=IMS,IME
QG(I,K)=QS(I,K)*F_RIMEF(I,K)
QG(I,K)=QI(I,K)*F_RIMEF(I,K)
ENDDO
ENDDO
!
Expand Down

0 comments on commit 3a26975

Please sign in to comment.