      SUBROUTINE PCPAD6U (RUNOFF,SNO,WL, WF,WCAP,GC,PCPR,PCPN, 
     1                    SAGE,TS,DELT,DAYLNT,TFREZ,ILG,IS,IF)
C 
C     * MAY 20/95 - M.LAZARE. ADD DIAGNOSTIC CALCULATION OF SNOW RATE.
C     * MAR 08/88 - M.LAZARE. PREVIOUS (GCMII) VERSION PCPADD5.
C
C     * ACCUMULATE LATEST PRECIPITATION AS SNOW OR LIQUID GROUND WATER. 
C     * EVALUATE PRELIMINARY RUNOFF.
C     * CALCULATE SNOW AGE.
C     * CALCULATE SNOWFALL RATE (WATER EQUIVILENT). 
C 
      IMPLICIT REAL (A-H,O-Z),
     +INTEGER (I-N)

      REAL RUNOFF(ILG),SNO(ILG),WL(ILG),WF(ILG),WCAP(ILG) 
      REAL GC(ILG),PCPR(ILG),PCPN(ILG),SAGE(ILG),TS(ILG)
C-----------------------------------------------------------------------
      DO 500 I=IS,IF
C 
C     * SNOW ACCUMULATES OVER LAND AND PACK ICE WHEN SURFACE TEMPERATURE
C     * IS BELOW FREEZING.
C 
C     * CALCULATE SNOW AGE. 
C     * AGEING PROCESS IS COMBINED INTO THE TERM 0.025*DT/86400 BELOW - 
C     * I.E. THIS IS HOW MUCH THE SNOW AGES PER TIMESTEP IF NO SNOW FALLS.
C     * 0.01M OF WATER-EQUIVALENT SNOW RESTORES THE SURFACT TO AN AGE OF 0. 
C 
      SNOOLD=SNO(I) 
  
      SNO(I)=MERGE(SNO(I)+PCPR(I)*DELT, 
     1             SNO(I),
     2             GC(I).NE.0. .AND. TS(I).LE.TFREZ)

      PCPN(I)=MAX(SNO(I)-SNOOLD,0.)/DELT
  
      DELSNO = MAX(0.0, MIN(1.0, (SNO(I)-SNOOLD)*2.0))
      SAGE(I)= MAX(0.0, MIN(1.0, (SAGE(I)+DELT/(40.*DAYLNT)))*
     1              (1.0-DELSNO)) 
      IF(SNO(I).LE.0.0) SAGE(I)=0.0 
C 
C     * RUN-OFF ALL PRECIPITATION OVER OCEAN (!), AND PRECIPITATION OVER
C     * PACK ICE WHEN SURFACE TEMPERATURE IS ABOVE FREEZING.
C 
      RUNOFF(I)=MERGE(RUNOFF(I)+PCPR(I)*DELT, 
     1                RUNOFF(I),
     2                GC(I).EQ.0. .OR. (GC(I).EQ.1..AND.TS(I).GT.TFREZ))
C 
C     * ALSO RUN-OFF RAIN EXCEEDING SOIL CAPACITY OVER LAND.
C 
      RUNOFF(I)=MERGE(RUNOFF(I)+(MAX(0.,
     1                WL(I)+PCPR(I)*DELT/WCAP(I)+WF(I)-1.))*WCAP(I),
     2                RUNOFF(I),
     3                GC(I).EQ.-1. .AND. TS(I).GT.TFREZ)
C 
C     * OVER LAND, GROUND LIQUID WATER (WL) MUST NOT EXCEED 1.-WF.
C 
      WL(I)=MERGE(MIN(1.,WL(I)+PCPR(I)*DELT/WCAP(I)+WF(I))-WF(I), 
     1            WL(I),
     2            GC(I).EQ.-1. .AND. TS(I).GT.TFREZ)
C 
  500 CONTINUE
      RETURN
      END 
