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

Diff of /trunk/dyn3d/massdair.f

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

trunk/dyn3d/massdair.f90 revision 76 by guez, Fri Nov 15 18:45:49 2013 UTC trunk/dyn3d/massdair.f revision 254 by guez, Mon Feb 5 10:39:38 2018 UTC
# Line 9  contains Line 9  contains
9      ! From LMDZ4/libf/dyn3d/massdair.F, version 1.1.1.1 2004/05/19 12:53:07      ! From LMDZ4/libf/dyn3d/massdair.F, version 1.1.1.1 2004/05/19 12:53:07
10    
11      ! Calcule la masse d'air dans chaque maille.      ! Calcule la masse d'air dans chaque maille.
12      ! Auteurs : P. Le Van , F. Hourdin.      ! Authors: P. Le Van, F. Hourdin
13    
14      ! Méthode pour calculer massebx et masseby. A chaque point      USE comgeom, ONLY: airesurg_2d
15      ! scalaire P(i, j) sont affectés quatre coefficients d'aires.      USE dimens_m, ONLY: iim, jjm, llm
16    
17      ! alpha1(i, j) calculé au point (i + 1/4, j - 1/4)      REAL, intent(in):: p(iim + 1, jjm + 1, llm + 1)
18      ! alpha2(i, j) calculé au point (i + 1/4, j + 1/4)      ! aux interfaces des llm couches
     ! alpha3(i, j) calculé au point (i - 1/4, j + 1/4)  
     ! alpha4(i, j) calculé au point (i - 1/4, j - 1/4)  
19    
20      ! Avec alpha1(i, j) = aire(i + 1/4, j - 1/4)/ aire(i, j)      real, intent(out):: masse(iim + 1, jjm + 1, llm)
21    
22      ! Pour plus de détails, voir sous-programme "iniconst" et      ! Local:
23      ! "massdair.txt".      INTEGER l
   
     USE comgeom, ONLY: airesurg  
     USE dimens_m, ONLY: iim, llm  
     USE paramet_m, ONLY: iip1, ip1jmp1, llmp1  
   
     REAL, intent(in):: p(ip1jmp1, llmp1) ! aux interfaces des llm couches  
     real, intent(out):: masse(ip1jmp1, llm)  
   
     ! Variables locales  
     INTEGER l, ij  
24    
25      !----------------------------------------------------------      !----------------------------------------------------------
26    
27      DO l = 1 , llm      forall (l = 1: llm) masse(:iim, :, l) = airesurg_2d(:iim, :) &
28         masse(:, l) = airesurg(:) * (p(:, l) - p(:, l + 1))           * (p(:iim, :, l) - p(:iim, :, l + 1))
29        masse(iim + 1, :, :) = masse(1, :, :)
        DO ij = 1, ip1jmp1, iip1  
           masse(ij + iim, l) = masse(ij, l)  
        ENDDO  
     end DO  
30    
31    END SUBROUTINE massdair    END SUBROUTINE massdair
32    

Legend:
Removed from v.76  
changed lines
  Added in v.254

  ViewVC Help
Powered by ViewVC 1.1.21