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

Diff of /trunk/dyn3d/fyhyp.f

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

revision 117 by guez, Thu Sep 18 13:36:51 2014 UTC revision 118 by guez, Thu Dec 18 17:30:24 2014 UTC
# Line 12  contains Line 12  contains
12      ! Author: P. Le Van, from analysis by R. Sadourny      ! Author: P. Le Van, from analysis by R. Sadourny
13    
14      ! Calcule les latitudes et dérivées dans la grille du GCM pour une      ! Calcule les latitudes et dérivées dans la grille du GCM pour une
15      ! fonction f(y) à tangente hyperbolique.      ! fonction f(y) tangente hyperbolique.
16    
17      ! Nota bene : il vaut mieux avoir grossism * dzoom < pi / 2 (rad),      ! Nota bene : il vaut mieux avoir grossism * dzoom < pi / 2 (rad),
18      ! en latitude.      ! en latitude.
19    
20      USE dimens_m, only: jjm      USE dimens_m, only: jjm
     USE paramet_m, only: JJP1  
21    
22      REAL, intent(in):: yzoomdeg      REAL, intent(in):: yzoomdeg
23    
# Line 32  contains Line 31  contains
31    
32      ! arguments de sortie      ! arguments de sortie
33    
34      REAL rrlatu(jjp1), yyprimu(jjp1), rrlatv(jjm), yyprimv(jjm)      REAL, intent(out):: rrlatu(jjm + 1), yyprimu(jjm + 1)
35      real rlatu2(jjm), yprimu2(jjm), rlatu1(jjm), yprimu1(jjm)      REAL, intent(out):: rrlatv(jjm), yyprimv(jjm)
36      DOUBLE PRECISION champmin, champmax      real, intent(out):: rlatu2(jjm), yprimu2(jjm), rlatu1(jjm), yprimu1(jjm)
37        DOUBLE PRECISION, intent(out):: champmin, champmax
38    
39      ! Local:      ! Local:
40    
41      INTEGER, PARAMETER:: nmax=30000, nmax2=2*nmax      INTEGER, PARAMETER:: nmax=30000, nmax2=2*nmax
42      REAL dzoom ! distance totale de la zone du zoom (en radians)      REAL dzoom ! distance totale de la zone du zoom (en radians)
43      DOUBLE PRECISION ylat(jjp1), yprim(jjp1)      DOUBLE PRECISION ylat(jjm + 1), yprim(jjm + 1)
44      DOUBLE PRECISION yuv      DOUBLE PRECISION yuv
45      DOUBLE PRECISION, save:: yt(0:nmax2)      DOUBLE PRECISION, save:: yt(0:nmax2)
46      DOUBLE PRECISION fhyp(0:nmax2), beta      DOUBLE PRECISION fhyp(0:nmax2), beta
# Line 48  contains Line 48  contains
48      DOUBLE PRECISION fxm(0:nmax2)      DOUBLE PRECISION fxm(0:nmax2)
49      DOUBLE PRECISION, save:: yf(0:nmax2)      DOUBLE PRECISION, save:: yf(0:nmax2)
50      DOUBLE PRECISION yypr(0:nmax2)      DOUBLE PRECISION yypr(0:nmax2)
51      DOUBLE PRECISION yvrai(jjp1), yprimm(jjp1), ylatt(jjp1)      DOUBLE PRECISION yvrai(jjm + 1), yprimm(jjm + 1), ylatt(jjm + 1)
52      DOUBLE PRECISION pi, pis2, epsilon, y0, pisjm      DOUBLE PRECISION pi, pis2, epsilon, y0, pisjm
53      DOUBLE PRECISION yo1, yi, ylon2, ymoy, yprimin      DOUBLE PRECISION yo1, yi, ylon2, ymoy, yprimin
54      DOUBLE PRECISION yfi, yf1, ffdy      DOUBLE PRECISION yfi, yf1, ffdy
# Line 245  contains Line 245  contains
245    
246         IF (ik==1) THEN         IF (ik==1) THEN
247            ypn = pis2            ypn = pis2
248            DO j = jlat, 1, -1            DO j = jjm + 1, 1, -1
249               IF (yvrai(j)<=ypn) exit               IF (yvrai(j)<=ypn) exit
250            END DO            END DO
251    
# Line 279  contains Line 279  contains
279         END DO         END DO
280    
281         IF (ik==1) THEN         IF (ik==1) THEN
282            DO j = 1, jlat            DO j = 1, jjm + 1
283               rrlatu(j) = ylat(j)               rrlatu(j) = ylat(j)
284               yyprimu(j) = yprim(j)               yyprimu(j) = yprim(j)
285            END DO            END DO
286         ELSE IF (ik==2) THEN         ELSE IF (ik==2) THEN
287            DO j = 1, jlat            DO j = 1, jjm
288               rrlatv(j) = ylat(j)               rrlatv(j) = ylat(j)
289               yyprimv(j) = yprim(j)               yyprimv(j) = yprim(j)
290            END DO            END DO
291         ELSE IF (ik==3) THEN         ELSE IF (ik==3) THEN
292            DO j = 1, jlat            DO j = 1, jjm
293               rlatu2(j) = ylat(j)               rlatu2(j) = ylat(j)
294               yprimu2(j) = yprim(j)               yprimu2(j) = yprim(j)
295            END DO            END DO
296         ELSE IF (ik==4) THEN         ELSE IF (ik==4) THEN
297            DO j = 1, jlat            DO j = 1, jjm
298               rlatu1(j) = ylat(j)               rlatu1(j) = ylat(j)
299               yprimu1(j) = yprim(j)               yprimu1(j) = yprim(j)
300            END DO            END DO

Legend:
Removed from v.117  
changed lines
  Added in v.118

  ViewVC Help
Powered by ViewVC 1.1.21