/[lmdze]/trunk/libf/dyn3d/Dissipation/dissip.f90
ViewVC logotype

Diff of /trunk/libf/dyn3d/Dissipation/dissip.f90

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

revision 63 by guez, Mon Jan 30 12:54:02 2012 UTC revision 64 by guez, Wed Aug 29 14:47:17 2012 UTC
# Line 12  contains Line 12  contains
12      ! Avec opĂ©rateurs star : gradiv2, divgrad2, nxgraro2      ! Avec opĂ©rateurs star : gradiv2, divgrad2, nxgraro2
13    
14      USE dimens_m, ONLY: iim, jjm, llm      USE dimens_m, ONLY: iim, jjm, llm
15      USE comdissnew, ONLY: lstardis, nitergdiv, nitergrot, niterh      USE comdissnew, ONLY: nitergdiv, nitergrot, niterh
16      USE inidissip_m, ONLY: dtdiss, tetah, tetaudiv, tetaurot, cdivu, crot, cdivh      USE inidissip_m, ONLY: dtdiss, tetah, tetaudiv, tetaurot, cdivu, crot, cdivh
17      use gradiv2_m, only: gradiv2      use gradiv2_m, only: gradiv2
18      use nr_util, only: assert      use nr_util, only: assert
# Line 47  contains Line 47  contains
47    
48      ! Calcul de la partie grad (div) :      ! Calcul de la partie grad (div) :
49    
50      IF (lstardis) THEN      CALL gradiv2(ucov, vcov, nitergdiv, gdx, gdy, cdivu)
        CALL gradiv2(ucov, vcov, nitergdiv, gdx, gdy, cdivu)  
     ELSE  
        CALL gradiv(llm, ucov, vcov, nitergdiv, gdx, gdy, cdivu)  
     END IF  
   
51      tedt = tetaudiv * dtdiss      tedt = tetaudiv * dtdiss
52      forall (l = 1: llm)      forall (l = 1: llm)
53         du(:, 2: jjm, l) = - tedt(l) * gdx(:, 2: jjm, l)         du(:, 2: jjm, l) = - tedt(l) * gdx(:, 2: jjm, l)
# Line 61  contains Line 56  contains
56    
57      ! Calcul de la partie n X grad (rot) :      ! Calcul de la partie n X grad (rot) :
58    
59      IF (lstardis) THEN      CALL nxgraro2(llm, ucov, vcov, nitergrot, grx, gry, crot)
        CALL nxgraro2(llm, ucov, vcov, nitergrot, grx, gry, crot)  
     ELSE  
        CALL nxgrarot(llm, ucov, vcov, nitergrot, grx, gry, crot)  
     END IF  
   
60      tedt = tetaurot * dtdiss      tedt = tetaurot * dtdiss
61      forall (l = 1: llm)      forall (l = 1: llm)
62         du(:, 2: jjm, l) = du(:, 2: jjm, l) - tedt(l) * grx(:, 2: jjm, l)         du(:, 2: jjm, l) = du(:, 2: jjm, l) - tedt(l) * grx(:, 2: jjm, l)
# Line 75  contains Line 65  contains
65    
66      ! calcul de la partie div (grad) :      ! calcul de la partie div (grad) :
67    
68      IF (lstardis) THEN      forall (l = 1: llm) &
69         forall (l = 1: llm) &           deltapres(:, :, l) = max(0., p(:, :, l) - p(:, :, l + 1))
70              deltapres(:, :, l) = max(0., p(:, :, l) - p(:, :, l + 1))      CALL divgrad2(llm, teta, deltapres, niterh, gdx, cdivh)
        CALL divgrad2(llm, teta, deltapres, niterh, gdx, cdivh)  
     ELSE  
        CALL divgrad(llm, teta, niterh, gdx, cdivh)  
     END IF  
   
71      forall (l = 1: llm) dh(:, :, l) = - tetah(l) * dtdiss * gdx(:, :, l)      forall (l = 1: llm) dh(:, :, l) = - tetah(l) * dtdiss * gdx(:, :, l)
72    
73    END SUBROUTINE dissip    END SUBROUTINE dissip

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

  ViewVC Help
Powered by ViewVC 1.1.21