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

Diff of /trunk/dyn3d/caldyn0.f

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

trunk/libf/dyn3d/caldyn0.f revision 4 by guez, Thu Feb 28 18:05:06 2008 UTC trunk/Sources/dyn3d/caldyn0.f revision 134 by guez, Wed Apr 29 15:47:56 2015 UTC
# Line 1  Line 1 
1        SUBROUTINE caldyn0  module caldyn0_m
      $ (itau,ucov,vcov,teta,ps,masse,pk,phis ,  
      $  phi,w,pbaru,pbarv,time )  
   
 !     From dyn3d/caldyn0.F,v 1.1.1.1 2004/05/19 12:53:07  
   
       use dimens_m  
       use paramet_m  
       use comconst  
       use comvert  
       use comgeom  
       use pression_m, only: pression  
   
       IMPLICIT NONE  
   
 c=======================================================================  
 c  
 c  Auteur :  P. Le Van  
 c  
 c   Objet:  
 c   ------  
 c  
 c   Calcul des tendances dynamiques.  
 c  
 c Modif 04/93 F.Forget  
 c=======================================================================  
   
 c-----------------------------------------------------------------------  
 c   0. Declarations:  
 c   ----------------  
   
   
 c   Arguments:  
 c   ----------  
   
       INTEGER, intent(in):: itau  
       REAL, intent(in):: vcov(ip1jm,llm),ucov(ip1jmp1,llm)  
       real teta(ip1jmp1,llm)  
       REAL, intent(in):: ps(ip1jmp1)  
       real, intent(in):: phis(ip1jmp1)  
       REAL, intent(in):: pk(iip1,jjp1,llm)  
       REAL vcont(ip1jm,llm),ucont(ip1jmp1,llm)  
       REAL phi(ip1jmp1,llm),masse(ip1jmp1,llm)  
       REAL pbaru(ip1jmp1,llm),pbarv(ip1jm,llm)  
       REAL time  
   
 c   Local:  
 c   ------  
   
       REAL ang(ip1jmp1,llm),p(ip1jmp1,llmp1)  
       REAL massebx(ip1jmp1,llm),masseby(ip1jm,llm),psexbarxy(ip1jm)  
       REAL vorpot(ip1jm,llm)  
       REAL w(ip1jmp1,llm),ecin(ip1jmp1,llm),convm(ip1jmp1,llm)  
       REAL bern(ip1jmp1,llm)  
       REAL massebxy(ip1jm,llm), dp(ip1jmp1)  
       
   
       INTEGER   ij,l  
   
 c-----------------------------------------------------------------------  
       print *, "Call sequence information: caldyn0"  
 c   Calcul des tendances dynamiques:  
 c   --------------------------------  
   
       CALL covcont  ( llm    , ucov    , vcov , ucont, vcont        )  
       CALL pression ( ip1jmp1, ap      , bp   ,  ps  , p            )  
       CALL psextbar (   ps   , psexbarxy                            )  
       CALL massdair (    p   , masse                                )  
       CALL massbar  (   masse, massebx , masseby                    )  
       CALL massbarxy(   masse, massebxy                             )  
       CALL flumass  ( massebx, masseby , vcont, ucont ,pbaru, pbarv )  
       CALL convmas  (   pbaru, pbarv   , convm                      )  
   
       DO ij =1, ip1jmp1  
          dp( ij ) = convm( ij,1 ) / airesurg( ij )  
       ENDDO  
   
       CALL vitvert ( convm  , w                                  )  
       CALL tourpot ( vcov   , ucov  , massebxy  , vorpot         )  
       CALL enercin ( vcov   , ucov  , vcont     , ucont  , ecin  )  
       CALL bernoui ( ip1jmp1, llm   , phi       , ecin   , bern  )  
   
       DO l=1,llm  
          DO ij=1,ip1jmp1  
             ang(ij,l) = ucov(ij,l) + constang(ij)  
          ENDDO  
       ENDDO  
