SUBROUTINE WPREP(THLQCO, THLQGO, THLQCS, THLQGS, THICCO, THICGO, 1 1 THICCS, THICGS, HCPCO, HCPGO, HCPCS, HCPGS, 2 SPCC, SPCG, SPCCS, SPCGS, TSPCC, TSPCG, 3 TSPCCS, TSPCGS, RPCC, RPCG, RPCCS, RPCGS, 4 TRPCC, TRPCG, TRPCCS, TRPCGS, EVPIC, EVPIG, 5 EVPICS, EVPIGS, ZPONDC, ZPONDG, ZPNDCS, ZPNDGS, 6 XSNOWC, XSNOWG, XSNOCS, XSNOGS, ZSNOWC, ZSNOWG, 7 ZSNOCS, ZSNOGS, ALBSC, ALBSG, ALBSCS, ALBSGS, 8 RHOSC, RHOSG, RHOSCS, RHOSGS, HCPSC, HCPSG, 9 HCPSCS, HCPSGS, RUNFC, RUNFG, RUNFCS, RUNFGS, A SUBLC, SUBLCS, WLOSTC, WLOSTG, WLSTCS, WLSTGS, B RAC, RACS, SNC, SNCS, TSNOWC, TSNOWG, C OVRFLW, SUBFLW, BASFLW, D PCFC, PCLC, PCPN, PCPG, QFCF, QFCL, E QFN, QFG, QFC, HMFN, HMFG, F ROVG, ROFC, ROFN, G DT, ZERO, IZERO, DELZZ, G FC, FG, FCS, FGS, H THLIQC, THLIQG, THICEC, THICEG, HCPC, HCPG, I FSVF, FSVFS, RAICAN, SNOCAN, RAICNS, SNOCNS, J EVAPC, EVAPCG, EVAPG, EVAPCS, EVPCSG, EVAPGS, K RPCP, TRPCP, SPCP, TSPCP, RHOSNI, L ZPOND, ZSNOW, ALBSNO, RHOSNO, M THPOR, HCPS, ISAND, DELZW, N ILG, IL1, IL2, JL, IG, O NLANDCS,NLANDGS,NLANDC, NLANDG, RADD, SADD ) C C * AUG 19/04 - Y.DELAGE. REGROUP COMMON BLOCKS C * MAKE DECLARATIONS EXPLICIT C * SEP 26/02 - D.VERSEGHY. MODIFICATIONS ASSOCIATED WITH BUGFIX C * IN SUBCAN. C * AUG 06/02 - D.VERSEGHY. SHORTENED CLASS3 COMMON BLOCK. C * JUN 18/02 - D.VERSEGHY. MOVE PARTITIONING OF PRECIPITATION C * BETWEEN RAINFALL AND SNOWFALL INTO C * "CLASSI"; TIDY UP SUBROUTINE CALL; C * CHANGE RHOSNI FROM CONSTANT TO C * VARIABLE. C * OCT 04/01 - M.LAZARE. NEW DIAGNOSTIC FIELD "ROVG". C * NOV 09/00 - D.VERSEGHY. MOVE DIAGNOSTIC CALCULATIONS FROM C * SUBCAN INTO THIS ROUTINE. C * JUN 20/97 - D.VERSEGHY. CLASS - VERSION 2.7. C * CHANGES RELATED TO VARIABLE SOIL DEPTH C * (MOISTURE HOLDING CAPACITY) AND DEPTH- C * VARYING SOIL PROPERTIES. C * JAN 02/95 - D.VERSEGHY. CLASS - VERSION 2.5. C * COMPLETION OF ENERGY BALANCE C * DIAGNOSTICS; INTRODUCE CALCULATION OF C * OVERLAND FLOW. C * AUG 24/95 - D.VERSEGHY. CLASS - VERSION 2.4. C * RATIONALIZE USE OF "WLOST": C * COMPLETION OF WATER BUDGET DIAGNOSTICS. C * AUG 18/95 - D.VERSEGHY. REVISIONS TO ALLOW FOR INHOMOGENEITY C * BETWEEN SOIL LAYERS AND FRACTIONAL C * ORGANIC MATTER CONTENT. C * DEC 16/94 - D.VERSEGHY. CLASS - VERSION 2.3. C * INITIALIZE TWO NEW DIAGNOSTIC FIELDS. C * AUG 20/93 - D.VERSEGHY. CLASS - VERSION 2.2. C * REVISED CALCULATION OF CANOPY C * SUBLIMATION RATE. C * JUL 30/93 - D.VERSEGHY/M.LAZARE. NEW DIAGNOSTIC FIELDS. C * APR 15/92 - D.VERSEGHY/M.LAZARE. CLASS - VERSION 2.1. C * 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. PREPARATION AND INITIALIZATION FOR C * LAND SURFACE WATER BUDGET CALCULATIONS. IMPLICIT NONE INTEGER I,J,ILG, IL1, IL2, JL, IG, 1 NLANDCS,NLANDGS,NLANDC, NLANDG C C * OUTPUT ARRAYS. C REAL THLQCO(ILG,IG),THLQGO(ILG,IG),THLQCS(ILG,IG),THLQGS(ILG,IG), 1 THICCO(ILG,IG),THICGO(ILG,IG),THICCS(ILG,IG),THICGS(ILG,IG), 2 HCPCO (ILG,IG),HCPGO (ILG,IG),HCPCS (ILG,IG),HCPGS (ILG,IG), 3 QFC (ILG,IG),HMFG (ILG,IG) C REAL SPCC (ILG), SPCG (ILG), SPCCS (ILG), SPCGS (ILG), 1 TSPCC (ILG), TSPCG (ILG), TSPCCS(ILG), TSPCGS(ILG), 2 RPCC (ILG), RPCG (ILG), RPCCS (ILG), RPCGS (ILG), 3 TRPCC (ILG), TRPCG (ILG), TRPCCS(ILG), TRPCGS(ILG), 4 EVPIC (ILG), EVPIG (ILG), EVPICS(ILG), EVPIGS(ILG), 5 ZPONDC(ILG), ZPONDG(ILG), ZPNDCS(ILG), ZPNDGS(ILG), 6 XSNOWC(ILG), XSNOWG(ILG), XSNOCS(ILG), XSNOGS(ILG), 7 ZSNOWC(ILG), ZSNOWG(ILG), ZSNOCS(ILG), ZSNOGS(ILG), 8 ALBSC (ILG), ALBSG (ILG), ALBSCS(ILG), ALBSGS(ILG), 9 RHOSC (ILG), RHOSG (ILG), RHOSCS(ILG), RHOSGS(ILG), A HCPSC (ILG), HCPSG (ILG), HCPSCS(ILG), HCPSGS(ILG), B RUNFC (ILG), RUNFG (ILG), RUNFCS(ILG), RUNFGS(ILG) C REAL SUBLC (ILG), SUBLCS(ILG), WLOSTC(ILG), WLOSTG(ILG), 1 WLSTCS(ILG), WLSTGS(ILG), RAC (ILG), RACS (ILG), 2 SNC (ILG), SNCS (ILG), TSNOWC(ILG), TSNOWG(ILG), 3 OVRFLW(ILG), SUBFLW(ILG), BASFLW(ILG), 4 PCFC (ILG), PCLC (ILG), PCPN (ILG), PCPG (ILG), 5 QFCF (ILG), QFCL (ILG), QFN (ILG), QFG (ILG), 6 HMFN (ILG), ROVG (ILG), ROFC (ILG), ROFN (ILG), 7 DT (ILG), ZERO (ILG) C INTEGER IZERO (ILG) C C * INPUT ARRAYS. C REAL FC (ILG), FG (ILG), FCS (ILG), FGS (ILG), 1 FSVF (ILG), FSVFS (ILG), RAICAN(ILG), SNOCAN(ILG), 2 RAICNS(ILG), SNOCNS(ILG), EVAPC (ILG), EVAPCG(ILG), 3 EVAPG (ILG), EVAPCS(ILG), EVPCSG(ILG), EVAPGS(ILG), 4 RPCP (ILG), TRPCP (ILG), SPCP (ILG), TSPCP (ILG), 5 RHOSNI(ILG), ZPOND (ILG), ZSNOW (ILG), ALBSNO(ILG), 6 RHOSNO(ILG) C REAL THLIQC(ILG,IG),THLIQG(ILG,IG),THICEC(ILG,IG),THICEG(ILG,IG), 1 HCPC (ILG,IG),HCPG (ILG,IG) C C * SOIL INFORMATION ARRAYS. C REAL THPOR (ILG,IG),HCPS (ILG,IG),DELZZ (ILG,IG), 1 DELZW (ILG,IG) C INTEGER ISAND (ILG,IG) C C * INTERNAL WORK ARRAYS. C REAL RADD (ILG), SADD (ILG) C #include "class_com.cdk"
C----------------------------------------------------------------------- C * INITIALIZE 2-D ARRAYS. C DO 50 J=1,IG DO 50 I=IL1,IL2 THLQCO(I,J)=0.0 THLQGO(I,J)=0.0 THLQCS(I,J)=0.0 THLQGS(I,J)=0.0 THICCO(I,J)=0.0 THICGO(I,J)=0.0 THICCS(I,J)=0.0 THICGS(I,J)=0.0 HCPCO (I,J)=0.0 HCPGO (I,J)=0.0 HCPCS (I,J)=0.0 HCPGS (I,J)=0.0 QFC (I,J)=0.0 HMFG (I,J)=0.0 50 CONTINUE C C * INITIALIZE OTHER DIAGNOSTIC AND WORK ARRAYS. C DO 100 I=IL1,IL2 EVPICS(I)=EVAPCS(I)+EVPCSG(I) EVPIGS(I)=EVAPGS(I) EVPIC (I)=EVAPC (I)+EVAPCG(I) EVPIG (I)=EVAPG (I) TSNOWC(I)=0.0 TSNOWG(I)=0.0 WLOSTC(I)=0.0 WLOSTG(I)=0.0 WLSTCS(I)=0.0 WLSTGS(I)=0.0 RAC (I)=RAICAN(I) RACS (I)=RAICNS(I) SNC (I)=SNOCAN(I) SNCS (I)=SNOCNS(I) PCFC (I)=0.0 PCLC (I)=0.0 PCPN (I)=0.0 PCPG (I)=0.0 QFCF (I)=0.0 QFCL (I)=0.0 QFN (I)=0.0 QFG (I)=0.0 HMFN (I)=0.0 ROVG (I)=0.0 ROFC (I)=0.0 ROFN (I)=0.0 OVRFLW(I)=0.0 SUBFLW(I)=0.0 BASFLW(I)=0.0 ZPONDC(I)=0.0 ZPONDG(I)=0.0 ZPNDCS(I)=0.0 ZPNDGS(I)=0.0 XSNOWC(I)=0.0 XSNOWG(I)=0.0 XSNOCS(I)=0.0 XSNOGS(I)=0.0 ZSNOWC(I)=0.0 ZSNOWG(I)=0.0 ZSNOCS(I)=0.0 ZSNOGS(I)=0.0 ALBSC (I)=0.0 ALBSG (I)=0.0 ALBSCS(I)=0.0 ALBSGS(I)=0.0 RHOSC (I)=0.0 RHOSG (I)=0.0 RHOSCS(I)=0.0 RHOSGS(I)=0.0 HCPSC (I)=0.0 HCPSG (I)=0.0 HCPSCS(I)=0.0 HCPSGS(I)=0.0 RUNFC (I)=0.0 RUNFG (I)=0.0 RUNFCS(I)=0.0 RUNFGS(I)=0.0 DT (I)=DELT ZERO (I)=0. IZERO (I)=0 DELZZ (I,1)=DELZ(1) DELZZ (I,2)=DELZ(2) C DELZZ (I,2)=DELZW(I,2) DELZZ (I,3)=DELZW(I,3) C C * PRECIPITATION DIAGNOSTICS. C IF(RPCP(I).GT.0.) THEN PCLC(I)=(FCS(I)*(1.0-FSVFS(I))+FC(I)*(1.0-FSVF(I)))* 1 RPCP(I)*RHOW PCPN(I)=(FCS(I)*FSVFS(I)+FGS(I))*RPCP(I)*RHOW PCPG(I)=(FC(I)*FSVF(I)+FG(I))*RPCP(I)*RHOW ENDIF C IF(SPCP(I).GT.0.) THEN PCFC(I)=(FCS(I)*(1.0-FSVFS(I))+FC(I)*(1.0-FSVF(I)))* 1 SPCP(I)*RHOSNI(I) PCPN(I)=PCPN(I)+(FCS(I)*FSVFS(I)+FGS(I)+ 1 FC(I)*FSVF(I)+FG(I))*SPCP(I)*RHOSNI(I) ENDIF 100 CONTINUE C C * RAINFALL/SNOWFALL RATES OVER GRID CELL SUBAREAS. DOWNWARD C * WATER FLUXES ARE LUMPED TOGETHER WITH PRECIPITATION, AND C * UPWARD AND DOWNWARD WATER FLUXES CANCEL OUT. C C * CALCULATIONS FOR CANOPY OVER SNOW. C IF(NLANDCS.GT.0) THEN C DO 200 J=1,IG DO 200 I=IL1,IL2 IF(FCS(I).GT.0.) THEN THLQCS(I,J)=THLIQC(I,J) THICCS(I,J)=THICEC(I,J) HCPCS (I,J)=HCPC (I,J) ENDIF 200 CONTINUE C DO 250 I=IL1,IL2 IF(FCS(I).GT.0.) THEN IF(SNOCNS(I).GT.0.) THEN SUBLCS(I)=EVAPCS(I)*(CLHMLT+CLHVAP)*SNOCNS(I)/ 1 (CLHVAP*RAICNS(I)+(CLHVAP+CLHMLT)* 2 SNOCNS(I)) EVAPCS(I)=EVAPCS(I)-SUBLCS(I) ELSE SUBLCS(I)=0.0 ENDIF IF(SUBLCS(I).GT.0.0) THEN QFCF(I)=QFCF(I)+FCS(I)*SUBLCS(I)*RHOW ELSE QFCF(I)=QFCF(I)+FCS(I)*(1.0-FSVFS(I))*SUBLCS(I)* 1 RHOW QFN(I)=QFN(I)+FCS(I)*FSVFS(I)*SUBLCS(I)*RHOW ENDIF IF(EVAPCS(I).GT.0.0) THEN QFCL(I)=QFCL(I)+FCS(I)*EVAPCS(I)*RHOW ELSE QFCL(I)=QFCL(I)+FCS(I)*(1.0-FSVFS(I))*EVAPCS(I)* 1 RHOW QFN(I)=QFN(I)+FCS(I)*FSVFS(I)*EVAPCS(I)*RHOW ENDIF C IF(SPCP(I).GT.0. .OR. SUBLCS(I).LT.0.) THEN SADD(I)=SPCP(I)-SUBLCS(I)*RHOW/RHOSNI(I) IF(SADD(I).GT.0.0) THEN IF(SUBLCS(I).GT.0.) THEN QFCF(I)=QFCF(I)-FCS(I)*FSVFS(I)* 1 SUBLCS(I)*RHOW QFN(I)=QFN(I)+FCS(I)*FSVFS(I)* 1 SUBLCS(I)*RHOW ENDIF SPCCS (I)=SADD(I) TSPCCS(I)=TSPCP(I)+TFREZ SUBLCS(I)=0.0 ELSE PCPN(I)=PCPN(I)-FCS(I)*FSVFS(I)*SPCP(I)* 1 RHOSNI(I) PCFC(I)=PCFC(I)+FCS(I)*FSVFS(I)*SPCP(I)* 1 RHOSNI(I) SUBLCS(I)=-SADD(I)*RHOSNI(I)/RHOW SPCCS (I)=0.0 TSPCCS(I)=0.0 ENDIF ELSE SPCCS(I)=0.0 TSPCCS(I)=0.0 ENDIF C IF(RPCP(I).GT.0. .OR. EVAPCS(I).LT.0.) THEN RADD(I)=RPCP(I)-EVAPCS(I) if(ABS(RADD(I)) .LT. 1.0E-20) RADD(I) = 0.0 IF(RADD(I).GT.0.) THEN IF(EVAPCS(I).GT.0.) THEN QFCL(I)=QFCL(I)-FCS(I)*FSVFS(I)* 1 EVAPCS(I)*RHOW QFN(I)=QFN(I)+FCS(I)*FSVFS(I)* 1 EVAPCS(I)*RHOW ENDIF RPCCS (I)=RADD(I) TRPCCS(I)=TRPCP(I)+TFREZ EVAPCS(I)=0.0 ELSE PCPN(I)=PCPN(I)-FCS(I)*FSVFS(I)*RPCP(I)*RHOW PCLC(I)=PCLC(I)+FCS(I)*FSVFS(I)*RPCP(I)*RHOW EVAPCS(I)=-RADD(I) RPCCS (I)=0.0 TRPCCS(I)=0.0 ENDIF ELSE RPCCS(I)=0.0 TRPCCS(I)=0.0 ENDIF ZPNDCS(I)=ZPOND (I) ZSNOCS(I)=ZSNOW (I) ALBSCS(I)=ALBSNO(I) RHOSCS(I)=RHOSNO(I) HCPSCS(I)=HCPICE*RHOSNO(I)/RHOICE QFN (I)=QFN(I)+FCS(I)*EVPCSG(I)*RHOW ENDIF 250 CONTINUE ENDIF C C * CALCULATIONS FOR SNOW-COVERED GROUND. C IF(NLANDGS.GT.0) THEN C DO 300 J=1,IG DO 300 I=IL1,IL2 IF(FGS(I).GT.0.) THEN THLQGS(I,J)=THLIQG(I,J) THICGS(I,J)=THICEG(I,J) HCPGS (I,J)=HCPG (I,J) ENDIF 300 CONTINUE C DO 350 I=IL1,IL2 IF(FGS(I).GT.0.) THEN QFN(I)=QFN(I)+FGS(I)*EVAPGS(I)*RHOW IF(SPCP(I).GT.0. .OR. EVAPGS(I).LT.0.) THEN SADD(I)=SPCP(I)-EVAPGS(I)*RHOW/RHOSNI(I) IF(SADD(I).GT.0.0) THEN SPCGS (I)=SADD(I) TSPCGS(I)=TSPCP(I) EVAPGS(I)=0.0 ELSE EVAPGS(I)=-SADD(I)*RHOSNI(I)/RHOW SPCGS (I)=0.0 TSPCGS(I)=0.0 ENDIF ELSE SPCGS (I)=0.0 TSPCGS(I)=0.0 ENDIF C IF(RPCP(I).GT.0.) THEN RADD(I)=RPCP(I)-EVAPGS(I) if(ABS(RADD(I)) .LT. 1.0E-20) RADD(I) = 0.0 IF(RADD(I).GT.0.) THEN RPCGS (I)=RADD(I) TRPCGS(I)=TRPCP(I) EVAPGS(I)=0.0 ELSE EVAPGS(I)=-RADD(I) RPCGS (I)=0.0 TRPCGS(I)=0.0 ENDIF ELSE RPCGS (I)=0.0 TRPCGS(I)=0.0 ENDIF ZPNDGS(I)=ZPOND (I) ZSNOGS(I)=ZSNOW (I) ALBSGS(I)=ALBSNO(I) RHOSGS(I)=RHOSNO(I) HCPSGS(I)=HCPICE*RHOSNO(I)/RHOICE ENDIF 350 CONTINUE ENDIF C C * CALCULATIONS FOR CANOPY OVER BARE GROUND. C IF(NLANDC.GT.0) THEN C DO 400 J=1,IG DO 400 I=IL1,IL2 IF(FC(I).GT.0.) THEN THLQCO(I,J)=THLIQC(I,J) THICCO(I,J)=THICEC(I,J) HCPCO (I,J)=HCPC (I,J) ENDIF 400 CONTINUE C DO 450 I=IL1,IL2 IF(FC(I).GT.0.) THEN IF(SNOCAN(I).GT.0.) THEN SUBLC(I)=EVAPC(I)*(CLHMLT+CLHVAP)*SNOCAN(I)/ 1 (CLHVAP*RAICAN(I)+(CLHVAP+CLHMLT)* 2 SNOCAN(I)) EVAPC(I)=EVAPC(I)-SUBLC(I) ELSE SUBLC(I)=0.0 ENDIF IF(SUBLC(I).GT.0.0) THEN QFCF(I)=QFCF(I)+FC(I)*SUBLC(I)*RHOW ELSE QFCF(I)=QFCF(I)+FC(I)*(1.0-FSVF(I))*SUBLC(I)* 1 RHOW QFN(I)=QFN(I)+FC(I)*FSVF(I)*SUBLC(I)*RHOW ENDIF IF(EVAPC(I).GT.0.0) THEN QFCL(I)=QFCL(I)+FC(I)*EVAPC(I)*RHOW ELSE QFCL(I)=QFCL(I)+FC(I)*(1.0-FSVF(I))*EVAPC(I)* 1 RHOW QFG(I)=QFG(I)+FC(I)*FSVF(I)*EVAPC(I)*RHOW ENDIF C IF(SPCP(I).GT.0. .OR. SUBLC(I).LT.0.) THEN SADD(I)=SPCP(I)-SUBLC(I)*RHOW/RHOSNI(I) IF(SADD(I).GT.0.0) THEN IF(SUBLC(I).GT.0.) THEN QFCF(I)=QFCF(I)-FC(I)*FSVF(I)*SUBLC(I)* 1 RHOW QFN(I)=QFN(I)+FC(I)*FSVF(I)*SUBLC(I)* 1 RHOW ENDIF SPCC (I)=SADD(I) TSPCC (I)=TSPCP(I)+TFREZ SUBLC (I)=0.0 ELSE PCPN(I)=PCPN(I)-FC(I)*FSVF(I)*SPCP(I)* 1 RHOSNI(I) PCFC(I)=PCFC(I)+FC(I)*FSVF(I)*SPCP(I)* 1 RHOSNI(I) SUBLC (I)=-SADD(I)*RHOSNI(I)/RHOW SPCC (I)=0.0 TSPCC (I)=0.0 ENDIF ELSE SPCC (I)=0.0 TSPCC (I)=0.0 ENDIF C IF(RPCP(I).GT.0. .OR. EVAPC(I).LT.0.) THEN RADD(I)=RPCP(I)-EVAPC(I) if(ABS(RADD(I)) .LT. 1.0E-20) RADD(I) = 0.0 IF(RADD(I).GT.0.) THEN IF(EVAPC(I).GT.0.) THEN QFCL(I)=QFCL(I)-FC(I)*FSVF(I)*EVAPC(I)* 1 RHOW QFG(I)=QFG(I)+FC(I)*FSVF(I)*EVAPC(I)* 1 RHOW ENDIF RPCC (I)=RADD(I) TRPCC (I)=TRPCP(I)+TFREZ EVAPC (I)=0.0 ELSE PCPG(I)=PCPG(I)-FC(I)*FSVF(I)*RPCP(I)*RHOW PCLC(I)=PCLC(I)+FC(I)*FSVF(I)*RPCP(I)*RHOW EVAPC (I)=-RADD(I) RPCC (I)=0.0 TRPCC (I)=0.0 ENDIF ELSE RPCC (I)=0.0 TRPCC (I)=0.0 ENDIF ZPONDC(I)=ZPOND (I) ZSNOWC(I)=0. RHOSC (I)=0. HCPSC (I)=0. QFG (I)=QFG(I)+FC(I)*EVAPCG(I)*RHOW ENDIF 450 CONTINUE ENDIF C C * CALCULATIONS FOR BARE GROUND. C IF(NLANDG.GT.0) THEN C DO 500 J=1,IG DO 500 I=IL1,IL2 IF(FG(I).GT.0.) THEN THLQGO(I,J)=THLIQG(I,J) THICGO(I,J)=THICEG(I,J) HCPGO (I,J)=HCPG (I,J) ENDIF 500 CONTINUE C DO 550 I=IL1,IL2 IF(FG(I).GT.0.) THEN QFG(I)=QFG(I)+FG(I)*EVAPG(I)*RHOW IF(SPCP(I).GT.0.) THEN SADD(I)=SPCP(I)-EVAPG(I)*RHOW/RHOSNI(I) IF(SADD(I).GT.0.0) THEN QFN(I)=QFN(I)+FG(I)*EVAPG(I)*RHOW QFG(I)=QFG(I)-FG(I)*EVAPG(I)*RHOW SPCG (I)=SADD(I) TSPCG (I)=TSPCP(I) EVAPG (I)=0.0 ELSE PCPN(I)=PCPN(I)-FG(I)*SPCP(I)*RHOSNI(I) PCPG(I)=PCPG(I)+FG(I)*SPCP(I)*RHOSNI(I) EVAPG (I)=-SADD(I)*RHOSNI(I)/RHOW SPCG (I)=0.0 TSPCG (I)=0.0 ENDIF ELSE SPCG (I)=0.0 TSPCG (I)=0.0 ENDIF C IF(RPCP(I).GT.0. .OR. EVAPG(I).LT.0.) THEN RADD(I)=RPCP(I)-EVAPG(I) if(ABS(RADD(I)) .LT. 1.0E-20) RADD(I) = 0.0 IF(RADD(I).GT.0.) THEN RPCG (I)=RADD(I) TRPCG (I)=TRPCP(I) EVAPG (I)=0.0 ELSE EVAPG (I)=-RADD(I) RPCG (I)=0.0 TRPCG (I)=0.0 ENDIF ELSE RPCG (I)=0.0 TRPCG(I)=0.0 ENDIF ZPONDG(I)=ZPOND (I) ZSNOWG(I)=0. RHOSG (I)=0. HCPSG (I)=0. ENDIF 550 CONTINUE ENDIF C RETURN END