SUBROUTINE TWCALC(TBAR,THLIQ,THICE,HCP,TBARW,HMFG,HTC, 4 1 FI,EVAP,THPOR,THLMIN,HCPS,DELZW, 2 DELZZ,ISAND,IG,ILG,IL1,IL2,JL) C C * AUG 19/04 - Y.DELAGE. REGROUP COMMON BLOCKS C * MAKE DECLARATIONS EXPLICIT C * JUL 26/02 - D.VERSEGHY. SHORTENED CLASS4 COMMON BLOCK. C * JUN 20/97 - D.VERSEGHY. COSMETIC REARRANGEMENT OF C * SUBROUTINE CALL. C * JUN 20/97 - D.VERSEGHY. CLASS - VERSION 2.7. C * MODIFICATIONS TO ALLOW FOR VARIABLE C * SOIL PERMEABLE DEPTH. C * JAN 02/96 - D.VERSEGHY. CLASS - VERSION 2.5. C * COMPLETION OF ENERGY BALANCE C * DIAGNOSTICS. C * AUG 18/95 - D.VERSEGHY. CLASS - VERSION 2.4. C * REVISIONS TO ALLOW FOR INHOMOGENEITY C * BETWEEN SOIL LAYERS AND FRACTIONAL C * ORGANIC MATTER CONTENT. C * DEC 22/94 - D.VERSEGHY. CLASS - VERSION 2.3. C * REVISE CALCULATION OF HTC. C * JUL 30/93 - D.VERSEGHY/M.LAZARE. CLASS - VERSION 2.2. C * NEW DIAGNOSTIC FIELDS. C * APR 24/92 - D.VERSEGHY/M.LAZARE. REVISED AND VECTORIZED CODE C * FOR MODEL VERSION GCM7. C * AUG 12/91 - D.VERSEGHY. CODE FOR MODEL VERSION GCM7U - C * CLASS VERSION 2.0 (WITH CANOPY). C * APR 11/89 - D.VERSEGHY. ADJUST SOIL LAYER TEMPERATURES C * AND LIQUID/FROZEN MOISTURE CONTENTS C * FOR FREEZING/THAWING. C IMPLICIT NONE INTEGER IG,ILG,IL1,IL2,JL,I,J REAL THFREZ,THEVAP,HADD,THMELT C C * INPUT/OUTPUT ARRAYS. C REAL TBAR (ILG,IG), THLIQ (ILG,IG), THICE (ILG,IG), 1 HCP (ILG,IG), TBARW (ILG,IG), HMFG (ILG,IG), 2 HTC (ILG,IG) C C * INPUT ARRAYS. C REAL FI (ILG), EVAP (ILG) C REAL THPOR (ILG,IG), THLMIN(ILG,IG), HCPS (ILG,IG), 1 DELZW (ILG,IG), DELZZ (ILG,IG) C INTEGER ISAND (ILG,IG) C #include "class_com.cdk"
C----------------------------------------------------------------------- DO 100 J=1,IG DO 100 I=IL1,IL2 IF(FI(I).GT.0..AND.ISAND(I,1).GT.-4.AND.DELZW(I,J).GT.0.)THEN HCP (I,J)=HCPW*THLIQ(I,J)+HCPICE*THICE(I,J)+ 1 HCPS(I,J)*(1.-THPOR(I,J)) HTC (I,J)=HTC(I,J)-FI(I)*(HCP(I,J)*DELZW(I,J)+ 1 HCPSND*(DELZZ(I,J)-DELZW(I,J)))* 2 (TBAR(I,J)+TFREZ)/DELT IF(TBAR(I,J).LT.0. .AND. THLIQ(I,J).GT.THLMIN(I,J)) THEN THFREZ=-(HCP(I,J)*DELZW(I,J)+HCPSND*(DELZZ(I,J)- 1 DELZW(I,J)))*TBAR(I,J)/(CLHMLT*RHOW*DELZW(I,J)) IF(J.EQ.1) THEN THEVAP=EVAP(I)*DELT/DELZW(I,J) ELSE THEVAP=0.0 ENDIF IF((THLIQ(I,J)-THLMIN(I,J)-THEVAP).GT.0.0) THEN IF(THFREZ.LE.(THLIQ(I,J)-THLMIN(I,J)-THEVAP)) THEN HMFG(I,J)=HMFG(I,J)-FI(I)*THFREZ*CLHMLT* 1 RHOW*DELZW(I,J)/DELT HTC(I,J)=HTC(I,J)-FI(I)*THFREZ*CLHMLT* 1 RHOW*DELZW(I,J)/DELT THLIQ(I,J)=THLIQ(I,J)-THFREZ THICE(I,J)=THICE(I,J)+THFREZ*RHOW/RHOICE HCP (I,J)=HCPW*THLIQ(I,J)+HCPICE*THICE(I,J)+ 1 HCPS(I,J)*(1.-THPOR(I,J)) TBAR (I,J)=0.0 ELSE HMFG(I,J)=HMFG(I,J)-FI(I)*(THLIQ(I,J)- 1 THLMIN(I,J)-THEVAP)*CLHMLT*RHOW*DELZW(I,J)/ 2 DELT HTC(I,J)=HTC(I,J)-FI(I)*(THLIQ(I,J)-THLMIN(I,J)- 1 THEVAP)*CLHMLT*RHOW*DELZW(I,J)/DELT HADD=(THFREZ-(THLIQ(I,J)-THLMIN(I,J)-THEVAP))* 1 CLHMLT*RHOW*DELZW(I,J) THICE(I,J)=THICE(I,J)+(THLIQ(I,J)-THLMIN(I,J)- 1 THEVAP)*RHOW/RHOICE THLIQ(I,J)=THLMIN(I,J)+THEVAP HCP (I,J)=HCPW*THLIQ(I,J)+HCPICE*THICE(I,J)+ 1 HCPS(I,J)*(1.-THPOR(I,J)) TBAR (I,J)=-HADD/(HCP(I,J)*DELZW(I,J)+HCPSND* 1 (DELZZ(I,J)-DELZW(I,J))) ENDIF ENDIF ENDIF C IF(TBAR(I,J).GT.0. .AND. THICE(I,J).GT.0.) THEN THMELT=(HCP(I,J)*DELZW(I,J)+HCPSND*(DELZZ(I,J)- 1 DELZW(I,J)))*TBAR(I,J)/(CLHMLT*RHOICE*DELZW(I,J)) IF(THMELT.LE.THICE(I,J)) THEN HMFG(I,J)=HMFG(I,J)+FI(I)*THMELT*CLHMLT* 1 RHOICE*DELZW(I,J)/DELT HTC(I,J)=HTC(I,J)+FI(I)*THMELT*CLHMLT* 1 RHOICE*DELZW(I,J)/DELT THICE(I,J)=THICE(I,J)-THMELT THLIQ(I,J)=THLIQ(I,J)+THMELT*RHOICE/RHOW HCP (I,J)=HCPW*THLIQ(I,J)+HCPICE*THICE(I,J)+ 1 HCPS(I,J)*(1.-THPOR(I,J)) TBAR (I,J)=0.0 ELSE HMFG(I,J)=HMFG(I,J)+FI(I)*THICE(I,J)*CLHMLT* 1 RHOICE*DELZW(I,J)/DELT HTC(I,J)=HTC(I,J)+FI(I)*THICE(I,J)*CLHMLT* 1 RHOICE*DELZW(I,J)/DELT HADD=(THMELT-THICE(I,J))*CLHMLT*RHOICE*DELZW(I,J) THLIQ(I,J)=THLIQ(I,J)+THICE(I,J)*RHOICE/RHOW THICE(I,J)=0.0 HCP (I,J)=HCPW*THLIQ(I,J)+HCPICE*THICE(I,J)+ 1 HCPS(I,J)*(1.-THPOR(I,J)) TBAR (I,J)=HADD/(HCP(I,J)*DELZW(I,J)+HCPSND* 1 (DELZZ(I,J)-DELZW(I,J))) ENDIF ENDIF HTC (I,J)=HTC(I,J)+FI(I)*(HCP(I,J)*DELZW(I,J)+ 1 HCPSND*(DELZZ(I,J)-DELZW(I,J)))* 2 (TBAR(I,J)+TFREZ)/DELT TBARW(I,J)=TBAR(I,J) HTC(I,J)=HTC(I,J)-FI(I)*(TBAR(I,J)+TFREZ)* 1 (HCPW*THLIQ(I,J)+HCPICE*THICE(I,J))* 2 DELZW(I,J)/DELT ENDIF 100 CONTINUE C RETURN END