2    
3          CALL sortvarc0    IMPLICIT NONE
      $ ( itau,ucov,teta,ps,masse,pk,phis,vorpot,phi,bern,dp,time,vcov )  
4    
5        RETURN  contains
6        END  
7      SUBROUTINE caldyn0(ucov, vcov, teta, ps, masse, pk, phis, phi, w, &
8           pbaru, pbarv)
9    
10        ! From dyn3d/caldyn0.F, version 1.1.1.1, 2004/05/19 12:53:07
11        ! Authors:  P. Le Van, F. Forget
12        ! Objet : calcul des tendances dynamiques
13    
14        use bernoui_m, only: bernoui
15        USE comgeom, ONLY: airesurg
16        use convmas_m, only: convmas
17        USE dimens_m, ONLY: iim, jjm, llm
18        USE disvert_m, ONLY: ap, bp
19        use flumass_m, only: flumass
20        use massbar_m, only: massbar
21        use massbarxy_m, only: massbarxy
22        use massdair_m, only: massdair
23        USE paramet_m, ONLY: iip1, ip1jmp1, jjp1, llmp1
24        use sortvarc_m, only: sortvarc
25        use tourpot_m, only: tourpot
26        use vitvert_m, only: vitvert
27    
28        REAL, INTENT(IN):: ucov(:, :, :) ! (iim + 1, jjm + 1, llm) vent covariant
29        REAL, INTENT(IN):: vcov(:, :, :) ! (iim + 1, jjm, llm) ! vent covariant
30        REAL, INTENT(IN):: teta(ip1jmp1, llm)
31        REAL, INTENT (IN):: ps(ip1jmp1)
32        real, intent(out):: masse(ip1jmp1, llm)
33        REAL, INTENT (IN):: pk(iip1, jjp1, llm)
34        REAL, INTENT (IN):: phis(ip1jmp1)
35        REAL, INTENT (IN):: phi(iim + 1, jjm + 1, llm)
36        REAL, INTENT(out):: w(:, :, :) ! (iim + 1, jjm + 1, llm)
37        REAL, intent(out):: pbaru(ip1jmp1, llm), pbarv((iim + 1) * jjm, llm)
38    
39        ! Local:
40        REAL vcont((iim + 1) * jjm, llm), ucont(ip1jmp1, llm)
41        REAL p(ip1jmp1, llmp1)
42        REAL massebx(ip1jmp1, llm), masseby((iim + 1) * jjm, llm)
43        REAL vorpot(iim + 1, jjm, llm)
44        real ecin(iim + 1, jjm + 1, llm), convm(ip1jmp1, llm)
45        REAL massebxy(iim + 1, jjm, llm), dp(ip1jmp1)
46        INTEGER l
47    
48        !-----------------------------------------------------------------------
49    
50        PRINT *, 'Call sequence information: caldyn0'
51    
52        CALL covcont(llm, ucov, vcov, ucont, vcont)
53        forall (l = 1: llm + 1) p(:, l) = ap(l) + bp(l) * ps
54        CALL massdair(p, masse)
55        CALL massbar(masse, massebx, masseby)
56        CALL massbarxy(masse, massebxy)
57        CALL flumass(massebx, masseby, vcont, ucont, pbaru, pbarv)
58        CALL convmas(pbaru, pbarv, convm)
59        dp = convm(:, 1) / airesurg
60        CALL vitvert(convm, w)
61        CALL tourpot(vcov, ucov, massebxy, vorpot)
62        CALL enercin(vcov, ucov, vcont, ucont, ecin)
63        CALL sortvarc(ucov, teta, ps, masse, pk, phis, vorpot, phi, &
64             bernoui(phi, ecin), dp, resetvarc = .true.)
65    
66      END SUBROUTINE caldyn0
67    
68    end module caldyn0_m

Legend:
Removed from v.4  
changed lines
  Added in v.134

  ViewVC Help
Powered by ViewVC 1.1.21