/[lmdze]/trunk/Sources/phylmd/Radlwsw/swclr.f
ViewVC logotype

Diff of /trunk/Sources/phylmd/Radlwsw/swclr.f

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 157 by guez, Mon Jul 20 16:01:49 2015 UTC revision 218 by guez, Thu Mar 30 15:37:51 2017 UTC
# Line 1  Line 1 
1  SUBROUTINE swclr(knu, paer, flag_aer, tauae, pizae, cgae, palbp, pdsig, &  module swclr_m
2      prayl, psec, pcgaz, ppizaz, pray1, pray2, prefz, prj, prk, prmu0, ptauaz, &  
     ptra1, ptra2)  
   USE dimens_m  
   USE dimphy  
   USE raddim  
   USE radepsi  
   USE radopt  
3    IMPLICIT NONE    IMPLICIT NONE
4    
5    ! ------------------------------------------------------------------  contains
6    ! PURPOSE.  
7    ! --------    SUBROUTINE swclr(knu, flag_aer, palbp, pdsig, prayl, psec, pcgaz, ppizaz, &
8    ! COMPUTES THE REFLECTIVITY AND TRANSMISSIVITY IN CASE OF         pray1, pray2, prefz, prj, prk, prmu0, ptauaz, ptra1, ptra2)
9    ! CLEAR-SKY COLUMN  
10        ! PURPOSE.
11    ! REFERENCE.      ! COMPUTES THE REFLECTIVITY AND TRANSMISSIVITY IN CASE OF
12    ! ----------      ! CLEAR-SKY COLUMN
13    
14    ! SEE RADIATION'S PART OF THE ECMWF RESEARCH DEPARTMENT      ! REFERENCE.
15    ! DOCUMENTATION, AND FOUQUART AND BONNEL (1980)      ! SEE RADIATION'S PART OF THE ECMWF RESEARCH DEPARTMENT
16        ! DOCUMENTATION, AND FOUQUART AND BONNEL (1980)
17    ! AUTHOR.  
18    ! -------      ! AUTHOR.
19    ! JEAN-JACQUES MORCRETTE  *ECMWF*      ! JEAN-JACQUES MORCRETTE *ECMWF*
20    
21    ! MODIFICATIONS.      ! MODIFICATIONS.
22    ! --------------      ! ORIGINAL : 94-11-15
23    ! ORIGINAL : 94-11-15  
24    ! ------------------------------------------------------------------      USE raddim, only: kdlon, kflev
25    ! * ARGUMENTS:      USE radepsi, only: zepsec
26        USE radopt, only: novlp
27    INTEGER knu  
28    ! -OB      ! ARGUMENTS:
29    DOUBLE PRECISION flag_aer  
30    DOUBLE PRECISION tauae(kdlon, kflev, 2)      INTEGER knu
31    DOUBLE PRECISION pizae(kdlon, kflev, 2)      ! -OB
32    DOUBLE PRECISION cgae(kdlon, kflev, 2)      logical, intent(in):: flag_aer
33    DOUBLE PRECISION paer(kdlon, kflev, 5)      DOUBLE PRECISION palbp(kdlon, 2)
34    DOUBLE PRECISION palbp(kdlon, 2)      DOUBLE PRECISION, intent(in):: pdsig(kdlon, kflev)
35    DOUBLE PRECISION pdsig(kdlon, kflev)      DOUBLE PRECISION, intent(in):: prayl(kdlon)
36    DOUBLE PRECISION prayl(kdlon)      DOUBLE PRECISION psec(kdlon)
37    DOUBLE PRECISION psec(kdlon)  
38        DOUBLE PRECISION, intent(out):: pcgaz(kdlon, kflev)
39    DOUBLE PRECISION pcgaz(kdlon, kflev)      DOUBLE PRECISION, intent(out):: ppizaz(kdlon, kflev)
40    DOUBLE PRECISION ppizaz(kdlon, kflev)      DOUBLE PRECISION pray1(kdlon, kflev + 1)
41    DOUBLE PRECISION pray1(kdlon, kflev+1)      DOUBLE PRECISION pray2(kdlon, kflev + 1)
42    DOUBLE PRECISION pray2(kdlon, kflev+1)      DOUBLE PRECISION prefz(kdlon, 2, kflev + 1)
43    DOUBLE PRECISION prefz(kdlon, 2, kflev+1)      DOUBLE PRECISION prj(kdlon, 6, kflev + 1)
44    DOUBLE PRECISION prj(kdlon, 6, kflev+1)      DOUBLE PRECISION prk(kdlon, 6, kflev + 1)
45    DOUBLE PRECISION prk(kdlon, 6, kflev+1)      DOUBLE PRECISION prmu0(kdlon, kflev + 1)
46    DOUBLE PRECISION prmu0(kdlon, kflev+1)      DOUBLE PRECISION, intent(out):: ptauaz(kdlon, kflev)
47    DOUBLE PRECISION ptauaz(kdlon, kflev)      DOUBLE PRECISION ptra1(kdlon, kflev + 1)
48    DOUBLE PRECISION ptra1(kdlon, kflev+1)      DOUBLE PRECISION ptra2(kdlon, kflev + 1)
49    DOUBLE PRECISION ptra2(kdlon, kflev+1)  
50        ! LOCAL VARIABLES:
51    ! * LOCAL VARIABLES:      DOUBLE PRECISION zc0i(kdlon, kflev + 1)
52        DOUBLE PRECISION zclear(kdlon)
53    DOUBLE PRECISION zc0i(kdlon, kflev+1)      DOUBLE PRECISION zr21(kdlon)
54    DOUBLE PRECISION zcle0(kdlon, kflev)      DOUBLE PRECISION zss0(kdlon)
55    DOUBLE PRECISION zclear(kdlon)      DOUBLE PRECISION zscat(kdlon)
56    DOUBLE PRECISION zr21(kdlon)      DOUBLE PRECISION ztr(kdlon, 2, kflev + 1)
57    DOUBLE PRECISION zr23(kdlon)      INTEGER jl, jk, ja, jkl, jklp1, jaj, jkm1
58    DOUBLE PRECISION zss0(kdlon)      DOUBLE PRECISION zfacoa, zcorae
59    DOUBLE PRECISION zscat(kdlon)      DOUBLE PRECISION zmue, zgap, zww, zto, zden, zmu1, zden1
60    DOUBLE PRECISION ztr(kdlon, 2, kflev+1)      DOUBLE PRECISION zbmu0, zbmu1, zre11
61        double precision, parameter:: REPSCT = 1d-10
62    INTEGER jl, jk, ja, jkl, jklp1, jaj, jkm1  
63    DOUBLE PRECISION ztray, zgar, zratio, zff, zfacoa, zcorae      !------------------------------------------------------------------
64    DOUBLE PRECISION zmue, zgap, zww, zto, zden, zmu1, zden1      
65    DOUBLE PRECISION zbmu0, zbmu1, zre11      ! 1. OPTICAL PARAMETERS FOR AEROSOLS AND RAYLEIGH
66    
67    ! ------------------------------------------------------------------      DO jk = 1, kflev + 1
68           DO ja = 1, 6
69    ! *         1.    OPTICAL PARAMETERS FOR AEROSOLS AND RAYLEIGH            DO jl = 1, kdlon
70    ! --------------------------------------------               prj(jl, ja, jk) = 0d0
71                 prk(jl, ja, jk) = 0d0
72              END DO
73    DO jk = 1, kflev + 1         END DO
     DO ja = 1, 6  
       DO jl = 1, kdlon  
         prj(jl, ja, jk) = 0.  
         prk(jl, ja, jk) = 0.  
       END DO  
