Skip to content

Commit 8cfbe25

Browse files
committed
hand-merge conflicts in GEOS_mkiauGridComp.F90
2 parents b8ff0e7 + 9056ca2 commit 8cfbe25

File tree

9 files changed

+267
-233
lines changed

9 files changed

+267
-233
lines changed

GEOSagcm_GridComp/GEOSphysics_GridComp/GEOSgwd_GridComp/GEOS_GwdGridComp.F90

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -323,7 +323,7 @@ subroutine Initialize ( GC, IMPORT, EXPORT, CLOCK, RC )
323323
call MAPL_GetResource( MAPL, self%GEOS_PGWV, Label="GEOS_PGWV:", default=GEOS_PGWV, _RC)
324324
call MAPL_GetResource( MAPL, self%GEOS_BGSTRESS, Label="GEOS_BGSTRESS:", default=0.000 , _RC)
325325
call MAPL_GetResource( MAPL, self%GEOS_EFFGWBKG, Label="GEOS_EFFGWBKG:", default=0.000 , _RC)
326-
call MAPL_GetResource( MAPL, self%NCAR_EFFGWBKG, Label="NCAR_EFFGWBKG:", default=0.400 , _RC)
326+
call MAPL_GetResource( MAPL, self%NCAR_EFFGWBKG, Label="NCAR_EFFGWBKG:", default=0.600 , _RC)
327327
call MAPL_GetResource( MAPL, self%TAU1, Label="RAYLEIGH_TAU1:", default=0.000 , _RC)
328328
endif
329329

GEOSagcm_GridComp/GEOSphysics_GridComp/GEOSmoist_GridComp/ConvPar_GF2020.F90

Lines changed: 43 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,10 @@ MODULE ConvPar_GF2020
3030
,cum_max_edt_land ,cum_max_edt_ocean, cum_hei_down_land &
3131
,cum_hei_down_ocean,cum_hei_updf_land, cum_hei_updf_ocean &
3232
,use_momentum_transp,cum_entr_rate,min_entr_rate &
33-
,zero_diff , nmp, lsmp, cnmp,moist_trigger,frac_modis,max_tq_tend &
33+
,zero_diff_land,zero_diff_entr,zero_diff_vvel &
34+
,nmp,lsmp,cnmp,moist_trigger,frac_modis,max_tq_tend &
3435
,cum_fadj_massflx, cum_use_excess, cum_ave_layer, adv_trigger &
35-
,evap_fix,output_sound,use_cloud_dissipation &
36+
,evap_fix,output_sound,use_cloud_dissipation &
3637
,use_smooth_tend,GF_convpar_init,beta_sh,c0_shal &
3738
,use_linear_subcl_mf,cap_maxs,entrversion
3839

@@ -83,7 +84,10 @@ MODULE ConvPar_GF2020
8384

8485
REAL :: MAX_TQ_TEND = 100. != max T,Q tendency allowed (100 K/day)
8586

86-
INTEGER :: ZERO_DIFF = 0 != to get the closest solution of the stable version Dec 2019 for single-moment
87+
!INTEGER :: ZERO_DIFF = 0 != to get the closest solution of the stable version Dec 2019 for single-moment
88+
INTEGER :: ZERO_DIFF_ENTR = 0 != just the zero_diff entrainment options
89+
INTEGER :: ZERO_DIFF_LAND = 0 != just the zero_diff land/ocean options
90+
INTEGER :: ZERO_DIFF_VVEL = 0 != just the zero_diff subgrid vvel options
8791

