C**********************************************************                  RADSW.2     
C             SUBROUTINE RADSW                                               RADSW.3     
C**********************************************************                  RADSW.4     
      SUBROUTINE RADSW (ZTAVE,ZWV,PQOF,PCLFR,PQLWP,AMU0,                     RADSW.5     
     :                  ZCARDI,ZSCT,PDP,PR,SWALB,FLS,GA,GASCON)              RADSW.6     
C                                                                            RADSW.7     
C inputs                                                                     RADSW.8     
C ZTAVE - misd slab temps(K) all vertical -level 1 ground                    RADSW.9     
C ZWV - water MMR                                                            RADSW.10    
C PQOF -ozone mmr                                                            RADSW.11    
C PCLFR - cloud fractions                                                    RADSW.12    
C PQLWP - cloud Liquid water path  g/m^2                                     RADSW.13    
C PR - flux pressures (mb)                                                   RADSW.14    
C -sWALB  surface albedo                                                     RADSW.15    
C -AMU0    cosine                                                            RADSW.16    
C                                                                            RADSW.17    
C ZCARDI Co2 mass mixing ratio                                               RADSW.18    
C ZSCT - solar constant * day length * earth-sun factor(Wm2)                 RADSW.19    
C                                                                            RADSW.20    
C Outputs                                                                    RADSW.21    
C FLS - NET SW fluxes level 1 ground                                         RADSW.22    
C PDP - shortwave DPs                                                        RADSW.23    
C                                                                            RADSW.24    
C        ORIGINAL : 23-2-98                                                  RADSW.25    
C        Calls SW scheme and returns fluxes                                  RADSW.26    
C                                                                            PARAM1.2     
C     Determines model resolution                                            PARAM1.3     
C                                                                            PARAM1.4     
      PARAMETER(NN=21,MM=21,NHEM=2,NL=5,MOCT=1,MG=64,JG=16,NWJ2=121          NETCDF.35    
     P         ,NCRAY=64,JGL=JG,NTRAC=1,NLEVRF=1)                            NETCDF.36    
                                                                             PARAM1.7     
C                                                                            PARAM1.8     
      INTEGER NLON,NLEV,NLM,KDLON,JLON,JK,IMP,IABS,IAER,KFLEV                RADSW.28    
     : ,JAE,NLP                                                              RADSW.29    
      PARAMETER(NLON=1,NLEV=NL+1)                                            RADSW.30    
      PARAMETER(NLM=NLEV-1,KDLON=NLON                                        RADSW.31    
     :          ,KFLEV=NLEV,NLP=KFLEV+1)                                     RADSW.32    
      REAL PRMU0(NLON),SWALB,FLS(NLP)                                        RADSW.33    
      REAL PQLWP(NLON,NLEV),AMU0                                             RADSW.34    
      REAL ZEPSCO,ZEPSC,ZEPSCQ,ZEPSCT,ZEPSCW,ZEELOG                          RADSW.35    
      REAL CDAY,CCLWMR,DAYL                                                  RADSW.36    
      REAL ZALBSU(NLON,2),ZFSUP(NLON,NLP),ZFSDWN(NLON,NLP)                   RADSW.37    
     :,     ZPMB(NLON,NLP)                                                   RADSW.38    
      REAL ZTAVE(NLON,NLEV),ZOZ(NLON,NLEV),ZCLDSW(NLON,NLEV)                 RADSW.39    
     :,    ZTAU(NLON,2,NLEV),ZCG(NLON,2,NLEV),ZHEATR(NLON,NLEV)              RADSW.40    
     :,    ZOMEGA(NLON,2,NLEV),PAER(NLON,NLEV,5)                             RADSW.41    
c      REAL ZLWGKG,ZFCC                                                      RADSW.42    
      REAL ZFLWP,PIERSLWP,ZRADEF                                             RADSW.43    
     :,    ZTAUEQ                                                            RADSW.44    
