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

Diff of /trunk/dyn3d/fyhyp.f

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

trunk/Sources/dyn3d/fyhyp.f revision 134 by guez, Wed Apr 29 15:47:56 2015 UTC trunk/dyn3d/fyhyp.f revision 265 by guez, Tue Mar 20 09:35:59 2018 UTC
# Line 4  module fyhyp_m Line 4  module fyhyp_m
4    
5  contains  contains
6    
7    SUBROUTINE fyhyp(rlatu, yyprimu, rlatv, rlatu2, yprimu2, rlatu1, yprimu1)    SUBROUTINE fyhyp(rlatu, rlatv, rlatu2, yprimu2, rlatu1, yprimu1)
8    
9      ! From LMDZ4/libf/dyn3d/fyhyp.F, version 1.2, 2005/06/03 09:11:32      ! From LMDZ4/libf/dyn3d/fyhyp.F, version 1.2, 2005/06/03 09:11:32
10    
# Line 15  contains Line 15  contains
15    
16      ! Il vaut mieux avoir : grossismy * dzoom < pi / 2      ! Il vaut mieux avoir : grossismy * dzoom < pi / 2
17    
18      use coefpoly_m, only: coefpoly      use coefpoly_m, only: coefpoly, a0, a1, a2, a3
19      USE dimens_m, only: jjm      USE dimensions, only: jjm
20        use dynetat0_m, only: clat, grossismy, dzoomy, tauy
21      use heavyside_m, only: heavyside      use heavyside_m, only: heavyside
     use serre, only: clat, grossismy, dzoomy, tauy  
22    
23      REAL, intent(out):: rlatu(jjm + 1), yyprimu(jjm + 1)      REAL, intent(out):: rlatu(:) ! (jjm + 1)
24      REAL, intent(out):: rlatv(jjm)      REAL, intent(out):: rlatv(:) ! (jjm)
25      real, intent(out):: rlatu2(jjm), yprimu2(jjm), rlatu1(jjm), yprimu1(jjm)      real, intent(out):: rlatu2(:), yprimu2(:), rlatu1(:), yprimu1(:) ! (jjm)
26    
27      ! Local:      ! Local:
28    
     DOUBLE PRECISION champmin, champmax  
29      INTEGER, PARAMETER:: nmax=30000, nmax2=2*nmax      INTEGER, PARAMETER:: nmax=30000, nmax2=2*nmax
30      REAL dzoom ! distance totale de la zone du zoom (en radians)      REAL dzoom ! distance totale de la zone du zoom (en radians)
31      DOUBLE PRECISION ylat(jjm + 1), yprim(jjm + 1)      DOUBLE PRECISION ylat(jjm + 1), yprim(jjm + 1)
# Line 41  contains Line 40  contains
40      DOUBLE PRECISION pi, pis2, epsilon, pisjm      DOUBLE PRECISION pi, pis2, epsilon, pisjm
41      DOUBLE PRECISION yo1, yi, ylon2, ymoy, yprimin      DOUBLE PRECISION yo1, yi, ylon2, ymoy, yprimin
42      DOUBLE PRECISION yfi, yf1, ffdy      DOUBLE PRECISION yfi, yf1, ffdy
43      DOUBLE PRECISION ypn, deply, y00      DOUBLE PRECISION ypn
44      SAVE y00, deply      DOUBLE PRECISION, save::deply, y00
45    
46      INTEGER i, j, it, ik, iter, jlat      INTEGER i, j, it, ik, iter, jlat, jjpn
47      INTEGER jpn, jjpn      INTEGER, save:: jpn
48      SAVE jpn      DOUBLE PRECISION yi2, heavyy0, heavyy0m
     DOUBLE PRECISION a0, a1, a2, a3, yi2, heavyy0, heavyy0m  
49      DOUBLE PRECISION fa(0:nmax2), fb(0:nmax2)      DOUBLE PRECISION fa(0:nmax2), fb(0:nmax2)
50      REAL y0min, y0max      REAL y0min, y0max
51    
# Line 187  contains Line 185  contains
185            ! et Y'(yi)            ! et Y'(yi)
186    
187            CALL coefpoly(yf(it), yf(it + 1), ytprim(it), ytprim(it + 1), &            CALL coefpoly(yf(it), yf(it + 1), ytprim(it), ytprim(it + 1), &
188                 yt(it), yt(it + 1), a0, a1, a2, a3)                 yt(it), yt(it + 1))
189    
190            yf1 = yf(it)            yf1 = yf(it)
191            yprimin = a1 + 2.*a2*yi + 3.*a3*yi*yi            yprimin = a1 + 2.*a2*yi + 3.*a3*yi*yi
# Line 259  contains Line 257  contains
257         IF (ik==1) THEN         IF (ik==1) THEN
258            DO j = 1, jjm + 1            DO j = 1, jjm + 1
259               rlatu(j) = ylat(j)               rlatu(j) = ylat(j)
              yyprimu(j) = yprim(j)  
260            END DO            END DO
261         ELSE IF (ik==2) THEN         ELSE IF (ik==2) THEN
262            DO j = 1, jjm            DO j = 1, jjm
# Line 281  contains Line 278  contains
278      DO j = 1, jjm      DO j = 1, jjm
279         ylat(j) = rlatu(j) - rlatu(j + 1)         ylat(j) = rlatu(j) - rlatu(j + 1)
280      END DO      END DO
     champmin = 1e12  
     champmax = -1e12  
     DO j = 1, jjm  
        champmin = min(champmin, ylat(j))  
        champmax = max(champmax, ylat(j))  
     END DO  
     champmin = champmin*180./pi  
     champmax = champmax*180./pi  
281    
282      DO j = 1, jjm      DO j = 1, jjm
283         IF (rlatu1(j) <= rlatu2(j)) THEN         IF (rlatu1(j) <= rlatu2(j)) THEN
# Line 323  contains Line 312  contains
312      ENDDO      ENDDO
313    
314      print *, 'Latitudes'      print *, 'Latitudes'
315      print 3, champmin, champmax      print 3, minval(ylat(:jjm)) *180d0/pi, maxval(ylat(:jjm))*180d0/pi
316    
317  3   Format(1x, ' Au centre du zoom, la longueur de la maille est', &  3   Format(1x, ' Au centre du zoom, la longueur de la maille est', &
318           ' d environ ', f0.2, ' degres ', /, &           ' d environ ', f0.2, ' degres ', /, &

Legend:
Removed from v.134  
changed lines
  Added in v.265

  ViewVC Help
Powered by ViewVC 1.1.21