      SUBROUTINE HDIFUSO (P,C,T,ES,X,LA,ILEV,LEVS,LSR,LM,DT,KTR,
     1                    S,SH,ITRAC,NTRAC, 
     2                    DISP,DISC,DIST,DISES,DISX,SCRIT 
     3                   )

C     * JAN 02/95 - M.LAZARE.
  
C     * AS IN HDIFUS, EXCEPT FORMULATION FOR "N" TRACERS IMPLEMENTED. 
C     * DOES NOT CALL NEW SUBROUTINE DISIP3, SINCE WANT SAME
C     * CLIMATOLOGY FOR MODEL VERSION GCM6O AS IN GCM6.
C 
C     * PERFORMS DISSIPATION ON GLOBAL SPECTRAL FIELDS IN THE GCM.
C     * ON VORTICITY (P), DIVERGENCE (C), TEMPERATURE (T),
C     * AND DEW POINT DEPRESSION (ES).
C     * ALSO TRACER (X), WHEN ITRAC.GT.0. 
C 
      IMPLICIT REAL (A-H,O-Z),
     +INTEGER (I-N)

      INTEGER LSR(2,1)
C 
      REAL S(ILEV),SH(ILEV) 
C 
      COMPLEX P(LA,ILEV),C(LA,ILEV),T(LA,ILEV),ES(LA,LEVS)
      COMPLEX X(LA,ILEV,NTRAC)
C 
      FS(SSS,A,SC)=MAX(1., 1.+(A-1.)*(SC-SSS)/SC) **2 
C---------------------------------------------------------------------
      AMP=SQRT(3.)
C 
      DO 310 L=1,ILEV 
      DSP=DISP*FS(S(L),AMP,SCRIT) 
      DSC=DISC*FS(S(L),AMP,SCRIT) 
      DST=DIST*FS(SH(L),AMP,SCRIT)
      CALL DISIP2 (P(1,L),LSR,LM,DSP,DT,KTR)
      CALL DISIP2 (C(1,L),LSR,LM,DSC,DT,KTR)
      CALL DISIP2 (T(1,L),LSR,LM,DST,DT,KTR)
  310 CONTINUE
  
      IF(ITRAC.GT.0)THEN
         DO 320 N=1,NTRAC 
         DO 320 L=1,ILEV
            DSX=DISX*FS(SH(L),AMP,SCRIT)
            CALL DISIP2(X(1,L,N),LSR,LM,DSX,DT,KTR) 
  320    CONTINUE 
      ENDIF 
C 
      DO 510 L=1,LEVS 
      DES=DISES*FS(SH(L+ILEV-LEVS),AMP,SCRIT) 
      CALL DISIP2 (ES(1,L),LSR,LM,DES,DT,KTR) 
  510 CONTINUE
C 
      RETURN
C-----------------------------------------------------------------------
      END 