C      REAL ZFCCA,ZFCCB                                                      RADSW.45    
      REAL PPSOL(NLON),PR(NLON,NLEV),                                        RADSW.46    
     :      PQOF(NLON,NLEV),PCLFR(NLON,NLEV),ZWV(NLON,NLEV)                  RADSW.47    
      REAL PDP(NLON,NLEV)                                                    RADSW.48    
      REAL ZZRMUZ                                                            RADSW.49    
      REAL ZSCT,ZCARDI                                                       RADSW.50    
C------------------------------------------------------------                RADSW.51    
C                                                                            RADSW.52    
C      ZCARDI=546.0E-6  !360 ppmv C02                                        RADSW.53    
      IMP=2                                                                  RADSW.54    
      IABS=5                                                                 RADSW.55    
      IAER=0                                                                 RADSW.56    
      PRMU0(1)=AMU0                                                          RADSW.57    
C    CONTROL VARIABLES FOR RADIATION: INTERNAL SWITCH AND INDICES            RADSW.58    
C                                                                            RADSW.59    
C ZEELOG:  SECURITY THRESHOLD FOR ABSORBER AMOUNT IN LAPLACE TRANSFORM       RADSW.60    
C ZEPSC :  SECURITY THRESHOLD FOR CLOUD COVER                                RADSW.61    
C ZEPSCO:  SECURITY THRESHOLD FOR OZONE AMOUNT                               RADSW.62    
C ZEPSCQ:  SECURITY THRESHOLD FOR WATER VAPOR                                RADSW.63    
C ZEPSCT:  SECURITY THRESHOLD FOR SHORTWAVE OPTICAL THICKNESS                RADSW.64    
C ZEPSCW:  SECURITY THRESHOLD FOR CLOUD LIQUID WATER PATH                    RADSW.65    
C                                                                            RADSW.66    
      ZEPSC  = 1.E-04                                                        RADSW.67    
      ZEPSCO = 1.E-10                                                        RADSW.68    
      ZEPSCQ = 1.E-07                                                        RADSW.69    
      ZEPSCT = 1.E-04                                                        RADSW.70    
      ZEPSCW = 1.E-12                                                        RADSW.71    
      ZEELOG = 1.E-10                                                        RADSW.72    
C                                                                            RADSW.73    
      DAYL=86400.0  !Question                                                RADSW.74    
      CDAY   = DAYL * GA / GASCON                                            RADSW.75    
      CCLWMR = 0.2                                                           RADSW.76    
C                                                                            RADSW.77    
C*         1.1    INITIALIZE VARIOUS FIELDS                                  RADSW.78    
C                 -------------------------                                  RADSW.79    
C                                                                            RADSW.80    
 110  CONTINUE                                                               RADSW.81    
