/[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 109 by guez, Wed Sep 17 10:08:00 2014 UTC revision 112 by guez, Thu Sep 18 13:36:51 2014 UTC
# Line 6  contains Line 6  contains
6    
7    SUBROUTINE tau2alpha(type, factt, taumin, taumax, alpha)    SUBROUTINE tau2alpha(type, factt, taumin, taumax, alpha)
8    
9      USE comgeom, ONLY : cu_2d, cv_2d, rlatu, rlatv      USE comgeom, ONLY: cu_2d, cv_2d, rlatu, rlatv
     USE dimens_m, ONLY : jjm  
10      use conf_guide_m, only: lat_min_guide, lat_max_guide      use conf_guide_m, only: lat_min_guide, lat_max_guide
11      USE dimens_m, ONLY : iim      USE dimens_m, ONLY: iim, jjm
12      USE nr_util, ONLY : pi      USE nr_util, ONLY: pi
13      USE paramet_m, ONLY : iip1, jjp1      USE paramet_m, ONLY: iip1, jjp1
14      USE serre, ONLY : clat, clon, grossismx, grossismy      USE serre, ONLY: clat, clon, grossismx, grossismy
15      use writefield_m, only: writefield      use writefield_m, only: writefield
16    
17      INTEGER, intent(in):: type      INTEGER, intent(in):: type
# Line 58  contains Line 57  contains
57         END DO         END DO
58         CALL writefield("dxdys", dxdys)         CALL writefield("dxdys", dxdys)
59    
60         DO j = 1, jjp1         if (type == 2) then
61            DO i = 1, iim            DO j = 1, jjp1
62               dxdyu(i, j) = 0.5 * (dxdys(i, j) + dxdys(i + 1, j))               DO i = 1, iim
63                    dxdyu(i, j) = 0.5 * (dxdys(i, j) + dxdys(i + 1, j))
64                 END DO
65                 dxdyu(iip1, j) = dxdyu(1, j)
66              END DO
67           elseif (type == 3) then
68              DO j = 1, jjm
69                 DO i = 1, iip1
70                    dxdyv(i, j) = 0.5 * (dxdys(i, j) + dxdys(i, j + 1))
71                 END DO
72            END DO            END DO
73            dxdyu(iip1, j) = dxdyu(1, j)         end if
        END DO  
        DO j = 1, jjm  
           DO i = 1, iip1  
              dxdyv(i, j) = 0.5 * (dxdys(i, j) + dxdys(i, j + 1))  
           END DO  
        END DO  
74    
75         ! coordonnees du centre du zoom         ! coordonnees du centre du zoom
76         CALL coordij(clon, clat, ilon, ilat)         CALL coordij(clon, clat, ilon, ilat)
# Line 83  contains Line 85  contains
85            END DO            END DO
86         END DO         END DO
87    
88         IF (abs(grossismx - 1.)<0.1 .OR. abs(grossismy - 1.)<0.1) THEN         IF (abs(grossismx - 1.) < 0.1 .OR. abs(grossismy - 1.) < 0.1) THEN
89            PRINT *, 'ATTENTION modele peu zoome'            PRINT *, 'Attention : modèle peu zoomé.'
90            PRINT *, 'ATTENTION on prend une constante de guidage cste'            PRINT *, 'On prend une constante de guidage constante.'
           gamma = 0.  
91         ELSE         ELSE
92            gamma = (dxdy_max - 2. * dxdy_min) / (dxdy_max - dxdy_min)            gamma = (dxdy_max - 2. * dxdy_min) / (dxdy_max - dxdy_min)
93            PRINT *, 'gamma=', gamma            PRINT *, 'gamma=', gamma
# Line 115  contains Line 116  contains
116               dxdy = dxdyv(i, j)               dxdy = dxdyv(i, j)
117               zlat = rlatv(j) * 180. / pi               zlat = rlatv(j) * 180. / pi
118            END IF            END IF
119            IF (abs(grossismx - 1.)<0.1 .OR. abs(grossismy - 1.)<0.1) THEN            IF (abs(grossismx - 1.) < 0.1 .OR. abs(grossismy - 1.) < 0.1) THEN
120               ! pour une grille reguliere, xi=xxx**0=1 -> alpha=alphamin               ! grille regulière
121               alpha(i, j) = alphamin               alpha(i, j) = alphamin
122            ELSE            ELSE
123               xi = ((dxdy_max - dxdy) / (dxdy_max - dxdy_min))**gamma               xi = ((dxdy_max - dxdy) / (dxdy_max - dxdy_min))**gamma

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

  ViewVC Help
Powered by ViewVC 1.1.21