74      END DO      END DO
   END DO  
75    
76    DO jk = 1, kflev      DO jk = 1, kflev
77      DO jl = 1, kdlon         DO jl = 1, kdlon
78        ptauaz(jl, jk) = flag_aer*tauae(jl, jk, knu)            pcgaz(jl, jk) = 0d0
79        ppizaz(jl, jk) = flag_aer*pizae(jl, jk, knu)            ptauaz(jl, jk) = prayl(jl) * pdsig(jl, jk)
80        pcgaz(jl, jk) = flag_aer*cgae(jl, jk, knu)         END DO
81    
82           IF (flag_aer) THEN
83              ! -OB
84              DO jl = 1, kdlon
85                 ppizaz(jl, jk) = 1d0
86              END DO
87           ELSE
88              DO jl = 1, kdlon
89                 ppizaz(jl, jk) = 1d0 - repsct
90              END DO
91           END IF
92      END DO      END DO
93    
94      IF (flag_aer>0) THEN      ! 2. TOTAL EFFECTIVE CLOUDINESS ABOVE A GIVEN LEVEL
95        ! -OB  
96        DO jl = 1, kdlon      DO jl = 1, kdlon
97          ! PCGAZ(JL,JK)=PCGAZ(JL,JK)/PPIZAZ(JL,JK)         zc0i(jl, kflev + 1) = 0d0
98          ! PPIZAZ(JL,JK)=PPIZAZ(JL,JK)/PTAUAZ(JL,JK)         zclear(jl) = 1d0
99          ztray = prayl(jl)*pdsig(jl, jk)         zscat(jl) = 0d0
100          zratio = ztray/(ztray+ptauaz(jl,jk))      END DO
         zgar = pcgaz(jl, jk)  
         zff = zgar*zgar  
         ptauaz(jl, jk) = ztray + ptauaz(jl, jk)*(1.-ppizaz(jl,jk)*zff)  
         pcgaz(jl, jk) = zgar*(1.-zratio)/(1.+zgar)  
         ppizaz(jl, jk) = zratio + (1.-zratio)*ppizaz(jl, jk)*(1.-zff)/(1.- &  
           ppizaz(jl,jk)*zff)  
       END DO  
     ELSE  
       DO jl = 1, kdlon  
         ztray = prayl(jl)*pdsig(jl, jk)  
         ptauaz(jl, jk) = ztray  
         pcgaz(jl, jk) = 0.  
         ppizaz(jl, jk) = 1. - repsct  
       END DO  
     END IF ! check flag_aer  
   END DO  
   
   ! ------------------------------------------------------------------  
   
   ! *         2.    TOTAL EFFECTIVE CLOUDINESS ABOVE A GIVEN LEVEL  
   ! ----------------------------------------------  
   
   
   DO jl = 1, kdlon  
     zr23(jl) = 0.  
     zc0i(jl, kflev+1) = 0.  
     zclear(jl) = 1.  
     zscat(jl) = 0.  
   END DO  
   
   jk = 1  
   jkl = kflev + 1 - jk  
   jklp1 = jkl + 1  
   DO jl = 1, kdlon  
     zfacoa = 1. - ppizaz(jl, jkl)*pcgaz(jl, jkl)*pcgaz(jl, jkl)  
     zcorae = zfacoa*ptauaz(jl, jkl)*psec(jl)  
     zr21(jl) = exp(-zcorae)  
     zss0(jl) = 1. - zr21(jl)  
     zcle0(jl, jkl) = zss0(jl)  
   
     IF (novlp==1) THEN  
       ! * maximum-random  
       zclear(jl) = zclear(jl)*(1.0-max(zss0(jl),zscat(jl)))/ &  
         (1.0-min(zscat(jl),1.-zepsec))  
       zc0i(jl, jkl) = 1.0 - zclear(jl)  
       zscat(jl) = zss0(jl)  
     ELSE IF (novlp==2) THEN  
       ! * maximum  
       zscat(jl) = max(zss0(jl), zscat(jl))  
       zc0i(jl, jkl) = zscat(jl)  
     ELSE IF (novlp==3) THEN  
       ! * random  
       zclear(jl) = zclear(jl)*(1.0-zss0(jl))  
       zscat(jl) = 1.0 - zclear(jl)  
       zc0i(jl, jkl) = zscat(jl)  
     END IF  
   END DO  
