/[lmdze]/trunk/Sources/filtrez/inifilr.f
ViewVC logotype

Diff of /trunk/Sources/filtrez/inifilr.f

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

revision 82 by guez, Wed Mar 5 14:57:53 2014 UTC revision 132 by guez, Fri Mar 20 16:31:06 2015 UTC
# Line 34  contains Line 34  contains
34    
35      ! The modes are filtered from modfrst to modemax.      ! The modes are filtered from modfrst to modemax.
36    
     USE dimens_m, ONLY : iim, jjm  
     use conf_gcm_m, ONLY : fxyhypb, ysinus  
     USE comgeom, ONLY : rlatu, rlatv, xprimu  
     use nr_util, only: pi  
     USE serre, ONLY : alphax  
37      USE coefils, ONLY : coefilu, coefilu2, coefilv, coefilv2, eignfnu, &      USE coefils, ONLY : coefilu, coefilu2, coefilv, coefilv2, eignfnu, &
38           eignfnv, modfrstu, modfrstv           eignfnv, modfrstu, modfrstv
39        USE comgeom, ONLY : rlatu, rlatv, xprimu
40        USE dimens_m, ONLY : iim, jjm
41        use inifgn_m, only: inifgn
42        use nr_util, only: pi
43        USE serre, ONLY : grossismx
44    
45      ! Local:      ! Local:
46      REAL dlonu(iim), dlatu(jjm)      REAL dlatu(jjm)
47      REAL rlamda(2: iim), eignvl(iim)      REAL rlamda(2: iim), eignvl(iim)
48    
49      REAL lamdamax, cof      REAL lamdamax, cof
50      INTEGER i, j, modemax, imx, k, kf      INTEGER i, j, modemax, imx, k, kf
51      REAL dymin, dxmin, colat0      REAL dymin, colat0
52      REAL eignft(iim, iim), coff      REAL eignft(iim, iim), coff
     EXTERNAL inifgn  
53    
54      !-----------------------------------------------------------      !-----------------------------------------------------------
55    
56      print *, "Call sequence information: inifilr"      print *, "Call sequence information: inifilr"
57    
     DO i = 1, iim  
        dlonu(i) = xprimu(i)  
     END DO  
   
58      CALL inifgn(eignvl)      CALL inifgn(eignvl)
59    
60      PRINT *, 'EIGNVL '      PRINT *, 'EIGNVL '
# Line 79  contains Line 74  contains
74         dlatu(j) = rlatu(j) - rlatu(j+1)         dlatu(j) = rlatu(j) - rlatu(j+1)
75      END DO      END DO
76    
     dxmin = dlonu(1)  
     DO i = 2, iim  
        dxmin = min(dxmin, dlonu(i))  
     END DO  
77      dymin = dlatu(1)      dymin = dlatu(1)
78      DO j = 2, jjm      DO j = 2, jjm
79         dymin = min(dymin, dlatu(j))         dymin = min(dymin, dlatu(j))
80      END DO      END DO
81    
82      colat0 = min(0.5, dymin/dxmin)      colat0 = min(0.5, dymin / minval(xprimu(:iim)))
   
     IF (.NOT. fxyhypb .AND. ysinus) THEN  
        colat0 = 0.6  
        ! À revoir pour ysinus  
        alphax = 0.  
     END IF  
83    
84      PRINT *, 'colat0 = ', colat0      PRINT *, 'colat0 = ', colat0
     PRINT *, 'alphax = ', alphax  
   
     IF (alphax == 1.) THEN  
        PRINT *, 'alphax doit etre < a 1. Corriger '  
        STOP 1  
     END IF  
85    
86      lamdamax = iim / (pi * colat0 * (1. - alphax))      lamdamax = iim / (pi * colat0 / grossismx)
87      rlamda = lamdamax / sqrt(abs(eignvl(2: iim)))      rlamda = lamdamax / sqrt(abs(eignvl(2: iim)))
88    
89      DO j = 1, jjm      DO j = 1, jjm

Legend:
Removed from v.82  
changed lines
  Added in v.132

  ViewVC Help
Powered by ViewVC 1.1.21