/[lmdze]/trunk/dyn3d/tau2alpha.f
ViewVC logotype

Diff of /trunk/dyn3d/tau2alpha.f

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

revision 112 by guez, Thu Sep 18 13:36:51 2014 UTC revision 113 by guez, Thu Sep 18 19:56:46 2014 UTC
# Line 20  contains Line 20  contains
20    
21      ! Local:      ! Local:
22      REAL dxdy      REAL dxdy
23      REAL dxdy_min, dxdy_max      REAL, save:: dxdy_min, dxdy_max
24      REAL alphamin, alphamax, xi      REAL alphamin, alphamax, xi
25      REAL, SAVE:: gamma      REAL, SAVE:: gamma
26      INTEGER i, j, ilon, ilat      INTEGER i, j, ilon, ilat
27      LOGICAL:: first = .TRUE.      LOGICAL:: first = .TRUE.
28      REAL zdx(iip1, jjp1), zdy(iip1, jjp1)      REAL dx(iip1, jjp1), dy(iip1, jjp1)
29      REAL zlat      REAL zlat
30      REAL dxdys(iip1, jjp1), dxdyu(iip1, jjp1), dxdyv(iip1, jjm)      REAL, save:: dxdys(iip1, jjp1), dxdyu(iip1, jjp1), dxdyv(iip1, jjm)
31    
32      !------------------------------------------------------------      !------------------------------------------------------------
33    
34      IF (first) THEN      IF (first) THEN
35         DO j = 2, jjm         DO j = 2, jjm
36            DO i = 2, iip1            DO i = 2, iip1
37               zdx(i, j) = 0.5 * (cu_2d(i - 1, j) + cu_2d(i, j)) / cos(rlatu(j))               dx(i, j) = 0.5 * (cu_2d(i - 1, j) + cu_2d(i, j)) / cos(rlatu(j))
38            END DO            END DO
39            zdx(1, j) = zdx(iip1, j)            dx(1, j) = dx(iip1, j)
40         END DO         END DO
41         DO j = 2, jjm         DO j = 2, jjm
42            DO i = 1, iip1            DO i = 1, iip1
43               zdy(i, j) = 0.5 * (cv_2d(i, j - 1) + cv_2d(i, j))               dy(i, j) = 0.5 * (cv_2d(i, j - 1) + cv_2d(i, j))
44            END DO            END DO
45         END DO         END DO
46         DO i = 1, iip1         DO i = 1, iip1
47            zdx(i, 1) = zdx(i, 2)            dx(i, 1) = dx(i, 2)
48            zdx(i, jjp1) = zdx(i, jjm)            dx(i, jjp1) = dx(i, jjm)
49            zdy(i, 1) = zdy(i, 2)            dy(i, 1) = dy(i, 2)
50            zdy(i, jjp1) = zdy(i, jjm)            dy(i, jjp1) = dy(i, jjm)
51         END DO         END DO
52    
53         DO j = 1, jjp1         DO j = 1, jjp1
54            DO i = 1, iip1            DO i = 1, iip1
55               dxdys(i, j) = sqrt(zdx(i, j)**2 + zdy(i, j)**2)               dxdys(i, j) = sqrt(dx(i, j)**2 + dy(i, j)**2)
56            END DO            END DO
57         END DO         END DO
58         CALL writefield("dxdys", dxdys)         CALL writefield("dxdys", dxdys)
59    
60         if (type == 2) then         DO j = 1, jjp1
61            DO j = 1, jjp1            DO i = 1, iim
62               DO i = 1, iim               dxdyu(i, j) = 0.5 * (dxdys(i, j) + dxdys(i + 1, j))
                 dxdyu(i, j) = 0.5 * (dxdys(i, j) + dxdys(i + 1, j))  
              END DO  
              dxdyu(iip1, j) = dxdyu(1, j)  
           END DO  
        elseif (type == 3) then  
           DO j = 1, jjm  
              DO i = 1, iip1  
                 dxdyv(i, j) = 0.5 * (dxdys(i, j) + dxdys(i, j + 1))  
              END DO  
63            END DO            END DO
64         end if            dxdyu(iip1, j) = dxdyu(1, j)
65           END DO
66    
67           DO j = 1, jjm
68              DO i = 1, iip1
69                 dxdyv(i, j) = 0.5 * (dxdys(i, j) + dxdys(i, j + 1))
70              END DO
71           END DO
72    
73         ! coordonnees du centre du zoom         ! coordonnees du centre du zoom
74         CALL coordij(clon, clat, ilon, ilat)         CALL coordij(clon, clat, ilon, ilat)
# Line 90  contains Line 88  contains
88            PRINT *, 'On prend une constante de guidage constante.'            PRINT *, 'On prend une constante de guidage constante.'
89         ELSE         ELSE
90            gamma = (dxdy_max - 2. * dxdy_min) / (dxdy_max - dxdy_min)            gamma = (dxdy_max - 2. * dxdy_min) / (dxdy_max - dxdy_min)
91            PRINT *, 'gamma=', gamma            IF (gamma < 1E-5) THEN
92            IF (gamma<1.E-5) THEN               PRINT *, '(dxdy_max - 2. * dxdy_min) / (dxdy_max - dxdy_min) ' &
93               PRINT *, 'gamma =', gamma, '<1e-5'                    // '< 1e-5'
94               STOP               STOP 1
95            END IF            END IF
           PRINT *, 'gamma=', gamma  
96            gamma = log(0.5) / log(gamma)            gamma = log(0.5) / log(gamma)
97              PRINT *, 'gamma=', gamma
98         END IF         END IF
99         first = .false.         first = .false.
100      END IF      END IF

Legend:
Removed from v.112  
changed lines
  Added in v.113

  ViewVC Help
Powered by ViewVC 1.1.21