101    
102    DO jk = 2, kflev      jk = 1
103      jkl = kflev + 1 - jk      jkl = kflev + 1 - jk
104      jklp1 = jkl + 1      jklp1 = jkl + 1
105      DO jl = 1, kdlon      DO jl = 1, kdlon
106        zfacoa = 1. - ppizaz(jl, jkl)*pcgaz(jl, jkl)*pcgaz(jl, jkl)         zfacoa = 1d0
107        zcorae = zfacoa*ptauaz(jl, jkl)*psec(jl)         zcorae = zfacoa * ptauaz(jl, jkl) * psec(jl)
108        zr21(jl) = exp(-zcorae)         zr21(jl) = exp(- zcorae)
109        zss0(jl) = 1. - zr21(jl)         zss0(jl) = 1d0 - zr21(jl)
110        zcle0(jl, jkl) = zss0(jl)  
111           IF (novlp == 1) THEN
112        IF (novlp==1) THEN            ! maximum-random
113          ! * maximum-random            zclear(jl) = zclear(jl) * (1d0 - max(zss0(jl), zscat(jl))) / (1d0 &
114          zclear(jl) = zclear(jl)*(1.0-max(zss0(jl),zscat(jl)))/ &                 - min(zscat(jl), 1d0 - zepsec))
115            (1.0-min(zscat(jl),1.-zepsec))            zc0i(jl, jkl) = 1d0 - zclear(jl)
116          zc0i(jl, jkl) = 1.0 - zclear(jl)            zscat(jl) = zss0(jl)
117          zscat(jl) = zss0(jl)         ELSE IF (novlp == 2) THEN
118        ELSE IF (novlp==2) THEN            ! maximum
119          ! * maximum            zscat(jl) = max(zss0(jl), zscat(jl))
120          zscat(jl) = max(zss0(jl), zscat(jl))            zc0i(jl, jkl) = zscat(jl)
121          zc0i(jl, jkl) = zscat(jl)         ELSE IF (novlp == 3) THEN
122        ELSE IF (novlp==3) THEN            ! random
123          ! * random            zclear(jl) = zclear(jl) * (1d0 - zss0(jl))
124          zclear(jl) = zclear(jl)*(1.0-zss0(jl))            zscat(jl) = 1d0 - zclear(jl)
125          zscat(jl) = 1.0 - zclear(jl)            zc0i(jl, jkl) = zscat(jl)
126          zc0i(jl, jkl) = zscat(jl)         END IF
127        END IF      END DO
128    
129        DO jk = 2, kflev
130           jkl = kflev + 1 - jk
131           jklp1 = jkl + 1
132           DO jl = 1, kdlon
133              zfacoa = 1d0
134              zcorae = zfacoa * ptauaz(jl, jkl) * psec(jl)
135              zr21(jl) = exp(- zcorae)
136              zss0(jl) = 1d0 - zr21(jl)
137    
138              IF (novlp == 1) THEN
139                 ! maximum-random
140                 zclear(jl) = zclear(jl) * (1d0 - max(zss0(jl), zscat(jl))) &
141                      / (1d0 - min(zscat(jl), 1d0 - zepsec))
142                 zc0i(jl, jkl) = 1d0 - zclear(jl)
143                 zscat(jl) = zss0(jl)
144              ELSE IF (novlp == 2) THEN
145                 ! maximum
146                 zscat(jl) = max(zss0(jl), zscat(jl))
147                 zc0i(jl, jkl) = zscat(jl)
148              ELSE IF (novlp == 3) THEN
149                 ! random
150                 zclear(jl) = zclear(jl) * (1d0 - zss0(jl))
151                 zscat(jl) = 1d0 - zclear(jl)
152                 zc0i(jl, jkl) = zscat(jl)
153              END IF
154           END DO
155      END DO      END DO
   END DO  