C                                                                            RADSW.82    
C                                                                            RADSW.83    
      DO 113 JLON = 1 , KDLON                                                RADSW.84    
         ZALBSU(JLON,1)=SWALB                                                RADSW.85    
         ZALBSU(JLON,2)=SWALB                                                RADSW.86    
         ZFSUP(JLON,KFLEV+1) = 0.                                            RADSW.87    
         ZFSDWN(JLON,KFLEV+1) = ZEPSCO                                       RADSW.88    
         PPSOL(JLON)=100.*PR(JLON,1)   ! surface Pa                          RADSW.89    
         ZPMB(JLON,1)=PPSOL(JLON)/100.0  ! mb surface p                      RADSW.90    
 113  CONTINUE                                                               RADSW.91    
        ZPMB(1,NLP)=0.0                                                      RADSW.92    
        ZPMB(1,2)=ZPMB(1,1)  ! bottom level has no thickness                 RADSW.93    
        DO JK=KFLEV,1,-1                                                     RADSW.94    
         ZPMB(1,JK+1) = PR(1,JK)                                             RADSW.95    
        ENDDO                                                                RADSW.96    
        DO JK=2,KFLEV                                                        RADSW.97    
         PDP(1,JK)=100.0*(ZPMB(1,JK)-ZPMB(1,JK+1))                           RADSW.98    
        ENDDO                                                                RADSW.99    
         PDP(1,1)=0.0                                                        RADSW.100   
      DO 115 JK = 1 , KFLEV                                                  RADSW.101   
         DO 114 JLON = 1 , KDLON                                             RADSW.102   
         ZOZ(JLON,JK)   = PDP(JLON,JK)*PQOF(JLON,JK) * 46.6968 / GA          RADSW.103   
         ZTAU(JLON,1,JK) = ZEPSCW                                            RADSW.104   
         ZTAU(JLON,2,JK) = ZEPSCW                                            RADSW.105   
         ZOMEGA(JLON,1,JK) = 0.9994                                          RADSW.106   
         ZOMEGA(JLON,2,JK) = 0.9963                                          RADSW.107   
         ZCG(JLON,1,JK) = 0.865                                              RADSW.108   
         ZCG(JLON,2,JK) = 0.910                                              RADSW.109   
         ZHEATR(JLON,JK) = 0.                                                RADSW.110   
         ZFSUP(JLON,JK) = 0.                                                 RADSW.111   
         ZFSDWN(JLON,JK) = 0.                                                RADSW.112   
 114     CONTINUE                                                            RADSW.113   
 115  CONTINUE                                                               RADSW.114   
C                                                                            RADSW.115   
C     --------------------------------------------------------               RADSW.116   
C                                                                            RADSW.117   
C*         2.     CLOUD AND AEROSOL PARAMETERS                               RADSW.118   
C                 ----------------------------                               RADSW.119   
C                                                                            RADSW.120   
 200  CONTINUE                                                               RADSW.121   
C                                                                            RADSW.122   
      PIERSLWP=0.0                                                           RADSW.123   
      DO 202 JK = 2 , KFLEV-1                                                RADSW.124   
       DO 201 JLON = 1 , KDLON                                               RADSW.125   
         IF (PCLFR(JLON,JK).GT.ZEPSC) THEN                                   RADSW.126   
c             ZLWGKG =PQLWP(JLON,JK)*1000.                                   RADSW.127   
c             ZFLWP= ZLWGKG*PDP(JLON,JK)/(GA*PCLFR(JLON,JK))                 RADSW.128   
              ZFLWP=PQLWP(JLON,JK)                                           RADSW.129   
         ELSE                                                                RADSW.130   
             ZFLWP=ZEPSC                                                     RADSW.131   
         ENDIF                                                               RADSW.132   
         PIERSLWP=PIERSLWP+ZFLWP                                             RADSW.133   
         IF (PCLFR(JLON,JK).GT.ZEPSC) THEN                                   RADSW.134   
          ZRADEF = 5.0                                                       RADSW.135   
          ZTAUEQ = 1.5 * ZFLWP* PCLFR(JLON,JK)/ ZRADEF                       RADSW.136   
          ZTAU(JLON,1,JK) = ZTAUEQ                                           RADSW.137   
          ZTAU(JLON,2,JK) = ZTAUEQ                                           RADSW.138   
          ZOMEGA(JLON,1,JK) = 0.9999 - 5.0E-04*EXP(-0.5 * ZTAUEQ)            RADSW.139   
          ZOMEGA(JLON,2,JK) = 0.9988 - 2.5E-03*EXP(-0.05 * ZTAUEQ)           RADSW.140   
          ZCG(JLON,1,JK)=0.865                                               RADSW.141   
          ZCG(JLON,2,JK)=0.910                                               RADSW.142   
         ENDIF                                                               RADSW.143   
         ZCLDSW(JLON,JK) = MAX(PCLFR(JLON,JK),ZEPSCW)                        RADSW.144   
 201   CONTINUE                                                              RADSW.145   
 202  CONTINUE                                                               RADSW.146   