8892
INTEGER :: USE_SMOOTH_TEND = 0 != 0 => OFF, > 0 produces smoother tendencies (e.g.: for 1=> makes average between k-1,k,k+1)
8993
!--- deep, shallow, congestus
@@ -2125,8 +2129,8 @@ SUBROUTINE CUP_gf(its,ite,kts,kte ,itf,ktf, mtp, nmp &
21252129

21262130
!
21272131
!--- maximum depth (mb) of capping inversion (larger cap = no convection)
2128-
!
2129-
IF(ZERO_DIFF==1 .or. MOIST_TRIGGER==0) THEN
2132+
! The option here is non ZERO_DIFF, MOIST_TRIGGER==0 is consistent with GF2019
2133+
IF(MOIST_TRIGGER==0) THEN
21302134
if(trim(cumulus) == 'deep' ) then ; cap_max_inc=20. ; endif ! cap_maxs=50.
21312135
if(trim(cumulus) == 'mid' ) then ; cap_max_inc=10. ; endif ! cap_maxs=50.
21322136
if(trim(cumulus) == 'shallow') then ; cap_max_inc=25. ; endif ! cap_maxs=50.
@@ -2207,7 +2211,7 @@ SUBROUTINE CUP_gf(its,ite,kts,kte ,itf,ktf, mtp, nmp &
22072211
! ierr(i)=1
22082212
! ierrc(i)='scale_dep renders convection insignificant'
22092213
!endif
2210-
if(ierr(i) /= 0) cycle
2214+
!if(ierr(i) /= 0) cycle
22112215
enddo
22122216
endif
22132217
endif
@@ -2585,7 +2589,7 @@ SUBROUTINE CUP_gf(its,ite,kts,kte ,itf,ktf, mtp, nmp &
25852589
else
25862590
entr_rate(i,k)=entr_rate(i,k)*(1.3-frh)
25872591
endif
2588-
if (ZERO_DIFF==1) then
2592+
if (ZERO_DIFF_ENTR==1) then
25892593
cd(i,k)=0.75e-4*(1.6-frh)
25902594
else
25912595
entr_rate(i,k) = max(entr_rate(i,k),min_entr_rate)
@@ -3106,7 +3110,8 @@ SUBROUTINE CUP_gf(its,ite,kts,kte ,itf,ktf, mtp, nmp &
31063110
! Combine
31073111
tau_ecmwf(i)= tau_0 + tau_1*(1.0-cnvfrc(i))
31083112
! Limit
3109-
tau_ecmwf(i)= max(dtime,min(tau_ecmwf(i),tau_deep))
3113+
if(trim(cumulus)=='deep') tau_ecmwf(i)= max(tau_mid,min(tau_ecmwf(i),tau_deep))
3114+
if(trim(cumulus)=='mid' ) tau_ecmwf(i)= max(dtime ,min(tau_ecmwf(i),tau_mid))
31103115
ENDDO
31113116
ENDIF
31123117
DO i=its,itf
@@ -4189,7 +4194,7 @@ SUBROUTINE CUP_gf(its,ite,kts,kte ,itf,ktf, mtp, nmp &
41894194
call cup_output_ens_3d(cumulus,xff_shal,xff_mid,xf_ens,ierr,dellat,dellaq, &
41904195
dellaqc,outt, outq,outqc,zuo,pre,pwo_eff,xmb,ktop, &
41914196
maxens2,maxens,ierr2,ierr3, &
4192-
pr_ens,maxens3,ensdim,sig,xland1, &
4197+
pr_ens,maxens3,ensdim,sig,cnvfrc,xland1, &
41934198
ichoice,ipr,jpr,itf,ktf,its,ite, kts,kte, &
41944199
xf_dicycle,outu,outv,dellu,dellv,dtime,po_cup,kbcon, &
41954200
dellabuoy,outbuoy, &
@@ -4996,7 +5001,8 @@ SUBROUTINE cup_dd_moisture(cumulus,ierrc,zd,hcd,hes_cup,qcd,qes_cup,
49965001
ierrc(i)="problem2 with buoy in cup_dd_moisture"
49975002
endif
49985003

4999-
if(ZERO_DIFF==0 .and. EVAP_FIX==1) then
5004+
! ZERO_DIFF: The EVAP_FIX option is not in GF2019
5005+
if(EVAP_FIX==1) then
50005006
if(abs(pwev(i)) > pwavo(i) .and. ierr(i) == 0)then
50015007
fix_evap = pwavo(i)/(1.e-16+abs(pwev(i)))
50025008
pwev(i) = 0.
@@ -5873,12 +5879,11 @@ SUBROUTINE cup_up_moisture(name,start_level,klcl,ierr,ierrc,z_cup,qc,qrc,pw,pwav
58735879

58745880
ENDDO
58755881

5876-
IF(ZERO_DIFF==0) THEN
5877-
if(pwav(i) < 0.) then
5878-
ierr(i)=66
5879-
ierrc(i)="pwav negative"
5880-
endif
5881-
ENDIF
5882+
! ZERO_DIFF: not in GF2019
5883+
if(pwav(i) < 0.) then
5884+
ierr(i)=66
5885+
ierrc(i)="pwav negative"
5886+
endif
58825887

58835888
ENDDO
58845889

@@ -6544,7 +6549,7 @@ SUBROUTINE get_zu_zd_pdf(cumulus, draft,ierr,kb,kt,zu,kts,kte,ktf,kpbli,k22,kbco
65446549
zu =0.0
65456550
zuh=0.0
65466551
zul=0.0
6547-
IF(zero_diff==1) then
6552+
IF(ZERO_DIFF_LAND==1) then
65486553
if(draft == "deep_up" .and. xland > 0.90) itest=11 !ocean
65496554
if(draft == "deep_up" .and. xland <= 0.90) itest=12 !land
65506555
if(draft == "mid_up" ) itest= 5
@@ -6805,13 +6810,12 @@ SUBROUTINE get_zu_zd_pdf(cumulus, draft,ierr,kb,kt,zu,kts,kte,ktf,kpbli,k22,kbco
68056810
!- for gate soundings
68066811
!if(gate) hei_updf = max(0.1, min(1.,float(JL)/100.)) ! for gate soundings
68076812

6808-
!---non-zero-diff-APR-08-2020
6809-
IF( zero_diff==1) then
6813+
IF( ZERO_DIFF_LAND==1) then
68106814
pmaxzu=psur-px*(psur-po_cup(kt))
68116815
ELSE
68126816
pmaxzu=psur-hei_updf*(psur-po_cup(kt))
68136817
ENDIF
6814-
!---non-zero-diff-APR-08-2020
6818+
68156819
kb_adj=minloc(abs(po_cup(kts:kt)-pmaxzu),1)
68166820
kb_adj=max(kb,kb_adj)
68176821
kb_adj=min(kb_adj,kt)
@@ -6911,13 +6915,11 @@ SUBROUTINE get_zu_zd_pdf(cumulus, draft,ierr,kb,kt,zu,kts,kte,ktf,kpbli,k22,kbco
69116915
zuh(kts:min(kte,kt))= zuh(kts:min(kte,kt))/ (1.e-9+maxval(zuh(kts:min(kte,kt)),1))
69126916

69136917
!increasing contribuition of zuh => more heating at upper levels/less precip
6914-
!---non-zero-diff-APR-08-2020
6915-
IF(zero_diff==1) then
6918+
IF(ZERO_DIFF_LAND==1) then
69166919
zu(:)= 0.65 *zul(:)+ 0.35 *zuh(:)
69176920
ELSE
69186921
zu(:)=(1.-hei_updf)*zul(:) + hei_updf*zuh(:)
69196922
ENDIF
6920-
!---non-zero-diff-APR-08-2020
69216923

69226924
!-- special treatment below k22/klcl
69236925
DO k=klcl,kts+1,-1
@@ -7032,9 +7034,11 @@ SUBROUTINE get_zu_zd_pdf(cumulus, draft,ierr,kb,kt,zu,kts,kte,ktf,kpbli,k22,kbco
70327034

70337035
hei_down=(1.-xland)*hei_down_LAND+xland*hei_down_OCEAN
70347036

7035-
!---non-zero-diff-APR-08-2020
7036-
IF(zero_diff==1) hei_down= 0.5
7037-
!---non-zero-diff-APR-08-2020
7037+
IF(ZERO_DIFF_LAND==1) then
7038+
hei_down= 0.5
7039+
ELSE
7040+
hei_down=(1.-xland)*hei_down_LAND+xland*hei_down_OCEAN
7041+
ENDIF
70387042

70397043
pmaxzu= hei_down * po_cup(kt) + (1.-hei_down)*psur
70407044
kb_adj=minloc(abs(po_cup(kts:kt)-pmaxzu),1)
@@ -8147,11 +8151,7 @@ SUBROUTINE cup_cloud_limits(name,ierrc,ierr,cap_inc,cap_max_in
81478151

81488152
DO i=its,itf
81498153
if(ierr(i) /= 0) cycle
8150-
if(ZERO_DIFF==1) then
8151-
start_level(i) = klcl(i)
8152-
else
8153-
start_level(i) = start_level_(i)
8154-
endif
8154+
start_level(i) = start_level_(i) ! start_level_ == klcl, so not a ZERO_DIFF option
81558155

81568156
do k=kts,start_level(i)
81578157
hcot(i,k) = hkbo(i) ! assumed no entraiment between these layers
@@ -8349,7 +8349,7 @@ subroutine cup_up_vvel(vvel2d,vvel1d,zws,entr_rate,cd ,z,z_cup,zu,dby,GAMMA_CUP,
83498349
integer, parameter :: n_smooth=1
83508350

83518351
ftun1=0.25 ; ftun2=1.
8352-
if(ZERO_DIFF==1) then
8352+
if(ZERO_DIFF_VVEL==1) then
83538353
ftun1=1. ; ftun2=0.5
83548354
endif
83558355

@@ -8374,7 +8374,7 @@ subroutine cup_up_vvel(vvel2d,vvel1d,zws,entr_rate,cd ,z,z_cup,zu,dby,GAMMA_CUP,
83748374
BU = g*( (Tv-Tve)/Tve - ftun2*0.50*(qrco(i,k+1)+qrco(i,k) ))
83758375

83768376
dw1 = 2./(f*(1.+gam)) * BU * dz
8377-
if(ZERO_DIFF==1) then
8377+
if(ZERO_DIFF_VVEL==1) then
83788378
kx = max(entr_rate(i,k),cd(i,k))*dz
83798379
else
83808380
kx = (1.+beta*C_d)*max(entr_rate(i,k),cd(i,k))*dz*ftun1
@@ -8391,7 +8391,7 @@ subroutine cup_up_vvel(vvel2d,vvel1d,zws,entr_rate,cd ,z,z_cup,zu,dby,GAMMA_CUP,
83918391
enddo loop0
83928392
enddo
83938393
if(smooth) then
8394-
if(ZERO_DIFF==1) then
8394+
if(ZERO_DIFF_VVEL==1) then
83958395
do i=its,itf
83968396
if(ierr(i) /= 0)cycle
83978397
do k=kts,ktop(i)-2
@@ -8427,7 +8427,7 @@ subroutine cup_up_vvel(vvel2d,vvel1d,zws,entr_rate,cd ,z,z_cup,zu,dby,GAMMA_CUP,
84278427
!-- sanity check
84288428
where(vvel2d(i,:) < 1. ) vvel2d(i,:) = 1.
84298429
where(vvel2d(i,:) > 20.) vvel2d(i,:) = 20.
8430-
if(ZERO_DIFF==0) vvel2d(i,ktop(i)+1:kte) = 0.1
8430+
if(ZERO_DIFF_VVEL==0) vvel2d(i,ktop(i)+1:kte) = 0.1
84318431

84328432
!-- get the column average vert velocity
84338433
do k= kbcon(i),ktop(i)
@@ -8443,7 +8443,7 @@ end subroutine cup_up_vvel
84438443
!------------------------------------------------------------------------------------
84448444
SUBROUTINE cup_output_ens_3d(name,xff_shal,xff_mid,xf_ens,ierr,dellat,dellaq,dellaqc, &
84458445
outtem,outq,outqc,zu,pre,pw,xmb,ktop, &
8446-
nx,nx2,ierr2,ierr3,pr_ens, maxens3,ensdim,sig,xland1, &
8446+
nx,nx2,ierr2,ierr3,pr_ens, maxens3,ensdim,sig,cnvfrc,xland1, &
84478447
ichoice,ipr,jpr,itf,ktf,its,ite, kts,kte, &
84488448
xf_dicycle,outu,outv,dellu,dellv,dtime,po_cup,kbcon, &
84498449
dellabuoy,outbuoy, dellampqi,outmpqi,dellampql,outmpql, &
@@ -8491,7 +8491,7 @@ SUBROUTINE cup_output_ens_3d(name,xff_shal,xff_mid,xf_ens,ierr,dellat,dellaq,del
84918491
zu,po_cup
84928492
real, dimension (its:ite) &
84938493
,intent (in ) :: &
8494-
sig
8494+
sig, cnvfrc
84958495
real, dimension (its:ite,maxens3) &
84968496
,intent (in ) :: &
84978497
xff_mid
@@ -8633,7 +8633,6 @@ SUBROUTINE cup_output_ens_3d(name,xff_shal,xff_mid,xf_ens,ierr,dellat,dellaq,del
86338633
!-apply the scale-dependence Arakawa's approach
86348634
DO i=its,itf
86358635
if(ierr(i) /= 0) cycle
8636-
!- scale dependence
86378636
xmb(i)=sig(i)*xmb(i)
86388637

86398638
if(xmb(i) == 0. ) ierr(i)=14
@@ -9033,7 +9032,7 @@ SUBROUTINE cup_forcing_ens_3d(itf,ktf,its,ite, kts,kte,ens4,ensdim,ichoice,maxen
90339032
!endif
90349033

90359034
!---over the land, only applies closure 10.
9036-
if(zero_diff == 0 .and. ichoice == 0) then
9035+
if(ZERO_DIFF_LAND == 0 .and. ichoice == 0) then
90379036
xf_ens(i,1:16)=(1.-xland(i))*xf_ens(i,10)+xland(i)*xf_ens(i,1:16)
90389037
endif
90399038

@@ -11004,7 +11003,8 @@ subroutine GF_convpar_init (mynum)
1100411003
,cum_max_edt_land ,cum_max_edt_ocean, cum_hei_down_land &
1100511004
,cum_hei_down_ocean,cum_hei_updf_land, cum_hei_updf_ocean &
1100611005
,cum_entr_rate ,tau_deep,tau_mid &
11007-
,zero_diff ,use_momentum_transp ,moist_trigger,frac_modis &
11006+
,zero_diff_land,zero_diff_vvel,zero_diff_entr &
11007+
,use_momentum_transp ,moist_trigger,frac_modis &
1100811008
,cum_use_excess,cum_ave_layer,adv_trigger, evap_fix &
1100911009
,use_cloud_dissipation,use_smooth_tend,use_gustiness, use_random_num &
1101011010
,dcape_threshold,beta_sh,c0_shal,use_linear_subcl_mf
@@ -11059,7 +11059,9 @@ subroutine GF_convpar_init (mynum)
1105911059
print*, 'lightning_diag ' , lightning_diag
1106011060
print*, 'use_scale_dep ' , use_scale_dep
1106111061
print*, 'dicycle ' , dicycle
11062-
print*, 'zero_diff ' , zero_diff
11062+
print*, 'zero_diff_land ' , zero_diff_land
11063+
print*, 'zero_diff_vvel ' , zero_diff_vvel
11064+
print*, 'zero_diff_entr ' , zero_diff_entr
1106311065
print*, 'cum_entr ' , real(cum_entr_rate ,4)
1106411066
print*, 'frac_modis ' , frac_modis
1106511067
print*, 'moist_trigger ' , moist_trigger

0 commit comments

Comments
 (0)