156    
157    ! ------------------------------------------------------------------      ! 3. REFLECTIVITY/TRANSMISSIVITY FOR PURE SCATTERING
158    
   ! *         3.    REFLECTIVITY/TRANSMISSIVITY FOR PURE SCATTERING  
   ! -----------------------------------------------  
   
   
   DO jl = 1, kdlon  
     pray1(jl, kflev+1) = 0.  
     pray2(jl, kflev+1) = 0.  
     prefz(jl, 2, 1) = palbp(jl, knu)  
     prefz(jl, 1, 1) = palbp(jl, knu)  
     ptra1(jl, kflev+1) = 1.  
     ptra2(jl, kflev+1) = 1.  
   END DO  
   
   DO jk = 2, kflev + 1  
     jkm1 = jk - 1  
159      DO jl = 1, kdlon      DO jl = 1, kdlon
160           pray1(jl, kflev + 1) = 0d0
161           pray2(jl, kflev + 1) = 0d0
162           prefz(jl, 2, 1) = palbp(jl, knu)
163           prefz(jl, 1, 1) = palbp(jl, knu)
164           ptra1(jl, kflev + 1) = 1d0
165           ptra2(jl, kflev + 1) = 1d0
166        END DO
167    
168        DO jk = 2, kflev + 1
169           jkm1 = jk - 1
170           DO jl = 1, kdlon
171    
172              ! 3.1 EQUIVALENT ZENITH ANGLE
173    
174              zmue = (1d0 - zc0i(jl, jk)) * psec(jl) + zc0i(jl, jk) * 1.66d0
175              prmu0(jl, jk) = 1d0 / zmue
176    
177              ! 3.2 REFLECT./TRANSMISSIVITY DUE TO RAYLEIGH AND AEROSOLS
178    
179              zgap = 0d0
180              zbmu0 = 0.5d0 - 0.75d0 * zgap / zmue
181              zww = ppizaz(jl, jkm1)
182              zto = ptauaz(jl, jkm1)
183              zden = 1d0 + (1d0 - zww + zbmu0 * zww) * zto * zmue + (1d0 - zww) &
184                   * (1d0 - zww + 2d0 * zbmu0 * zww) * zto * zto * zmue * zmue
185              pray1(jl, jkm1) = zbmu0 * zww * zto * zmue / zden
186              ptra1(jl, jkm1) = 1d0 / zden
187    
188              zmu1 = 0.5d0
189              zbmu1 = 0.5d0 - 0.75d0 * zgap * zmu1
190              zden1 = 1d0 + (1d0 - zww + zbmu1 * zww) * zto / zmu1 + (1d0 - zww) &
191                   * (1d0 - zww + 2d0 * zbmu1 * zww &
192                   ) * zto * zto / zmu1 / zmu1
193              pray2(jl, jkm1) = zbmu1 * zww * zto / zmu1 / zden1
194              ptra2(jl, jkm1) = 1d0 / zden1
195    
196              prefz(jl, 1, jk) = (pray1(jl, jkm1) + prefz(jl, 1, jkm1) &
197                   * ptra1(jl, jkm1)* ptra2(jl, jkm1) / (1d0 - pray2(jl, jkm1) &
198                   * prefz(jl, 1, jkm1)))
199    
200              ztr(jl, 1, jkm1) = (ptra1(jl, jkm1) / (1d0 - pray2(jl, jkm1) &
201                   * prefz(jl, 1, jkm1)))
202    
203              prefz(jl, 2, jk) = (pray1(jl, jkm1) + prefz(jl, 2, jkm1) &
204                   * ptra1(jl, jkm1) * ptra2(jl, jkm1))
205    
206        ! ------------------------------------------------------------------            ztr(jl, 2, jkm1) = ptra1(jl, jkm1)
   
       ! *         3.1  EQUIVALENT ZENITH ANGLE  
       ! -----------------------  
   
   
       zmue = (1.-zc0i(jl,jk))*psec(jl) + zc0i(jl, jk)*1.66  
       prmu0(jl, jk) = 1./zmue  
   
   
       ! ------------------------------------------------------------------  
   
       ! *         3.2  REFLECT./TRANSMISSIVITY DUE TO RAYLEIGH AND AEROSOLS  
       ! ----------------------------------------------------  
   
   
       zgap = pcgaz(jl, jkm1)  
       zbmu0 = 0.5 - 0.75*zgap/zmue  
       zww = ppizaz(jl, jkm1)  
       zto = ptauaz(jl, jkm1)  
       zden = 1. + (1.-zww+zbmu0*zww)*zto*zmue + (1-zww)*(1.-zww+2.*zbmu0*zww) &  
         *zto*zto*zmue*zmue  
       pray1(jl, jkm1) = zbmu0*zww*zto*zmue/zden  
       ptra1(jl, jkm1) = 1./zden  
   
       zmu1 = 0.5  
       zbmu1 = 0.5 - 0.75*zgap*zmu1  
       zden1 = 1. + (1.-zww+zbmu1*zww)*zto/zmu1 + (1-zww)*(1.-zww+2.*zbmu1*zww &  
         )*zto*zto/zmu1/zmu1  
       pray2(jl, jkm1) = zbmu1*zww*zto/zmu1/zden1  
       ptra2(jl, jkm1) = 1./zden1  
   
   
   
       prefz(jl, 1, jk) = (pray1(jl,jkm1)+prefz(jl,1,jkm1)*ptra1(jl,jkm1)* &  
         ptra2(jl,jkm1)/(1.-pray2(jl,jkm1)*prefz(jl,1,jkm1)))  
   
       ztr(jl, 1, jkm1) = (ptra1(jl,jkm1)/(1.-pray2(jl,jkm1)*prefz(jl,1, &  
         jkm1)))  
   
       prefz(jl, 2, jk) = (pray1(jl,jkm1)+prefz(jl,2,jkm1)*ptra1(jl,jkm1)* &  
         ptra2(jl,jkm1))  
   
       ztr(jl, 2, jkm1) = ptra1(jl, jkm1)  
