Skip to content

Commit

Permalink
1. recalculate some FAmp tables which depend on physics time step in …
Browse files Browse the repository at this point in the history
…F-A scheme

2. change ncw value to HWRF application
  • Loading branch information
mzhangw committed Oct 7, 2019
1 parent 1656aac commit 53fba5b
Show file tree
Hide file tree
Showing 5 changed files with 436 additions and 242 deletions.
54 changes: 26 additions & 28 deletions physics/GFS_rrtmg_pre.F90
Original file line number Diff line number Diff line change
Expand Up @@ -784,19 +784,19 @@ subroutine GFS_rrtmg_pre_run (Model, Grid, Sfcprop, Statein, & ! input
Tbd%phy_f3d(:,:,Model%nseffr) = 250.
endif

if(Model%me==0) then
write(0,*)'F-A: progcld5 max(cldcov), min(cldcov) =' &
,maxval(cldcov),minval(cldcov)
write(0,*)'F-A: progcld5 max(ccnd_c), min(ccnd_c) =' &
,maxval(ccnd(:,:,1)),minval(ccnd(:,:,1))
write(0,*)'F-A: progcld5 max(ccnd_i), min(ccnd_i) =' &
,maxval(ccnd(:,:,2)),minval(ccnd(:,:,2))
write(0,*)'F-A: progcld5 max(ccnd_r), min(ccnd_r) =' &
,maxval(ccnd(:,:,3)),minval(ccnd(:,:,3))
write(0,*)'F-A: progcld5 max(ccnd_s), min(ccnd_s) =' &
,maxval(ccnd(:,:,4)),minval(ccnd(:,:,4))
write(0,*)'F-A:-----------------------------------'
endif
! if(Model%me==0) then
! write(0,*)'F-A: progcld5 max(cldcov), min(cldcov) =' &
! ,maxval(cldcov),minval(cldcov)
! write(0,*)'F-A: progcld5 max(ccnd_c), min(ccnd_c) =' &
! ,maxval(ccnd(:,:,1)),minval(ccnd(:,:,1))
! write(0,*)'F-A: progcld5 max(ccnd_i), min(ccnd_i) =' &
! ,maxval(ccnd(:,:,2)),minval(ccnd(:,:,2))
! write(0,*)'F-A: progcld5 max(ccnd_r), min(ccnd_r) =' &
! ,maxval(ccnd(:,:,3)),minval(ccnd(:,:,3))
! write(0,*)'F-A: progcld5 max(ccnd_s), min(ccnd_s) =' &
! ,maxval(ccnd(:,:,4)),minval(ccnd(:,:,4))
! write(0,*)'F-A:-----------------------------------'
! endif

call progcld5 (plyr,plvl,tlyr,qlyr,qstl,rhly,tracer1, & ! --- inputs
Grid%xlat,Grid%xlon,Sfcprop%slmsk,dz,delp, &
Expand All @@ -808,21 +808,19 @@ subroutine GFS_rrtmg_pre_run (Model, Grid, Sfcprop, Statein, & ! input
Tbd%phy_f3d(:,:,2), Tbd%phy_f3d(:,:,3), &
clouds,cldsa,mtopa,mbota, de_lgth) ! --- outputs

if(Model%me==0) then
write(0,*)'F-A: progcld5 max(cldsa1), min(cldsa1) =' &
,maxval(cldsa(:,1)),minval(cldsa(:,1))
write(0,*)'F-A: progcld5 max(cldsa2), min(cldsa2) =' &
,maxval(cldsa(:,2)),minval(cldsa(:,2))
write(0,*)'F-A: progcld5 max(cldsa3), min(cldsa3) =' &
,maxval(cldsa(:,3)),minval(cldsa(:,3))
write(0,*)'F-A: progcld5 max(cldsa4), min(cldsa4) =' &
,maxval(cldsa(:,4)),minval(cldsa(:,4))
write(0,*)'F-A: progcld5 max(cldsa5), min(cldsa5) =' &
,maxval(cldsa(:,5)),minval(cldsa(:,5))


write(0,*)'F-A:-----------------------------------'
endif
! if(Model%me==0) then
! write(0,*)'F-A: progcld5 max(cldsa1), min(cldsa1) =' &
! ,maxval(cldsa(:,1)),minval(cldsa(:,1))
! write(0,*)'F-A: progcld5 max(cldsa2), min(cldsa2) =' &
! ,maxval(cldsa(:,2)),minval(cldsa(:,2))
! write(0,*)'F-A: progcld5 max(cldsa3), min(cldsa3) =' &
! ,maxval(cldsa(:,3)),minval(cldsa(:,3))
! write(0,*)'F-A: progcld5 max(cldsa4), min(cldsa4) =' &
! ,maxval(cldsa(:,4)),minval(cldsa(:,4))
! write(0,*)'F-A: progcld5 max(cldsa5), min(cldsa5) =' &
! ,maxval(cldsa(:,5)),minval(cldsa(:,5))
! write(0,*)'F-A:-----------------------------------'
! endif

endif ! end if_imp_physics

Expand Down
59 changes: 30 additions & 29 deletions physics/GFS_suite_interstitial.F90
Original file line number Diff line number Diff line change
Expand Up @@ -722,37 +722,38 @@ subroutine GFS_suite_interstitial_4_run (im, levs, ltaerosol, lgocart, cplchm, t
endif
endif

!MZ
if (imp_physics == imp_physics_fer_hires) then
!MZ* : move to module_MP_FER_HIRES.F90
!
! if (imp_physics == imp_physics_fer_hires) then
!MZ: Update CWM,F_ICE,F_RAIN arrays from separate species advection
!(spec_adv=T.or.F)
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)=MAX(0.0,MIN(1.,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) then
write (0,*)'interstitial_4: cwm =', &
maxval(cwm),minval(cwm)
write (0,*)'interstitial_4: f_ice =', &
maxval(f_ice),minval(f_ice)
write (0,*)'interstitial_4: f_rain =', &
maxval(f_rain),minval(f_rain)
end if

endif

! 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)=MAX(0.0,MIN(1.,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) then
! write (0,*)'interstitial_4: cwm =', &
! maxval(cwm),minval(cwm)
! write (0,*)'interstitial_4: f_ice =', &
! maxval(f_ice),minval(f_ice)
! write (0,*)'interstitial_4: f_rain =', &
! maxval(f_rain),minval(f_rain)
! end if
!
! endif
!
!MZ
else
do k=1,levs
Expand Down
Loading

0 comments on commit 53fba5b

Please sign in to comment.