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

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

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

trunk/libf/dyn3d/Dissipation/dissip.f90 revision 64 by guez, Wed Aug 29 14:47:17 2012 UTC trunk/dyn3d/Dissipation/dissip.f revision 279 by guez, Fri Jul 20 14:30:23 2018 UTC
# Line 8  contains Line 8  contains
8    
9      ! From dyn3d/dissip.F, version 1.1.1.1 2004/05/19 12:53:05      ! From dyn3d/dissip.F, version 1.1.1.1 2004/05/19 12:53:05
10      ! Author: P. Le Van      ! Author: P. Le Van
11      ! Objet : calcul de la dissipation horizontale      
12      ! Avec opĂ©rateurs star : gradiv2, divgrad2, nxgraro2      ! Objet : calcul de la dissipation horizontale. Avec op\'erateurs
13        ! star : gradiv2, divgrad2, nxgraro2.
14    
15        use nr_util, only: assert
16    
     USE dimens_m, ONLY: iim, jjm, llm  
17      USE comdissnew, ONLY: nitergdiv, nitergrot, niterh      USE comdissnew, ONLY: nitergdiv, nitergrot, niterh
18      USE inidissip_m, ONLY: dtdiss, tetah, tetaudiv, tetaurot, cdivu, crot, cdivh      USE dimensions, ONLY: iim, jjm, llm
19        use divgrad2_m, only: divgrad2
20      use gradiv2_m, only: gradiv2      use gradiv2_m, only: gradiv2
21      use nr_util, only: assert      USE inidissip_m, ONLY: dtdiss, tetah, tetaudiv, tetaurot, cdivu, crot, cdivh
22        use nxgraro2_m, only: nxgraro2
23    
24      REAL, intent(in):: vcov(:, :, :) ! (iim + 1, jjm, llm)      REAL, intent(in):: vcov(:, :, :) ! (iim + 1, jjm, llm)
25      REAL, intent(in):: ucov(:, :, :) ! (iim + 1, jjm + 1, llm)      REAL, intent(in):: ucov(:, :, :) ! (iim + 1, jjm + 1, llm)
# Line 27  contains Line 31  contains
31    
32      ! Local:      ! Local:
33      REAL gdx(iim + 1, jjm + 1, llm), gdy(iim + 1, jjm, llm)      REAL gdx(iim + 1, jjm + 1, llm), gdy(iim + 1, jjm, llm)
     REAL grx(iim + 1, jjm + 1, llm), gry(iim + 1, jjm, llm)  
34      REAL tedt(llm)      REAL tedt(llm)
35      REAL deltapres(iim + 1, jjm + 1, llm)      REAL deltapres(iim + 1, jjm + 1, llm)
36      INTEGER l      INTEGER l
# Line 45  contains Line 48  contains
48      du(:, 1, :) = 0.      du(:, 1, :) = 0.
49      du(:, jjm + 1, :) = 0.      du(:, jjm + 1, :) = 0.
50    
51      ! Calcul de la partie grad (div) :      ! Calcul de la partie grad(div) :
   
52      CALL gradiv2(ucov, vcov, nitergdiv, gdx, gdy, cdivu)      CALL gradiv2(ucov, vcov, nitergdiv, gdx, gdy, cdivu)
53      tedt = tetaudiv * dtdiss      tedt = tetaudiv * dtdiss
54      forall (l = 1: llm)      forall (l = 1: llm)
# Line 54  contains Line 56  contains
56         dv(:, :, l) = - tedt(l) * gdy(:, :, l)         dv(:, :, l) = - tedt(l) * gdy(:, :, l)
57      END forall      END forall
58    
59      ! Calcul de la partie n X grad (rot) :      ! Calcul de la partie n \wedge grad(rot) :
60        CALL nxgraro2(ucov, vcov, nitergrot, gdx, gdy, crot)
     CALL nxgraro2(llm, ucov, vcov, nitergrot, grx, gry, crot)  
61      tedt = tetaurot * dtdiss      tedt = tetaurot * dtdiss
62      forall (l = 1: llm)      forall (l = 1: llm)
63         du(:, 2: jjm, l) = du(:, 2: jjm, l) - tedt(l) * grx(:, 2: jjm, l)         du(:, 2: jjm, l) = du(:, 2: jjm, l) - tedt(l) * gdx(:, 2: jjm, l)
64         dv(:, :, l) = dv(:, :, l) - tedt(l) * gry(:, :, l)         dv(:, :, l) = dv(:, :, l) - tedt(l) * gdy(:, :, l)
65      END forall      END forall
66    
67      ! calcul de la partie div (grad) :      ! calcul de la partie div(grad) :
   
68      forall (l = 1: llm) &      forall (l = 1: llm) &
69           deltapres(:, :, l) = max(0., p(:, :, l) - p(:, :, l + 1))           deltapres(:, :, l) = max(0., p(:, :, l) - p(:, :, l + 1))
70      CALL divgrad2(llm, teta, deltapres, niterh, gdx, cdivh)      CALL divgrad2(llm, teta, deltapres, niterh, gdx, cdivh)

Legend:
Removed from v.64  
changed lines
  Added in v.279

  ViewVC Help
Powered by ViewVC 1.1.21