SUBROUTINE CLASSW(THLIQ, THICE, TBAR, TCAN, RCAN, SCAN, 1,58
1 RUNOFF, SNO, TSNOW, RHOSNO, ALBSNO,
2 ZPOND, TPOND, GROWTH, TBASE,
3 PCFC, PCLC, PCPN, PCPG, QFCF, QFCL,
4 QFN, QFG, QFC, HMFC, HMFG, HMFN,
5 HTCC, HTCS, HTC, ROFC, ROFN, ROVG,
6 WTRS, WTRG, OVRFLW, SUBFLW, BASFLW, EVAP,
7 TBARC, TBARG, TBARCS, TBARGS, THLIQC, THLIQG,
8 THICEC, THICEG, HCPC, HCPG, RPCP, TRPCP,
9 SPCP, TSPCP, PCPR, TA, RHOSNI,
A FC, FG, FCS, FGS, TPONDC, TPONDG,
B TPNDCS, TPNDGS, EVAPC, EVAPCG, EVAPG, EVAPCS,
C EVPCSG, EVAPGS, QFREZC, QFREZG, QMELTC, QMELTG,
D RAICAN, SNOCAN, RAICNS, SNOCNS, FROOT, AILCAN,
E AILCNS, FSVF, FSVFS, CWCAP, CWCAPS, TCANO,
F TCANS, CHCAP, CHCAPS, CMASSC, CMASCS, ZSNOW,
G GZEROC, GZEROG, GZROCS, GZROGS, G12C, G12G,
H G12CS, G12GS, G23C, G23G, G23CS, G23GS,
I TSNOCS, TSNOGS, ZPLIMC, ZPLIMG, ZPLMCS, ZPLMGS,
J THPOR, THLRET, THLMIN, BI, PSISAT, GRKSAT,
K GRKTLD, THLRAT, THFC, XDRAIN, HCPS,
L DELZW, ZBOTW, XSLOPE, GRKFAC, WFSURF, WFCINT,
M ISAND, IWF, ILG, IL1, IL2,
N JL, IC, IG, IGP1, IGP2,
O NLANDCS,NLANDGS,NLANDC, NLANDG, NLANDI)
C
C * AUG 19/04 - Y.DELAGE. REMOVE WORK ARRAYS FROM ARGUMENT LIST
C REGROUP COMMON BLOCKS
C MAKE DECLARATIONS EXPLICIT
C * DEC 09/02 - D.VERSEGHY. SWITCH CALLING ORDER OF TFREEZ AND
C * SNOVAP FOR CONSISTENCY WITH DIAGNOSTICS.
C * SEP 26.02 - D.VERSEGHY. CHANGED CALL TO SUBCAN.
C * AUG 01/02 - D.VERSEGHY. ADD CALL TO WATROF, NEW SUBROUTINE
C * CONTAINING WATERLOO OVERLAND FLOW
C * AND INTERFLOW CALCULATIONS.
C * SHORTENED CLASS3 COMMON BLOCK.
C * JUL 03/02 - D.VERSEGHY. STREAMLINE SUBROUTINE CALLS; MOVE
C * CALCULATION OF BACKGROUND SOIL
C * PROPERTIES INTO "CLASSB"; CHANGE
C * RHOSNI FROM CONSTANT TO VARIABLE.
C * OCT 04/01 - M.LAZARE. REMOVE SEVERAL OLD DIAGNOSTIC FIELDS
C * AND ADD NEW FIELD "ROVG".
C * MAY 14/01 - M.LAZARE. ADD CALLS TO SUBROUTINE "SNOVAP" FOR
C * FC AND FG SUBAREAS OF GRID CELL.
C * OCT 20/00 - D.VERSEGHY. ADD WORK ARRAY "RHOMAX" FOR SNOALBW.
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/96 - D.VERSEGHY. CLASS - VERSION 2.5.
C * COMPLETION OF ENERGY BALANCE
C * DIAGNOSTICS; INTRODUCE CALCULATION OF
C * OVERLAND FLOW.
C * AUG 30/95 - D.VERSEGHY. CLASS - VERSION 2.4.
C * VARIABLE SURFACE DETENTION CAPACITY
C * IMPLEMENTED.
C * AUG 24/95 - D.VERSEGHY. UPDATE ARRAY "EVAP" TO TAKE INTO
C * ACCOUNT "WLOST"; RATIONALIZE
C * CALCULATION OF THE LATTER.
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 22/94 - D.VERSEGHY. CLASS - VERSION 2.3.
C * CHANGES TO SUBROUTINE CALLS ASSOCIATED
C * WITH REVISIONS TO DIAGNOSTICS.
C * ALLOW SPECIFICATION OF LIMITING POND
C * DEPTH "PNDLIM" (PARALLEL CHANGES MADE
C * SIMULTANEOUSLY IN TMCALC).
C * DEC 16/94 - D.VERSEGHY. TWO NEW DIAGNOSTIC FIELDS.
C * NOV 18/93 - D.VERSEGHY. LOCAL VERSION WITH INTERNAL WORK ARRAYS
C * HARD-CODED FOR USE ON PCS.
C * NOV 01/93 - D.VERSEGHY. CLASS - VERSION 2.2.
C * REVISIONS ASSOCIATED WITH NEW VERSION
C * OF TMCALC.
C * JUL 30/93 - D.VERSEGHY/M.LAZARE. NUMEROUS NEW DIAGNOSTIC FIELDS.
C * MAY 06/93 - D.VERSEGHY/M.LAZARE. CORRECT BUG IN CALL TO TMCALC
C * FOR CANOPY-SNOW CASE, WHERE
C * SHOULD BE PASSING "HCPCS"
C * INSTEAD OF "HCPGS".
C * MAY 15/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. LAND SURFACE WATER BUDGET CALCULATIONS.
C
IMPLICIT NONE
INTEGER IWF,I, ILG,IL1, IL2,JL, IC,IG,IGP1,IGP2,J
INTEGER IPTBAD,JPTBAD,KPTBAD,LPTBAD
INTEGER NLANDCS,NLANDGS,NLANDC, NLANDG, NLANDI
C * MAIN OUTPUT FIELDS.
C
REAL THLIQ (ILG,IG), THICE (ILG,IG), TBAR (ILG,IG)
C
REAL TCAN (ILG), RCAN (ILG), SCAN (ILG), RUNOFF(ILG),
1 SNO (ILG), TSNOW (ILG), RHOSNO(ILG), ALBSNO(ILG),
2 ZPOND (ILG), TPOND (ILG), GROWTH(ILG), TBASE (ILG)
C
C * DIAGNOSTIC ARRAYS.
C
REAL PCFC (ILG), PCLC (ILG), PCPN (ILG), PCPG (ILG),
1 QFCF (ILG), QFCL (ILG), QFN (ILG), QFG (ILG),
2 HMFC (ILG), HMFN (ILG), HTCC (ILG), HTCS (ILG),
3 ROFC (ILG), ROFN (ILG), ROVG (ILG), WTRS (ILG),
4 WTRG (ILG), OVRFLW(ILG), SUBFLW(ILG), BASFLW(ILG),
5 EVAP (ILG)
C
REAL QFC (ILG,IG), HMFG (ILG,IG), HTC (ILG,IG)
C
C * I/O FIELDS PASSED THROUGH CLASS.
C
REAL RPCP (ILG), TRPCP (ILG), SPCP (ILG), TSPCP (ILG),
1 PCPR (ILG), TA (ILG)
C
REAL TBARC(ILG,IG), TBARG(ILG,IG), TBARCS(ILG,IG),TBARGS(ILG,IG),
1 THLIQC(ILG,IG),THLIQG(ILG,IG),THICEC(ILG,IG),THICEG(ILG,IG),
2 HCPC (ILG,IG),HCPG (ILG,IG),FROOT(ILG,IG)
C
REAL FC (ILG), FG (ILG), FCS (ILG), FGS (ILG),
1 TPONDC(ILG), TPONDG(ILG), TPNDCS(ILG), TPNDGS(ILG),
2 EVAPC (ILG), EVAPCG(ILG), EVAPG (ILG), EVAPCS(ILG),
3 EVPCSG(ILG), EVAPGS(ILG), QFREZC(ILG), QFREZG(ILG),
4 QMELTC(ILG), QMELTG(ILG), RAICAN(ILG), SNOCAN(ILG),
5 RAICNS(ILG), SNOCNS(ILG), AILCAN(ILG), AILCNS(ILG),
6 FSVF (ILG), FSVFS (ILG), CWCAP (ILG), CWCAPS(ILG),
7 TCANO (ILG), TCANS (ILG), CHCAP (ILG), CHCAPS(ILG),
8 CMASSC(ILG), CMASCS(ILG), ZSNOW (ILG), RHOSNI(ILG),
9 GZEROC(ILG), GZEROG(ILG), GZROCS(ILG), GZROGS(ILG),
A G12C (ILG), G12G (ILG), G12CS (ILG), G12GS (ILG),
B G23C (ILG), G23G (ILG), G23CS (ILG), G23GS (ILG),
C TSNOCS(ILG), TSNOGS(ILG), ZPLIMC(ILG), ZPLIMG(ILG),
D ZPLMCS(ILG), ZPLMGS(ILG)
C
C * SOIL PROPERTY ARRAYS.
C
REAL THPOR (ILG,IG),THLRET(ILG,IG),THLMIN(ILG,IG),BI (ILG,IG),
1 GRKSAT(ILG,IG),PSISAT(ILG,IG),GRKTLD(ILG,IG),THLRAT(ILG,IG),
2 THFC (ILG,IG),HCPS (ILG,IG),DELZW (ILG,IG),DELZZ (ILG,IG),
3 ZBOTW (ILG,IG),XDRAIN(ILG), XSLOPE(ILG), GRKFAC(ILG),
4 WFSURF(ILG), WFCINT(ILG)
C
INTEGER ISAND(ILG,IG)
C
C * INTERNAL WORK ARRAYS USED THROUGHOUT CLASSW.
C
REAL TBARWC(ILG,IG),TBARWG(ILG,IG),TBRWCS(ILG,IG),TBRWGS(ILG,IG),
1 THLQCO(ILG,IG),THLQGO(ILG,IG),THLQCS(ILG,IG),THLQGS(ILG,IG),
2 THICCO(ILG,IG),THICGO(ILG,IG),THICCS(ILG,IG),THICGS(ILG,IG),
3 HCPCO (ILG,IG),HCPGO (ILG,IG),HCPCS (ILG,IG),HCPGS (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 DT (ILG), ZERO (ILG), RALB (ILG)
C
C * INTERNAL WORK ARRAYS FOR WPREP AND CANADD.
C
REAL RADD (ILG), SADD (ILG)
C
C * INTERNAL WORK FIELDS FOR GRINFL/GRDRAN/ICEBAL (AND THEIR CALLED
C * ROUTINES (I.E. WFILL,WFLOW,WEND).
C
REAL ZMAT (ILG,IGP2,IGP1)
C
REAL WMOVE (ILG,IGP2), TMOVE (ILG,IGP2)
C
REAL THLIQX(ILG,IGP1), THICEX(ILG,IGP1), TBARWX(ILG,IGP1),
1 DELZX (ILG,IGP1), ZBOTX (ILG,IGP1), FDT (ILG,IGP1),
2 TFDT (ILG,IGP1), PSIF (ILG,IGP1), THLINF(ILG,IGP1),
3 GRKINF(ILG,IGP1), FDUMMY(ILG,IGP1), TDUMMY(ILG,IGP1),
4 ZRMDR (ILG,IGP1)
C
REAL THLMAX(ILG,IG), THTEST(ILG,IG), THLDUM(ILG,IG),
1 THIDUM(ILG,IG), TDUMW (ILG,IG)
C
REAL TRMDR (ILG), ZF (ILG), FMAX (ILG), TUSED (ILG),
1 RDUMMY(ILG), WEXCES(ILG), FDTBND(ILG), WADD (ILG),
2 TADD (ILG), WADJ (ILG), TIMPND(ILG), DZF (ILG),
3 DTFLOW(ILG), THLNLZ(ILG), THLQLZ(ILG), DZDISP(ILG),
4 WDISP (ILG), WABS (ILG), ZMOVE (ILG), TBOT (ILG)
C
INTEGER IGRN (ILG), IGRD (ILG), IZERO (ILG),
1 IFILL (ILG), LZF (ILG), NINF (ILG),
2 IFIND (ILG), ITER (ILG), NEND (ILG),
3 ISIMP (ILG), ICONT (ILG)
C
C * INTERNAL WORK ARRAYS FOR CANVAP AND SNOALBW.
C
REAL EVLOST(ILG), RLOST (ILG), RHOMAX(ILG)
C
INTEGER IROOT (ILG)
C
C * INTERNAL WORK ARRAYS FOR WATROF.
C
REAL THCRIT(ILG,IG), DODRN (ILG), DOVER(ILG),
1 DIDRN (ILG,IG), DIDRNMX(ILG,IG)
C
C * INTERNAL WORK ARRAYS FOR CHKWAT.
C
REAL BAL (ILG)
real zpacc,tpacc
C
#include "class_com.cdk"
C
C-----------------------------------------------------------------------
C * PREPARATION.
C
CALL WPREP
(THLQCO, THLQGO, THLQCS, THLQGS, THICCO, THICGO,
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,
H FC, FG, FCS, FGS,
I THLIQC, THLIQG, THICEC, THICEG, HCPC, HCPG,
J FSVF, FSVFS, RAICAN, SNOCAN, RAICNS, SNOCNS,
K EVAPC, EVAPCG, EVAPG, EVAPCS, EVPCSG, EVAPGS,
L RPCP, TRPCP, SPCP, TSPCP, RHOSNI,
M ZPOND, ZSNOW, ALBSNO, RHOSNO,
N THPOR, HCPS, ISAND, DELZW,
O ILG, IL1, IL2, JL, IG,
P NLANDCS,NLANDGS,NLANDC, NLANDG, RADD, SADD )
C
C * CALCULATIONS FOR CANOPY OVER SNOW.
C
IF(NLANDCS.GT.0) THEN
CALL CANVAP
(EVAPCS,SUBLCS,RAICNS,SNOCNS,TCANS,THLQCS,
1 TBARCS,ZSNOCS,WLSTCS,CHCAPS,QFCF,QFCL,QFN,QFC,
2 HTCC,HTCS,HTC,FCS,CMASCS,TSNOCS,HCPSCS,RHOSCS,
3 FROOT,THPOR,THLMIN,DELZW,EVLOST,RLOST,IROOT,
4 IG,ILG,IL1,IL2,JL )
CALL CANADD
(2,RPCCS,TRPCCS,SPCCS,TSPCCS,RAICNS,SNOCNS,
1 TCANS,CHCAPS,HTCC,ROFC,ROVG,PCPN,PCPG,
2 FCS,AILCNS,FSVFS,CWCAPS,CMASCS,RHOSNI,RADD,SADD,
3 ILG,IL1,IL2,JL)
CALL CWCALC
(TCANS,RAICNS,SNOCNS,CHCAPS,HMFC,HTCC,
1 FCS,CMASCS,ILG,IL1,IL2,JL)
CALL SUBCAN
(2,RPCCS,TRPCCS,SPCCS,TSPCCS,RHOSNI,EVPCSG,
1 QFN,QFG,FCS,ILG,IL1,IL2,JL)
CALL TWCALC
(TBARCS,THLQCS,THICCS,HCPCS,TBRWCS,HMFG,HTC,
1 FCS,ZERO,THPOR,THLMIN,HCPS,DELZW,DELZZ,ISAND,
2 IG,ILG,IL1,IL2,JL)
CALL SNOVAP
(RHOSCS,ZSNOCS,HCPSCS,TSNOCS,EVPCSG,
1 QFN,QFG,HTCS,WLSTCS,FCS,RPCCS,SPCCS,RHOSNI,
2 ILG,IL1,IL2,JL)
CALL TFREEZ
(ZPNDCS,TPNDCS,ZSNOCS,TSNOCS,ALBSCS,
1 RHOSCS,HCPSCS,GZROCS,HMFG,HTCS,HTC,
2 WTRS,WTRG,FCS,ZERO,TA,TBARCS,ISAND,
3 IG,ILG,IL1,IL2,JL)
CALL TMELT
(ZSNOCS,TSNOCS,QMELTC,RPCCS,TRPCCS,
1 GZROCS,RALB,HMFN,HTCS,HTC,FCS,HCPSCS,
2 RHOSCS,ISAND,IG,ILG,IL1,IL2)
CALL SNOADD
(ALBSCS,TSNOCS,RHOSCS,ZSNOCS,
1 HCPSCS,HTCS,FCS,SPCCS,TSPCCS,RHOSNI,
2 ILG,IL1,IL2,JL)
CALL SNINFL
(RPCCS,TRPCCS,ZSNOCS,TSNOCS,RHOSCS,
1 HCPSCS,HTCS,HMFN,PCPG,ROFN,FCS,ILG,IL1,IL2,JL)
CALL GRINFL
(1,THLQCS,THICCS,TBRWCS,BASFLW,RUNFCS,QFG,
1 WLSTCS,FCS,EVPCSG,RPCCS,TRPCCS,TPNDCS,ZPNDCS,
2 DT,ZMAT,WMOVE,TMOVE,THLIQX,THICEX,TBARWX,
3 DELZX,ZBOTX,FDT,TFDT,PSIF,THLINF,GRKINF,
4 THLMAX,THTEST,ZRMDR,FDUMMY,TDUMMY,THLDUM,
5 THIDUM,TDUMW,TRMDR,ZF,FMAX,TUSED,RDUMMY,
6 ZERO,WEXCES,FDTBND,WADD,TADD,WADJ,TIMPND,
7 DZF,DTFLOW,THLNLZ,THLQLZ,DZDISP,WDISP,WABS,
8 THPOR,THLRET,THLMIN,BI,PSISAT,GRKSAT,GRKTLD,
9 THLRAT,DELZW,ZBOTW,XDRAIN,ISAND,IGRN,
A IGRD,IFILL,IZERO,LZF,NINF,IFIND,ITER,
B NEND,ISIMP,IG,IGP1,IGP2,ILG,IL1,IL2,JL )
CALL GRDRAN
(1,THLQCS,THICCS,TBRWCS,FDUMMY,TDUMMY,BASFLW,
1 RUNFCS,QFG,WLSTCS,FCS,EVPCSG,RPCCS,ZPNDCS,
2 DT,WEXCES,THLMAX,THTEST,THPOR,THLRET,THLMIN,
3 BI,PSISAT,GRKSAT,DELZW,XDRAIN,ISAND,
4 IGRN,IGRD,IG,IGP1,IGP2,ILG,IL1,IL2,JL )
CALL WATROF
(THLQCS,THICCS,ZPNDCS,OVRFLW,SUBFLW,RUNFCS,
1 FCS,ZPLMCS,XSLOPE,GRKFAC,WFSURF,WFCINT,
2 DELZW,THPOR,THLMIN,BI,THFC,THCRIT,DODRN,DOVER,
3 DIDRN,DIDRNMX,ISAND,IWF,IG,ILG,IL1,IL2)
CALL TMCALC
(TBARCS,THLQCS,THICCS,HCPCS,TPNDCS,ZPNDCS,
1 TSNOCS,ZSNOCS,ALBSCS,RHOSCS,HCPSCS,TBASE,
2 OVRFLW,RUNFCS,HMFG,HTC,HTCS,WTRS,WTRG,FCS,
3 TBRWCS,GZROCS,G12CS,G23CS,TA,ZPLMCS,
4 THPOR,THLMIN,HCPS,DELZW,DELZZ,
5 ISAND,IWF,IG,ILG,IL1,IL2,JL)
CALL CHKWAT
(1,PCPR,EVPICS,RUNFCS,WLSTCS,RAICNS,SNOCNS,
1 RACS,SNCS,ZPNDCS,ZPOND,THLQCS,THICCS,
2 THLIQC,THICEC,ZSNOCS,RHOSCS,XSNOCS,SNO,
3 FCS,FGS,FCS,BAL,THPOR,THLMIN,DELZW,
4 ISAND,IG,ILG,IL1,IL2,JL )
CALL SNOALBW
(ALBSCS,RHOSCS,ZSNOCS,HCPSCS,
1 TSNOCS,FCS,SPCCS,RALB,RHOMAX,
2 ISAND,ILG,IG,IL1,IL2,JL)
ENDIF
C
C * CALCULATIONS FOR SNOW-COVERED GROUND.
C
IF(NLANDGS.GT.0) THEN
CALL TWCALC
(TBARGS,THLQGS,THICGS,HCPGS,TBRWGS,HMFG,HTC,
1 FGS,ZERO,THPOR,THLMIN,HCPS,DELZW,DELZZ,ISAND,
2 IG,ILG,IL1,IL2,JL)
CALL SNOVAP
(RHOSGS,ZSNOGS,HCPSGS,TSNOGS,EVAPGS,
1 QFN,QFG,HTCS,WLSTGS,FGS,RPCGS,SPCGS,RHOSNI,
2 ILG,IL1,IL2,JL)
CALL TFREEZ
(ZPNDGS,TPNDGS,ZSNOGS,TSNOGS,ALBSGS,
1 RHOSGS,HCPSGS,GZROGS,HMFG,HTCS,HTC,
2 WTRS,WTRG,FGS,ZERO,TA,TBARGS,ISAND,
3 IG,ILG,IL1,IL2,JL)
CALL TMELT
(ZSNOGS,TSNOGS,QMELTG,RPCGS,TRPCGS,
1 GZROGS,RALB,HMFN,HTCS,HTC,FGS,HCPSGS,
2 RHOSGS,ISAND,IG,ILG,IL1,IL2)
CALL SNOADD
(ALBSGS,TSNOGS,RHOSGS,ZSNOGS,
1 HCPSGS,HTCS,FGS,SPCGS,TSPCGS,RHOSNI,
2 ILG,IL1,IL2,JL)
CALL SNINFL
(RPCGS,TRPCGS,ZSNOGS,TSNOGS,RHOSGS,
1 HCPSGS,HTCS,HMFN,PCPG,ROFN,FGS,ILG,IL1,IL2,JL)
IF(NLANDI.NE.0) THEN
CALL ICEBAL
(TBARGS,TPNDGS,ZPNDGS,TSNOGS,RHOSGS,ZSNOGS,
1 HCPSGS,HMFG,HTCS,HTC,WTRS,WTRG,RUNFGS,OVRFLW,
2 FGS,EVAPGS,RPCGS,TRPCGS,GZROGS,G12GS,G23GS,
3 HCPGS,QMELTG,ZMAT,TMOVE,WMOVE,ZRMDR,TADD,
4 ZMOVE,TBOT,ISAND,ICONT,
5 IWF,IG,IGP1,IGP2,ILG,IL1,IL2,JL )
ENDIF
CALL GRINFL
(2,THLQGS,THICGS,TBRWGS,BASFLW,RUNFGS,QFG,
1 WLSTGS,FGS,EVAPGS,RPCGS,TRPCGS,TPNDGS,ZPNDGS,
2 DT,ZMAT,WMOVE,TMOVE,THLIQX,THICEX,TBARWX,
3 DELZX,ZBOTX,FDT,TFDT,PSIF,THLINF,GRKINF,
4 THLMAX,THTEST,ZRMDR,FDUMMY,TDUMMY,THLDUM,
5 THIDUM,TDUMW,TRMDR,ZF,FMAX,TUSED,RDUMMY,
6 ZERO,WEXCES,FDTBND,WADD,TADD,WADJ,TIMPND,
7 DZF,DTFLOW,THLNLZ,THLQLZ,DZDISP,WDISP,WABS,
8 THPOR,THLRET,THLMIN,BI,PSISAT,GRKSAT,GRKTLD,
9 THLRAT,DELZW,ZBOTW,XDRAIN,ISAND,IGRN,
A IGRD,IFILL,IZERO,LZF,NINF,IFIND,ITER,
B NEND,ISIMP,IG,IGP1,IGP2,ILG,IL1,IL2,JL )
CALL GRDRAN
(2,THLQGS,THICGS,TBRWGS,FDUMMY,TDUMMY,BASFLW,
1 RUNFGS,QFG,WLSTGS,FGS,EVAPGS,RPCGS,ZPNDGS,
2 DT,WEXCES,THLMAX,THTEST,THPOR,THLRET,THLMIN,
3 BI,PSISAT,GRKSAT,DELZW,XDRAIN,ISAND,
4 IGRN,IGRD,IG,IGP1,IGP2,ILG,IL1,IL2,JL )
CALL WATROF
(THLQGS,THICGS,ZPNDGS,OVRFLW,SUBFLW,RUNFGS,
1 FGS,ZPLMGS,XSLOPE,GRKFAC,WFSURF,WFCINT,
2 DELZW,THPOR,THLMIN,BI,THFC,THCRIT,DODRN,DOVER,
3 DIDRN,DIDRNMX,ISAND,IWF,IG,ILG,IL1,IL2)
CALL TMCALC
(TBARGS,THLQGS,THICGS,HCPGS,TPNDGS,ZPNDGS,
1 TSNOGS,ZSNOGS,ALBSGS,RHOSGS,HCPSGS,TBASE,
2 OVRFLW,RUNFGS,HMFG,HTC,HTCS,WTRS,WTRG,FGS,
3 TBRWGS,GZROGS,G12GS,G23GS,TA,ZPLMGS,
4 THPOR,THLMIN,HCPS,DELZW,DELZZ,
5 ISAND,IWF,IG,ILG,IL1,IL2,JL)
CALL CHKWAT
(2,PCPR,EVPIGS,RUNFGS,WLSTGS,RAICNS,SNOCNS,
1 RACS,SNCS,ZPNDGS,ZPOND,THLQGS,THICGS,
2 THLIQG,THICEG,ZSNOGS,RHOSGS,XSNOGS,SNO,
3 FCS,FGS,FGS,BAL,THPOR,THLMIN,DELZW,
4 ISAND,IG,ILG,IL1,IL2,JL )
CALL SNOALBW
(ALBSGS,RHOSGS,ZSNOGS,HCPSGS,
1 TSNOGS,FGS,SPCGS,RALB,RHOMAX,
2 ISAND,ILG,IG,IL1,IL2,JL)
ENDIF
C
C * CALCULATIONS FOR CANOPY OVER BARE GROUND.
C
IF(NLANDC.GT.0) THEN
CALL CANVAP
(EVAPC,SUBLC,RAICAN,SNOCAN,TCANO,THLQCO,
1 TBARC,ZSNOWC,WLOSTC,CHCAP,QFCF,QFCL,QFN,QFC,
2 HTCC,HTCS,HTC,FC,CMASSC,TSNOWC,HCPSC,RHOSC,
3 FROOT,THPOR,THLMIN,DELZW,EVLOST,RLOST,IROOT,
4 IG,ILG,IL1,IL2,JL )
CALL CANADD
(1,RPCC,TRPCC,SPCC,TSPCC,RAICAN,SNOCAN,
1 TCANO,CHCAP,HTCC,ROFC,ROVG,PCPN,PCPG,
2 FC,AILCAN,FSVF,CWCAP,CMASSC,RHOSNI,RADD,SADD,
3 ILG,IL1,IL2,JL)
CALL CWCALC
(TCANO,RAICAN,SNOCAN,CHCAP,HMFC,HTCC,
1 FC,CMASSC,ILG,IL1,IL2,JL)
CALL SUBCAN
(1,RPCC,TRPCC,SPCC,TSPCC,RHOSNI,EVAPCG,
1 QFN,QFG,FC,ILG,IL1,IL2,JL)
CALL TWCALC
(TBARC,THLQCO,THICCO,HCPCO,TBARWC,HMFG,HTC,
1 FC,EVAPCG,THPOR,THLMIN,HCPS,DELZW,DELZZ,
2 ISAND,IG,ILG,IL1,IL2,JL)
CALL SNOVAP
(RHOSC,ZSNOWC,HCPSC,TSNOWC,EVAPCG,
1 QFN,QFG,HTCS,WLOSTC,FC,RPCC,SPCC,RHOSNI,
2 ILG,IL1,IL2,JL)
CALL TFREEZ
(ZPONDC,TPONDC,ZSNOWC,TSNOWC,ALBSC,
1 RHOSC,HCPSC,GZEROC,HMFG,HTCS,HTC,
2 WTRS,WTRG,FC,QFREZC,TA,TBARC,ISAND,
3 IG,ILG,IL1,IL2,JL)
CALL SNOADD
(ALBSC,TSNOWC,RHOSC,ZSNOWC,
1 HCPSC,HTCS,FC,SPCC,TSPCC,RHOSNI,
2 ILG,IL1,IL2,JL)
CALL GRINFL
(3,THLQCO,THICCO,TBARWC,BASFLW,RUNFC,QFG,
1 WLOSTC,FC,EVAPCG,RPCC,TRPCC,TPONDC,ZPONDC,
2 DT,ZMAT,WMOVE,TMOVE,THLIQX,THICEX,TBARWX,
3 DELZX,ZBOTX,FDT,TFDT,PSIF,THLINF,GRKINF,
4 THLMAX,THTEST,ZRMDR,FDUMMY,TDUMMY,THLDUM,
5 THIDUM,TDUMW,TRMDR,ZF,FMAX,TUSED,RDUMMY,
6 ZERO,WEXCES,FDTBND,WADD,TADD,WADJ,TIMPND,
7 DZF,DTFLOW,THLNLZ,THLQLZ,DZDISP,WDISP,WABS,
8 THPOR,THLRET,THLMIN,BI,PSISAT,GRKSAT,GRKTLD,
9 THLRAT,DELZW,ZBOTW,XDRAIN,ISAND,IGRN,
A IGRD,IFILL,IZERO,LZF,NINF,IFIND,ITER,
B NEND,ISIMP,IG,IGP1,IGP2,ILG,IL1,IL2,JL )
CALL GRDRAN
(3,THLQCO,THICCO,TBARWC,FDUMMY,TDUMMY,BASFLW,
1 RUNFC,QFG,WLOSTC,FC,EVAPCG,RPCC,ZPONDC,
2 DT,WEXCES,THLMAX,THTEST,THPOR,THLRET,THLMIN,
3 BI,PSISAT,GRKSAT,DELZW,XDRAIN,ISAND,
4 IGRN,IGRD,IG,IGP1,IGP2,ILG,IL1,IL2,JL )
CALL WATROF
(THLQCO,THICCO,ZPONDC,OVRFLW,SUBFLW,RUNFC,
1 FC,ZPLIMC,XSLOPE,GRKFAC,WFSURF,WFCINT,
2 DELZW,THPOR,THLMIN,BI,THFC,THCRIT,DODRN,DOVER,
3 DIDRN,DIDRNMX,ISAND,IWF,IG,ILG,IL1,IL2)
CALL TMCALC
(TBARC,THLQCO,THICCO,HCPCO,TPONDC,ZPONDC,
1 TSNOWC,ZSNOWC,ALBSC,RHOSC,HCPSC,TBASE,
2 OVRFLW,RUNFC,HMFG,HTC,HTCS,WTRS,WTRG,FC,
3 TBARWC,GZEROC,G12C,G23C,TA,ZPLIMC,
4 THPOR,THLMIN,HCPS,DELZW,DELZZ,
5 ISAND,IWF,IG,ILG,IL1,IL2,JL)
CALL CHKWAT
(3,PCPR,EVPIC,RUNFC,WLOSTC,RAICAN,SNOCAN,
1 RAC,SNC,ZPONDC,ZPOND,THLQCO,THICCO,
2 THLIQC,THICEC,ZSNOWC,RHOSC,XSNOWC,SNO,
3 FCS,FGS,FC,BAL,THPOR,THLMIN,DELZW,
4 ISAND,IG,ILG,IL1,IL2,JL )
C
ENDIF
C
C * CALCULATIONS FOR BARE GROUND.
C
IF(NLANDG.GT.0) THEN
CALL TWCALC
(TBARG,THLQGO,THICGO,HCPGO,TBARWG,HMFG,HTC,
1 FG,EVAPG,THPOR,THLMIN,HCPS,DELZW,DELZZ,
2 ISAND,IG,ILG,IL1,IL2,JL)
CALL SNOVAP
(RHOSG,ZSNOWG,HCPSG,TSNOWG,EVAPG,
1 QFN,QFG,HTCS,WLOSTG,FG,RPCG,SPCG,RHOSNI,
2 ILG,IL1,IL2,JL)
CALL TFREEZ
(ZPONDG,TPONDG,ZSNOWG,TSNOWG,ALBSG,
1 RHOSG,HCPSG,GZEROG,HMFG,HTCS,HTC,
2 WTRS,WTRG,FG,QFREZG,TA,TBARG,ISAND,
3 IG,ILG,IL1,IL2,JL)
CALL SNOADD
(ALBSG,TSNOWG,RHOSG,ZSNOWG,
1 HCPSG,HTCS,FG,SPCG,TSPCG,RHOSNI,
2 ILG,IL1,IL2,JL)
IF(NLANDI.NE.0) THEN
CALL ICEBAL
(TBARG,TPONDG,ZPONDG,TSNOWG,RHOSG,ZSNOWG,
1 HCPSG,HMFG,HTCS,HTC,WTRS,WTRG,RUNFG,OVRFLW,
2 FG,EVAPG,RPCG,TRPCG,GZEROG,G12G,G23G,
3 HCPGO,QFREZG,ZMAT,TMOVE,WMOVE,ZRMDR,TADD,
4 ZMOVE,TBOT,ISAND,ICONT,
5 IWF,IG,IGP1,IGP2,ILG,IL1,IL2,JL )
ENDIF
CALL GRINFL
(4,THLQGO,THICGO,TBARWG,BASFLW,RUNFG,QFG,
1 WLOSTG,FG,EVAPG,RPCG,TRPCG,TPONDG,ZPONDG,
2 DT,ZMAT,WMOVE,TMOVE,THLIQX,THICEX,TBARWX,
3 DELZX,ZBOTX,FDT,TFDT,PSIF,THLINF,GRKINF,
4 THLMAX,THTEST,ZRMDR,FDUMMY,TDUMMY,THLDUM,
5 THIDUM,TDUMW,TRMDR,ZF,FMAX,TUSED,RDUMMY,
6 ZERO,WEXCES,FDTBND,WADD,TADD,WADJ,TIMPND,
7 DZF,DTFLOW,THLNLZ,THLQLZ,DZDISP,WDISP,WABS,
8 THPOR,THLRET,THLMIN,BI,PSISAT,GRKSAT,GRKTLD,
9 THLRAT,DELZW,ZBOTW,XDRAIN,ISAND,IGRN,
A IGRD,IFILL,IZERO,LZF,NINF,IFIND,ITER,
B NEND,ISIMP,IG,IGP1,IGP2,ILG,IL1,IL2,JL )
CALL GRDRAN
(4,THLQGO,THICGO,TBARWG,FDUMMY,TDUMMY,BASFLW,
1 RUNFG,QFG,WLOSTG,FG,EVAPG,RPCG,ZPONDG,
2 DT,WEXCES,THLMAX,THTEST,THPOR,THLRET,THLMIN,
3 BI,PSISAT,GRKSAT,DELZW,XDRAIN,ISAND,
4 IGRN,IGRD,IG,IGP1,IGP2,ILG,IL1,IL2,JL )
CALL WATROF
(THLQGO,THICGO,ZPONDG,OVRFLW,SUBFLW,RUNFG,
1 FG,ZPLIMG,XSLOPE,GRKFAC,WFSURF,WFCINT,
2 DELZW,THPOR,THLMIN,BI,THFC,THCRIT,DODRN,DOVER,
3 DIDRN,DIDRNMX,ISAND,IWF,IG,ILG,IL1,IL2)
CALL TMCALC
(TBARG,THLQGO,THICGO,HCPGO,TPONDG,ZPONDG,
1 TSNOWG,ZSNOWG,ALBSG,RHOSG,HCPSG,TBASE,
2 OVRFLW,RUNFG,HMFG,HTC,HTCS,WTRS,WTRG,FG,
3 TBARWG,GZEROG,G12G,G23G,TA,ZPLIMG,
4 THPOR,THLMIN,HCPS,DELZW,DELZZ,
5 ISAND,IWF,IG,ILG,IL1,IL2,JL)
CALL CHKWAT
(4,PCPR,EVPIG,RUNFG,WLOSTG,RAICAN,SNOCAN,
1 RAC,SNC,ZPONDG,ZPOND,THLQGO,THICGO,
2 THLIQG,THICEG,ZSNOWG,RHOSG,XSNOWG,SNO,
3 FCS,FGS,FG,BAL,THPOR,THLMIN,DELZW,
4 ISAND,IG,ILG,IL1,IL2,JL )
C
ENDIF
C
C * AVERAGE RUNOFF AND PROGNOSTIC VARIABLES OVER FOUR GRID CELL
C * SUBAREAS.
C
IPTBAD=0
DO 600 J=1,IG
DO 600 I=IL1,IL2
IF(J.LT.IG) THEN
TBAR(I,J)=(FCS(I)*(TBARCS(I,J)+TFREZ)*(DELZW(I,J)*
1 HCPCS(I,J)+(DELZ(J)-DELZW(I,J))*HCPSND)+
2 FGS(I)*(TBARGS(I,J)+TFREZ)*(DELZW(I,J)*
3 HCPGS(I,J)+(DELZ(J)-DELZW(I,J))*HCPSND)+
4 FC (I)*(TBARC (I,J)+TFREZ)*(DELZW(I,J)*
5 HCPCO(I,J)+(DELZ(J)-DELZW(I,J))*HCPSND)+
6 FG (I)*(TBARG (I,J)+TFREZ)*(DELZW(I,J)*
7 HCPGO(I,J)+(DELZ(J)-DELZW(I,J))*HCPSND))/
8 (FCS(I)*(DELZW(I,J)*HCPCS(I,J)+
9 (DELZ(J)-DELZW(I,J))*HCPSND) +
A FGS(I)*(DELZW(I,J)*HCPGS(I,J)+
B (DELZ(J)-DELZW(I,J))*HCPSND) +
C FC (I)*(DELZW(I,J)*HCPCO(I,J)+
D (DELZ(J)-DELZW(I,J))*HCPSND) +
E FG (I)*(DELZW(I,J)*HCPGO(I,J)+
F (DELZ(J)-DELZW(I,J))*HCPSND))
ELSE
TBAR(I,J)=((FCS(I)*(TBARCS(I,J)+TFREZ)*HCPCS(I,J) +
1 FGS(I)*(TBARGS(I,J)+TFREZ)*HCPGS(I,J) +
2 FC (I)*(TBARC (I,J)+TFREZ)*HCPCO(I,J) +
3 FG (I)*(TBARG (I,J)+TFREZ)*HCPGO(I,J))*
4 DELZW(I,J)+TBASE(I)*HCPSND*
5 (DELZ(J)-DELZW(I,J)))/
4 ((FCS(I)*HCPCS(I,J) + FGS(I)*HCPGS(I,J) +
5 FC (I)*HCPCO(I,J) + FG (I)*HCPGO(I,J))*
8 DELZW(I,J)+HCPSND*(DELZ(J)-DELZW(I,J)))
ENDIF
THLIQ(I,J)=FCS(I)*THLQCS(I,J)+FGS(I)*THLQGS(I,J)+
1 FC (I)*THLQCO(I,J)+FG (I)*THLQGO(I,J)
THICE(I,J)=FCS(I)*THICCS(I,J)+FGS(I)*THICGS(I,J)+
1 FC (I)*THICCO(I,J)+FG (I)*THICGO(I,J)
IF(TBAR(I,J).LT.173. .OR. TBAR(I,J).GT.373.16) IPTBAD=I
600 CONTINUE
C
IF(IPTBAD.NE.0) THEN
WRITE(6,6600) IPTBAD,JL,(TBAR(IPTBAD,j),j=1,ig)
6600 FORMAT('0AT (I,J)= (',I3,',',I3,'), TBAR = ',3F10.5)
CALL XIT
('CLASSW2',-1)
ENDIF
C
JPTBAD=0
KPTBAD=0
LPTBAD=0
DO 625 I=IL1,IL2
IF((FC(I)+FCS(I)).GT.0.) THEN
TCAN(I)=(FCS(I)*TCANS(I)*CHCAPS(I)+FC(I)*TCANO(I)*
1 CHCAP(I))/(FCS(I)*CHCAPS(I)+FC(I)*CHCAP(I))
ELSE
TCAN(I)=0.0
ENDIF
IF(TCAN(I).LT.0. .OR. TCAN(I).GT.373.16) JPTBAD=I
RCAN (I)=FCS(I)*RAICNS(I) + FC (I)*RAICAN(I)
SCAN (I)=FCS(I)*SNOCNS(I) + FC (I)*SNOCAN(I)
RUNOFF(I)=FCS(I)*RUNFCS(I) + FGS(I)*RUNFGS(I) +
1 FC (I)*RUNFC (I) + FG (I)*RUNFG (I)
RUNOFF(I)=RUNOFF(I)*RHOW
OVRFLW(I)=OVRFLW(I)*RHOW
BASFLW(I)=BASFLW(I)*RHOW
EVAP (I)=EVAP(I)-(FCS(I)*WLSTCS(I)+FGS(I)*WLSTGS(I)+
1 FC(I)*WLOSTC(I)+FG(I)*WLOSTG(I))/DELT
IF(ZPNDCS(I).GT.0.00001 .OR. ZPNDGS(I).GT.0.00001 .OR.
1 ZPONDC(I).GT.0.00001 .OR. ZPONDG(I).GT.0.00001) THEN
zpacc=0.
if(FCS(I).gt.0.) zpacc=zpacc+ZPNDCS(I)*FCS(I)
if(FGS(I).gt.0.) zpacc=zpacc+ZPNDGS(I)*FGS(I)
if(FC (I).gt.0.) zpacc=zpacc+ZPONDC(I)*FC (I)
if(FG (I).gt.0.) zpacc=zpacc+ZPONDG(I)*FG (I)
ZPOND(I)=zpacc
c ZPOND(I)=(FCS(I)*ZPNDCS(I)+FGS(I)*ZPNDGS(I)+
c 1 FC (I)*ZPONDC(I)+FG (I)*ZPONDG(I))
tpacc=0.
if(FCS(I).gt.0.) tpacc=tpacc+FCS(I)*(TPNDCS(I)+TFREZ)*ZPNDCS(I)
if(FGS(I).gt.0.) tpacc=tpacc+FGS(I)*(TPNDGS(I)+TFREZ)*ZPNDGS(I)
if(FC (I).gt.0.) tpacc=tpacc+FC (I)*(TPONDC(I)+TFREZ)*ZPONDC(I)
if(FG (I).gt.0.) tpacc=tpacc+FG (I)*(TPONDG(I)+TFREZ)*ZPONDG(I)
TPOND(I)=tpacc/ZPOND(I)
c TPOND(I)=(FCS(I)*(TPNDCS(I)+TFREZ)*ZPNDCS(I)+
c 1 FGS(I)*(TPNDGS(I)+TFREZ)*ZPNDGS(I)+
c 2 FC (I)*(TPONDC(I)+TFREZ)*ZPONDC(I)+
c 3 FG (I)*(TPONDG(I)+TFREZ)*ZPONDG(I))/
c 4 ZPOND(I)
ELSE
ZPOND(I)=0.0
TPOND(I)=0.0
ENDIF
625 CONTINUE
C
C * THESE 2 LOOPS MIGHT BE COMBINED ON THE SX-3 (WOULDN'T WORK
C * ON THE CRAY).
C
DO 650 I=IL1,IL2
IF(ZSNOCS(I).GT.0. .OR. ZSNOGS(I).GT.0. .OR.
1 ZSNOWC(I).GT.0. .OR. ZSNOWG(I).GT.0.) THEN
IF(ZSNOCS(I).GT.0. .OR. ZSNOGS(I).GT.0.) THEN
ALBSNO(I)=(FCS(I)*ALBSCS(I)*XSNOCS(I)+
1 FGS(I)*ALBSGS(I)*XSNOGS(I))/
2 (FCS(I)*XSNOCS(I)+FGS(I)*XSNOGS(I))
ELSE
ALBSNO(I)=(FC (I)*ALBSC(I)*XSNOWC(I) +
1 FG (I)*ALBSG(I)*XSNOWG(I))/
2 (FC (I)*XSNOWC(I)+FG (I)*XSNOWG(I))
ENDIF
TSNOW(I)=(FCS(I)*(TSNOCS(I)+TFREZ)*HCPSCS(I)*
1 ZSNOCS(I)*XSNOCS(I) +
2 FGS(I)*(TSNOGS(I)+TFREZ)*HCPSGS(I)*
3 ZSNOGS(I)*XSNOGS(I) +
4 FC (I)*(TSNOWC(I)+TFREZ)*HCPSC(I)*
5 ZSNOWC(I)*XSNOWC(I) +
6 FG (I)*(TSNOWG(I)+TFREZ)*HCPSG(I)*
7 ZSNOWG(I)*XSNOWG(I))/
8 (FCS(I)*HCPSCS(I)*ZSNOCS(I)*XSNOCS(I) +
9 FGS(I)*HCPSGS(I)*ZSNOGS(I)*XSNOGS(I) +
A FC (I)*HCPSC(I)*ZSNOWC(I)*XSNOWC(I) +
B FG (I)*HCPSG(I)*ZSNOWG(I)*XSNOWG(I))
RHOSNO(I)=(FCS(I)*RHOSCS(I)*ZSNOCS(I)*XSNOCS(I) +
1 FGS(I)*RHOSGS(I)*ZSNOGS(I)*XSNOGS(I) +
2 FC (I)*RHOSC(I)*ZSNOWC(I)*XSNOWC(I) +
3 FG (I)*RHOSG(I)*ZSNOWG(I)*XSNOWG(I))/
4 (FCS(I)*ZSNOCS(I)*XSNOCS(I) +
5 FGS(I)*ZSNOGS(I)*XSNOGS(I) +
6 FC (I)*ZSNOWC(I)*XSNOWC(I) +
7 FG (I)*ZSNOWG(I)*XSNOWG(I))
ZSNOW(I)=FCS(I)*ZSNOCS(I) + FGS(I)*ZSNOGS(I) +
1 FC (I)*ZSNOWC(I) + FG (I)*ZSNOWG(I)
SNO(I)=ZSNOW(I)*RHOSNO(I)
IF(SNO(I).LT.1.0E-9) THEN
SNO(I)=0.0
RHOSNO(I)=0.0
ENDIF
ELSE
TSNOW(I)=0.0
RHOSNO(I)=0.0
SNO(I)=0.0
ENDIF
C
IF(TSNOW(I).LT.0.0) KPTBAD=I
IF((TSNOW(I)-TFREZ).GT.1.0E-3) LPTBAD=I
650 CONTINUE
C
IF(JPTBAD.NE.0) THEN
WRITE(6,6625) JPTBAD,JL,TCAN(JPTBAD)
6625 FORMAT('0AT (I,J)= (',I3,',',I3,'), TCAN = ',F10.5)
CALL XIT
('CLASSW2',-2)
ENDIF
C
IF(KPTBAD.NE.0) THEN
WRITE(6,6626) KPTBAD,JL,TSNOW(KPTBAD)
6626 FORMAT('0AT (I,J)= (',I3,',',I3,'), TSNOW = ',F10.5)
CALL XIT
('CLASSW2',-3)
ENDIF
C
IF(LPTBAD.NE.0) THEN
WRITE(6,6626) LPTBAD,JL,TSNOW(LPTBAD)
CALL XIT
('CLASSW2',-4)
ENDIF
C
CALL CGROW
(GROWTH,TBAR,TA,FC,FCS,ILG,IG,IL1,IL2,JL)
C
RETURN
END