13 |
. nlwcld,cldtot_lw,cldras_lw,cldlsp_lw,nlwlz,lwlz, |
. nlwcld,cldtot_lw,cldras_lw,cldlsp_lw,nlwlz,lwlz, |
14 |
. lpnt,myid) |
. lpnt,myid) |
15 |
|
|
16 |
|
implicit none |
17 |
|
|
18 |
#ifdef ALLOW_DIAGNOSTICS |
#ifdef ALLOW_DIAGNOSTICS |
19 |
|
#include "SIZE.h" |
20 |
|
#include "diagnostics_SIZE.h" |
21 |
#include "diagnostics.h" |
#include "diagnostics.h" |
22 |
#endif |
#endif |
23 |
|
|
24 |
c Input Variables |
c Input Variables |
25 |
c --------------- |
c --------------- |
26 |
|
integer im,jm,lm |
27 |
integer ndmoist,istrip,npcs |
integer ndmoist,istrip,npcs |
28 |
|
integer bi,bj,ntracer,ptracer |
29 |
integer lowlevel,midlevel,nltop,nsubmin,nsubmax,Lup |
integer lowlevel,midlevel,nltop,nsubmin,nsubmax,Lup |
30 |
real pz(im,jm),plz(im,jm,lm),plze(im,jm,lm+1),dpres(im,jm,lm) |
real pz(im,jm),plz(im,jm,lm),plze(im,jm,lm+1),dpres(im,jm,lm) |
31 |
real pkht(im,jm,lm+1),pkl(im,jm,lm) |
real pkht(im,jm,lm+1),pkl(im,jm,lm) |
32 |
real tz(im,jm,lm),qz(im,jm,lm,ntracer) |
real tz(im,jm,lm),qz(im,jm,lm,ntracer) |
|
integer bi,bj,ntracer,ptracer |
|
33 |
real qqz(im,jm,lm) |
real qqz(im,jm,lm) |
34 |
real dumoist(im,jm,lm),dvmoist(im,jm,lm) |
real dumoist(im,jm,lm),dvmoist(im,jm,lm) |
35 |
real dtmoist(im,jm,lm),dqmoist(im,jm,lm,ntracer) |
real dtmoist(im,jm,lm),dqmoist(im,jm,lm,ntracer) |
|
integer im,jm,lm |
|
36 |
real ptop |
real ptop |
37 |
integer iras |
integer iras |
38 |
real rainlsp(im,jm),rainconv(im,jm),snowfall(im,jm) |
real rainlsp(im,jm),rainconv(im,jm),snowfall(im,jm) |
57 |
real srcld(istrip,lm) |
real srcld(istrip,lm) |
58 |
|
|
59 |
real plev |
real plev |
60 |
real cldnow,cldlsp_mem,cldras_mem,cldras,watnow,watmin,cldmin |
real cldnow,cldlsp_mem,cldlsp,cldras_mem,cldras |
61 |
|
real watnow,watmin,cldmin |
62 |
real cldprs(im,jm),cldtmp(im,jm) |
real cldprs(im,jm),cldtmp(im,jm) |
63 |
real cldhi (im,jm),cldlow(im,jm) |
real cldhi (im,jm),cldlow(im,jm) |
64 |
real cldmid(im,jm),totcld(im,jm) |
real cldmid(im,jm),totcld(im,jm) |
246 |
levgather(index) = levpbl(pblindex(index),1) |
levgather(index) = levpbl(pblindex(index),1) |
247 |
pigather(index) = pz(pblindex(index),1) |
pigather(index) = pz(pblindex(index),1) |
248 |
pkegather(index,lm+1) = pkht(pblindex(index),1,lm+1) |
pkegather(index,lm+1) = pkht(pblindex(index),1,lm+1) |
249 |
plegather(index,lm+1) = ple(pblindex(index),1,lm+1) |
plegather(index,lm+1) = plze(pblindex(index),1,lm+1) |
250 |
enddo |
enddo |
251 |
|
|
252 |
do L = 1,lm |
do L = 1,lm |
776 |
C BUMP DIAGNOSTICS |
C BUMP DIAGNOSTICS |
777 |
C ********************************************************************** |
C ********************************************************************** |
778 |
|
|
|
c Clear-Sky (Above 400mb) Temperature |
|
|
c ----------------------------------- |
|
|
if( itmpuclr.ne.0 .or. isphuclr.ne.0 ) then |
|
|
do j = 1,jm |
|
|
do i = 1,im |
|
|
totcld(i,j) = 0.0 |
|
|
enddo |
|
|
enddo |
|
|
do L = 1,midlevel |
|
|
do j = 1,jm |
|
|
do i = 1,im |
|
|
if(cldls(i,j,L).ne.0.0.or.cpen(i,j,L).ne.0.0)totcld(i,j) = 1.0 |
|
|
enddo |
|
|
enddo |
|
|
enddo |
|
|
do L = 1,lm |
|
|
if( itmpuclr.ne.0 ) then |
|
|
do i = 1,im*jm |
|
|
if( totcld(i,1).eq.0.0 ) then |
|
|
qdiag(i,1,itmpuclr +L-1,bi,bj) = |
|
|
. qdiag(i,1,itmpuclr +L-1,bi,bj) + tz(i,1,L)*pkzgather(i,L) |
|
|
qdiag(i,1,itmpuclrc+L-1,bi,bj) = |
|
|
. qdiag(i,1,itmpuclrc+L-1,bi,bj)+1.0 |
|
|
endif |
|
|
enddo |
|
|
endif |
|
|
|
|
|
if( isphuclr.ne.0 ) then |
|
|
do i = 1,im*jm |
|
|
if( totcld(i,1).eq.0.0 ) then |
|
|
qdiag(i,1,isphuclr +L-1,bi,bj) = |
|
|
. qdiag(i,1,isphuclr +L-1,bi,bj) + qz(i,1,L,1)*1000.0 |
|
|
qdiag(i,1,isphuclrc+L-1,bi,bj) = |
|
|
. qdiag(i,1,isphuclrc+L-1,bi,bj) + 1.0 |
|
|
endif |
|
|
enddo |
|
|
endif |
|
|
enddo |
|
|
endif |
|
|
|
|
779 |
c Sub-Cloud Layer |
c Sub-Cloud Layer |
780 |
c ------------------------- |
c ------------------------- |
781 |
if( ipsubcld.ne.0 ) then |
if( ipsubcld.ne.0 ) then |
1067 |
C********************** 16 MARCH 1988 ****************************** |
C********************** 16 MARCH 1988 ****************************** |
1068 |
C********************************************************************* |
C********************************************************************* |
1069 |
C |
C |
1070 |
PARAMETER (KRMIN=01) |
implicit none |
1071 |
PARAMETER (ICM=1000) |
|
|
PARAMETER (CMB2PA=100.0) |
|
|
PARAMETER (rknob = 10.) |
|
|
C |
|
1072 |
integer ntracer |
integer ntracer |
1073 |
integer nltop,nlayr |
integer nltop,nlayr |
1074 |
DIMENSION UOI(len,nlayr,ntracer), POI(len,K) |
real UOI(len,nlayr,ntracer), POI(len,K) |
1075 |
DIMENSION QOI(len,K), PRS(len,K+1), PRJ(len,K+1) |
real QOI(len,K), PRS(len,K+1), PRJ(len,K+1) |
1076 |
dimension rnd(ncrnd) |
real rnd(ncrnd) |
1077 |
C |
C |
1078 |
DIMENSION RAINS(len,K), CLN(len,K), CLF(len,K) |
real RAINS(len,K), CLN(len,K), CLF(len,K) |
1079 |
DIMENSION cldmas(len,K), detrain(len,K) |
real cldmas(len,K), detrain(len,K) |
1080 |
DIMENSION TCU(len,K), QCU(len,K) |
real TCU(len,K), QCU(len,K) |
1081 |
real ucu(len,K,ntracer) |
real ucu(len,K,ntracer) |
1082 |
DIMENSION ALF(len,K), BET(len,K), GAM(len,K) |
real ALF(len,K), BET(len,K), GAM(len,K) |
1083 |
*, ETA(len,K), HOI(len,K) |
*, ETA(len,K), HOI(len,K) |
1084 |
*, PRH(len,K), PRI(len,K) |
*, PRH(len,K), PRI(len,K) |
1085 |
DIMENSION HST(len,K), QOL(len,K), GMH(len,K) |
real HST(len,K), QOL(len,K), GMH(len,K) |
1086 |
|
|
1087 |
DIMENSION TX1(len), TX2(len), TX3(len), TX4(len), TX5(len) |
real TX1(len), TX2(len), TX3(len), TX4(len), TX5(len) |
1088 |
*, TX6(len), TX7(len), TX8(len), TX9(len) |
*, TX6(len), TX7(len), TX8(len), TX9(len) |
1089 |
*, TX11(len), TX12(len), TX13(len), TX14(len,ntracer) |
*, TX11(len), TX12(len), TX13(len), TX14(len,ntracer) |
1090 |
*, TX15(len), TX16(len) |
*, TX15(len), TX16(len) |
1091 |
*, WFN(len), IA1(len), IA2(len), IA3(len) |
*, WFN(len), IA1(len), IA2(len), IA3(len) |
1092 |
DIMENSION cloudn(len), pcu(len) |
real cloudn(len), pcu(len) |
1093 |
|
|
1094 |
real rhfrac(len),rasmax |
real rhfrac(len),rasmax |
1095 |
|
|
1096 |
DIMENSION IC(ICM), IRND(icm) |
integer IC(ICM), IRND(icm) |
1097 |
dimension cmass(len,K) |
real cmass(len,K) |
1098 |
LOGICAL SETRAS |
LOGICAL SETRAS |
1099 |
|
|
1100 |
do L = 1,k |
integer krmin,icm |
1101 |
do I = 1,LENC |
real rknob, cmb2pa |
1102 |
rains(i,l) = 0. |
PARAMETER (KRMIN=01) |
1103 |
enddo |
PARAMETER (ICM=1000) |
1104 |
enddo |
PARAMETER (CMB2PA=100.0) |
1105 |
|
PARAMETER (rknob = 10.) |
1106 |
|
C |
1107 |
|
integer i,L,nc |
1108 |
|
integer km1,kp1,kprv,kcr,kfx,ncmx |
1109 |
|
real p00, crtmsf, frac, rasblf |
1110 |
|
|
1111 |
|
do L = 1,k |
1112 |
|
do I = 1,LENC |
1113 |
|
rains(i,l) = 0. |
1114 |
|
enddo |
1115 |
|
enddo |
1116 |
|
|
1117 |
p00 = 1000. |
p00 = 1000. |
1118 |
crtmsf = 0. |
crtmsf = 0. |