207    
208           END DO
209      END DO      END DO
   END DO  
   DO jl = 1, kdlon  
     zmue = (1.-zc0i(jl,1))*psec(jl) + zc0i(jl, 1)*1.66  
     prmu0(jl, 1) = 1./zmue  
   END DO  
   
   
   ! ------------------------------------------------------------------  
   
   ! *         3.5    REFLECT./TRANSMISSIVITY BETWEEN SURFACE AND LEVEL  
   ! -------------------------------------------------  
   
   
   IF (knu==1) THEN  
     jaj = 2  
210      DO jl = 1, kdlon      DO jl = 1, kdlon
211        prj(jl, jaj, kflev+1) = 1.         zmue = (1d0 - zc0i(jl, 1)) * psec(jl) + zc0i(jl, 1) * 1.66d0
212        prk(jl, jaj, kflev+1) = prefz(jl, 1, kflev+1)         prmu0(jl, 1) = 1d0 / zmue
     END DO  
   
     DO jk = 1, kflev  
       jkl = kflev + 1 - jk  
       jklp1 = jkl + 1  
       DO jl = 1, kdlon  
         zre11 = prj(jl, jaj, jklp1)*ztr(jl, 1, jkl)  
         prj(jl, jaj, jkl) = zre11  
         prk(jl, jaj, jkl) = zre11*prefz(jl, 1, jkl)  
       END DO  
