/[lmdze]/trunk/dyn3d/Dissipation/inidissip.f
ViewVC logotype

Diff of /trunk/dyn3d/Dissipation/inidissip.f

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

revision 265 by guez, Tue Mar 20 09:35:59 2018 UTC revision 266 by guez, Thu Apr 19 17:54:55 2018 UTC
# Line 6  module inidissip_m Line 6  module inidissip_m
6    
7    private llm    private llm
8    
9    REAL dtdiss ! in s    REAL, protected:: dtdiss ! in s
10    integer idissip ! période de la dissipation (en pas de temps)    integer, protected:: idissip ! période de la dissipation (en pas de temps)
11    real tetaudiv(llm), tetaurot(llm), tetah(llm) ! in s-1    real, protected:: tetaudiv(llm), tetaurot(llm), tetah(llm) ! in s-1
12    real cdivu, crot, cdivh    real, protected:: cdivu, crot, cdivh
13    
14  contains  contains
15    
16    SUBROUTINE inidissip    SUBROUTINE inidissip
17    
18      ! From dyn3d/inidissip.F, version 1.1.1.1 2004/05/19 12:53:06      ! From dyn3d/inidissip.F, version 1.1.1.1, 2004/05/19 12:53:06
19    
20      ! Initialisation de la dissipation horizontale. Calcul des valeurs      ! Initialisation de la dissipation horizontale. Calcul des valeurs
21      ! propres des opérateurs par méthode itérative.      ! propres des opérateurs par méthode itérative.
# Line 23  contains Line 23  contains
23      USE comconst, ONLY: dtvr      USE comconst, ONLY: dtvr
24      use comdissnew, only: nitergdiv, nitergrot, niterh, tetagdiv, tetagrot, &      use comdissnew, only: nitergdiv, nitergrot, niterh, tetagdiv, tetagrot, &
25           tetatemp           tetatemp
     USE disvert_m, ONLY: preff, presnivs  
26      USE conf_gcm_m, ONLY: iperiod      USE conf_gcm_m, ONLY: iperiod
27      USE dimensions, ONLY: iim, jjm      USE dimensions, ONLY: iim, jjm
28        USE disvert_m, ONLY: preff, presnivs
29      use divgrad2_m, only: divgrad2      use divgrad2_m, only: divgrad2
30      use filtreg_scal_m, only: filtreg_scal      use filtreg_scal_m, only: filtreg_scal
31      use filtreg_v_m, only: filtreg_v      use filtreg_v_m, only: filtreg_v
# Line 33  contains Line 33  contains
33      use jumble, only: new_unit      use jumble, only: new_unit
34      use nxgraro2_m, only: nxgraro2      use nxgraro2_m, only: nxgraro2
35    
36      ! Variables local to the procedure:      ! Local:
37      REAL zvert(llm), max_zvert ! no dimension      REAL zvert(llm), max_zvert ! no dimension
38      REAL, dimension(iim + 1, jjm + 1, 1):: zh, zu, gx, divgra, deltap      REAL, dimension(iim + 1, jjm + 1, 1):: zh, zu, gx, divgra, deltap
39      real zv(iim + 1, jjm, 1), gy(iim + 1, jjm, 1)      real zv(iim + 1, jjm, 1), gy(iim + 1, jjm, 1)
# Line 45  contains Line 45  contains
45    
46      PRINT *, 'Call sequence information: inidissip'      PRINT *, 'Call sequence information: inidissip'
47      call random_seed(size=seed_size)      call random_seed(size=seed_size)
48      call random_seed(put=(/(1, ii = 1, seed_size)/))      call random_seed(put=[(1, ii = 1, seed_size)])
49    
50      PRINT *, 'Calcul des valeurs propres de divgrad'      PRINT *, 'Calcul des valeurs propres de divgrad'
51      deltap = 1.      deltap = 1.
# Line 80  contains Line 80  contains
80      cdivu = 1. / zllm      cdivu = 1. / zllm
81      PRINT *, 'cdivu = ', cdivu      PRINT *, 'cdivu = ', cdivu
82    
83      PRINT *, 'Calcul des valeurs propres de nxgrarot'      PRINT *, 'Calcul des valeurs propres de nxgraro2'
84      call random_number(zu)      call random_number(zu)
85      zu = zu - 0.5      zu = zu - 0.5
86      CALL filtreg_scal(zu, direct = .true., intensive = .true.)      CALL filtreg_scal(zu, direct = .true., intensive = .true.)
# Line 89  contains Line 89  contains
89      CALL filtreg_v(zv, intensive = .true.)      CALL filtreg_v(zv, intensive = .true.)
90    
91      DO l = 1, 50      DO l = 1, 50
92         CALL nxgraro2(zu, zv, nitergrot, gx, gy, -1.)         CALL nxgraro2(zu, zv, nitergrot, gx, gy, crot = - 1.)
93         zllm = max(abs(maxval(gx)), abs(maxval(gy)))         zllm = max(abs(maxval(gx)), abs(maxval(gy)))
94         zu = gx / zllm         zu = gx / zllm
95         zv = gy / zllm         zv = gy / zllm

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

  ViewVC Help
Powered by ViewVC 1.1.21