169 |
c _RL QCLOUD(NGP), ACLOUD(NGP), PSAZ(NGP), |
c _RL QCLOUD(NGP), ACLOUD(NGP), PSAZ(NGP), |
170 |
_RL QCLOUD(NGP), ACLOUD(NGP), |
_RL QCLOUD(NGP), ACLOUD(NGP), |
171 |
& ALBTOP(NGP,NLEV), FREFL(NGP,NLEV), FLUX(NGP,2) |
& ALBTOP(NGP,NLEV), FREFL(NGP,NLEV), FLUX(NGP,2) |
172 |
|
#ifdef ALLOW_CLOUD_3D |
173 |
|
C_DE CLDCLW = Local cloud cover (3-dim) |
174 |
|
_RL CLDCLW(NGP,NLEV), ACLDLW(NGP,NLEV) |
175 |
|
#endif |
176 |
|
|
177 |
C- jmc: define "FLUX" as a local variable & remove Equivalences: |
C- jmc: define "FLUX" as a local variable & remove Equivalences: |
178 |
c EQUIVALENCE (ALBTOP(1,1),TAU2(1,1,3)) |
c EQUIVALENCE (ALBTOP(1,1),TAU2(1,1,3)) |
215 |
DO K=1,NLEV |
DO K=1,NLEV |
216 |
DO J=1,NGP |
DO J=1,NGP |
217 |
ALBTOP(J,K)=0. |
ALBTOP(J,K)=0. |
218 |
|
#ifdef ALLOW_CLOUD_3D |
219 |
|
CLDCLW(J,K)=0. |
220 |
|
#endif |
221 |
ENDDO |
ENDDO |
222 |
ENDDO |
ENDDO |
223 |
C |
C |
232 |
IF (RH(J,K).GT.RHCL1.AND.QA(J,K).GT.QACL1) THEN |
IF (RH(J,K).GT.RHCL1.AND.QA(J,K).GT.QACL1) THEN |
233 |
CLOUDC(J)=MAX(CLOUDC(J),RH(J,K)-RHCL1) |
CLOUDC(J)=MAX(CLOUDC(J),RH(J,K)-RHCL1) |
234 |
IF (QA(J,K).GT.QACL3) ICLTOP(J)=K |
IF (QA(J,K).GT.QACL3) ICLTOP(J)=K |
235 |
|
#ifdef ALLOW_CLOUD_3D |
236 |
|
CLDCLW(J,K)=MAX(0. _d 0,RH(J,K)-RHCL1) |
237 |
|
CLDCLW(J,K)=MIN(1. _d 0,CLDCLW(J,K)*RRCL) |
238 |
|
#endif |
239 |
ENDIF |
ENDIF |
240 |
ENDDO |
ENDDO |
241 |
ENDDO |
ENDDO |
246 |
CLOUDC(J)=MIN(1. _d 0,CLOUDC(J)*RRCL) |
CLOUDC(J)=MIN(1. _d 0,CLOUDC(J)*RRCL) |
247 |
IF (CLOUDC(J).GT.0.0) THEN |
IF (CLOUDC(J).GT.0.0) THEN |
248 |
CLOUDC(J)=CLOUDC(J)*MIN(1. _d 0,QCLOUD(J)*RQCL) |
CLOUDC(J)=CLOUDC(J)*MIN(1. _d 0,QCLOUD(J)*RQCL) |
249 |
|
#ifdef ALLOW_CLOUD_3D |
250 |
|
DO K=NL1(J),2,-1 |
251 |
|
CLDCLW(J,K)=CLDCLW(J,K)*MIN(1. _d 0,QCLOUD(J)*RQCL) |
252 |
|
ENDDO |
253 |
|
#endif |
254 |
ALBTOP(J,ICLTOP(J))=ALBCL*CLOUDC(J) |
ALBTOP(J,ICLTOP(J))=ALBCL*CLOUDC(J) |
255 |
ELSE |
ELSE |
256 |
ICLTOP(J)=NLEV+1 |
ICLTOP(J)=NLEV+1 |
392 |
C 5.1 Longwave transmissivity: |
C 5.1 Longwave transmissivity: |
393 |
C function of layer mass, abs. humidity and cloud cover. |
C function of layer mass, abs. humidity and cloud cover. |
394 |
|
|
395 |
|
#ifdef ALLOW_CLOUD_3D |
396 |
|
DO K=2,NLEV |
397 |
|
DO J=1,NGP |
398 |
|
ACLDLW(J,K)=CLDCLW(J,K)*(ABLCL1+ABLCL2*QCLOUD(J)) |
399 |
|
ENDDO |
400 |
|
ENDDO |
401 |
|
#else |
402 |
DO J=1,NGP |
DO J=1,NGP |
403 |
ACLOUD(J)=CLOUDC(J)*(ABLCL1+ABLCL2*QCLOUD(J)) |
ACLOUD(J)=CLOUDC(J)*(ABLCL1+ABLCL2*QCLOUD(J)) |
404 |
ENDDO |
ENDDO |
405 |
|
#endif |
406 |
|
|
407 |
DO J=1,NGP |
DO J=1,NGP |
408 |
c_FM DELTAP=PSA(J)*DSIG(1) |
c_FM DELTAP=PSA(J)*DSIG(1) |
418 |
c_FM DELTAP=PSA(J)*DSIG(K) |
c_FM DELTAP=PSA(J)*DSIG(K) |
419 |
DELTAP=DSIG(K)*dpFac(J,K) |
DELTAP=DSIG(K)*dpFac(J,K) |
420 |
IF ( K.GE.ICLTOP(J).AND.K.NE.kGrd(J) ) THEN |
IF ( K.GE.ICLTOP(J).AND.K.NE.kGrd(J) ) THEN |
421 |
|
#ifdef ALLOW_CLOUD_3D |
422 |
|
TAU2(J,K,1)=EXP(-DELTAP*(ABLWIN+ACLDLW(J,K))) |
423 |
|
#else |
424 |
TAU2(J,K,1)=EXP(-DELTAP*(ABLWIN+ACLOUD(J))) |
TAU2(J,K,1)=EXP(-DELTAP*(ABLWIN+ACLOUD(J))) |
425 |
|
#endif |
426 |
ELSE |
ELSE |
427 |
TAU2(J,K,1)=EXP(-DELTAP*ABLWIN) |
TAU2(J,K,1)=EXP(-DELTAP*ABLWIN) |
428 |
ENDIF |
ENDIF |
431 |
TAU2(J,K,4)=EXP(-DELTAP*ABLWV2*QA(J,K)) |
TAU2(J,K,4)=EXP(-DELTAP*ABLWV2*QA(J,K)) |
432 |
ENDDO |
ENDDO |
433 |
ENDDO |
ENDDO |
434 |
|
|
435 |
|
#if (defined ALLOW_CLOUD_3D && defined ALLOW_DIAGNOSTICS) |
436 |
|
CALL DIAGNOSTICS_FILL( CLDCLW, |
437 |
|
& 'CLDCLW ',-1, Nr, 3,bi,bj, myThid ) |
438 |
|
#endif |
439 |
|
|
440 |
C |
C |
441 |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
442 |
#endif /* ALLOW_AIM */ |
#endif /* ALLOW_AIM */ |