213      END DO      END DO
214    
215    ELSE      ! 3.5 REFLECT./TRANSMISSIVITY BETWEEN SURFACE AND LEVEL
   
     DO jaj = 1, 2  
       DO jl = 1, kdlon  
         prj(jl, jaj, kflev+1) = 1.  
         prk(jl, jaj, kflev+1) = prefz(jl, jaj, kflev+1)  
       END DO  
   
       DO jk = 1, kflev  
         jkl = kflev + 1 - jk  
         jklp1 = jkl + 1  
         DO jl = 1, kdlon  
           zre11 = prj(jl, jaj, jklp1)*ztr(jl, jaj, jkl)  
           prj(jl, jaj, jkl) = zre11  
           prk(jl, jaj, jkl) = zre11*prefz(jl, jaj, jkl)  
         END DO  
       END DO  
     END DO  
216    
217    END IF      IF (knu == 1) THEN
218           jaj = 2
219           DO jl = 1, kdlon
220              prj(jl, jaj, kflev + 1) = 1d0
221              prk(jl, jaj, kflev + 1) = prefz(jl, 1, kflev + 1)
222           END DO
223    
224           DO jk = 1, kflev
225              jkl = kflev + 1 - jk
226              jklp1 = jkl + 1
227              DO jl = 1, kdlon
228                 zre11 = prj(jl, jaj, jklp1) * ztr(jl, 1, jkl)
229                 prj(jl, jaj, jkl) = zre11
230                 prk(jl, jaj, jkl) = zre11 * prefz(jl, 1, jkl)
231              END DO
232           END DO
233        ELSE
234           DO jaj = 1, 2
235              DO jl = 1, kdlon
236                 prj(jl, jaj, kflev + 1) = 1d0
237                 prk(jl, jaj, kflev + 1) = prefz(jl, jaj, kflev + 1)
238              END DO
239    
240              DO jk = 1, kflev
241                 jkl = kflev + 1 - jk
242                 jklp1 = jkl + 1
243                 DO jl = 1, kdlon
244                    zre11 = prj(jl, jaj, jklp1) * ztr(jl, jaj, jkl)
245                    prj(jl, jaj, jkl) = zre11
246                    prk(jl, jaj, jkl) = zre11 * prefz(jl, jaj, jkl)
247                 END DO
248              END DO
249           END DO
250        END IF
251    
252    ! ------------------------------------------------------------------    END SUBROUTINE swclr
253    
254    RETURN  end module swclr_m
 END SUBROUTINE swclr  

Legend:
Removed from v.157  
changed lines
  Added in v.218

  ViewVC Help
Powered by ViewVC 1.1.21