C                                                                            RADSW.147   
      DO 203 JLON = 1 , KDLON                                                RADSW.148   
        ZPMB(JLON,KFLEV+1)=0.0                                               RADSW.149   
 203  CONTINUE                                                               RADSW.150   
C                                                                            RADSW.151   
      IF (IAER.EQ.0) THEN                                                    RADSW.152   
       DO 206 JK = 1 , KFLEV                                                 RADSW.153   
        DO 205 JAE = 1 , 5                                                   RADSW.154   
         DO 204 JLON = 1 , KDLON                                             RADSW.155   
         PAER(JLON,JK,JAE)=1.E-15                                            RADSW.156   
 204     CONTINUE                                                            RADSW.157   
 205    CONTINUE                                                             RADSW.158   
 206   CONTINUE                                                              RADSW.159   
      END IF                                                                 RADSW.160   
C                                                                            RADSW.161   
C                                                                            RADSW.162   
 400  CONTINUE                                                               RADSW.163   
C                                                                            RADSW.164   
      ZZRMUZ=0.                                                              RADSW.165   
      DO 401 JLON = 1 , KDLON                                                RADSW.166   
         ZZRMUZ = MAX(ZZRMUZ, AMU0)                                          RADSW.167   
 401  CONTINUE                                                               RADSW.168   
C                                                                            RADSW.169   
      IF (ZZRMUZ.GT.0.) THEN                                                 RADSW.170   
C                                                                            RADSW.171   
         CALL SW                                                             RADSW.172   
     :  (IAER,PAER,ZEPSCQ,ZEPSCT,ZEELOG,                                     RADSW.173   
     :   ZSCT,PRMU0,ZCARDI,PPSOL,ZWV,                                        RADSW.174   
     :   ZCLDSW,ZOZ,ZPMB,ZTAVE,ZFSDWN,ZFSUP,                                 RADSW.175   
     :   ZCG,ZOMEGA,ZTAU,ZALBSU)                                             RADSW.176   
C                                                                            RADSW.177   
                                                                             RADSW.178   
      END IF                                                                 RADSW.179   
C                                                                            RADSW.180   
C                                                                            RADSW.181   
C     ---------------------------------------------------------------        RADSW.182   
C                                                                            RADSW.183   
C*         5.     FILL UP THE MODEL NET LW AND SW RADIATIVE FLUXES           RADSW.184   
C                 ------------------------------------------------           RADSW.185   
C                                                                            RADSW.186   
      DO 503 JK = NLEV+1,1,-1                                                RADSW.187   
         DO 502 JLON = 1 , KDLON                                             RADSW.188   
            FLS(JK) = ZFSDWN(JLON,JK) - ZFSUP(JLON,JK)                       RADSW.189   
 502     CONTINUE                                                            RADSW.190   
 503  CONTINUE                                                               RADSW.191   
                                                                             RADSW.192   
C                                                                            RADSW.193   
C                                                                            RADSW.194   
C*         5.1     HEATING/COOLING RATES (K/DAY)                             RADSW.195   
                                                                             RADSW.196   
CCC  Combine the lowest two layer as one layer to correspond                 RADSW.197   
CCC  the radiative convective model. (leave the lowest level                 RADSW.198   
CCC  heating rate undefined---set to zero)   D.LI 8/8 1991                   RADSW.199   
c      DO 518 JLON = 1, KDLON                                                RADSW.200   
c       ZDFNET = ZFSUP(JLON,1) - ZFSDWN(JLON,1)                              RADSW.201   
c     S        -ZFSUP(JLON,3) + ZFSDWN(JLON,3)                               RADSW.202   
c       ZHEATR(JLON,2) = CDAY*ZDFNET/(PDP1(JLON,2)+PDP1(JLON,1))             RADSW.203   
c       ZHEATR(JLON,1)=0.0D0                                                 RADSW.204   
c 518  CONTINUE                                                              RADSW.205   
CCC                                                                          RADSW.206   
C                                                                            RADSW.207   
      RETURN                                                                 RADSW.208   
      END                                                                    RADSW.209   
