/[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 3 by guez, Wed Feb 27 13:16:39 2008 UTC trunk/Sources/dyn3d/caldyn0.f revision 252 by guez, Mon Jan 22 15:02:56 2018 UTC
# Line 1  Line 1 
1  !  module caldyn0_m
 ! $Header: /home/cvsroot/LMDZ4/libf/dyn3d/caldyn0.F,v 1.1.1.1 2004/05/19 12:53:07 lmdzadmin Exp $  
 !  
       SUBROUTINE caldyn0  
      $ (itau,ucov,vcov,teta,ps,masse,pk,phis ,  
      $  phi,w,pbaru,pbarv,time )  
   
       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, pk, phis, phi)
8    
9        ! From dyn3d/caldyn0.F, version 1.1.1.1, 2004/05/19 12:53:07
10        ! Authors:  P. Le Van, F. Forget
11        ! Objet : calcul des tendances dynamiques
12    
13        use bernoui_m, only: bernoui
14        USE comgeom, ONLY: airesurg_2d
15        use convmas_m, only: convmas
16        use covcont_m, only: covcont
17        USE dimens_m, ONLY: iim, jjm, llm
18        USE disvert_m, ONLY: ap, bp
19        use enercin_m, only: enercin
20        use flumass_m, only: flumass
21        use massbar_m, only: massbar
22        use massbarxy_m, only: massbarxy
23        use massdair_m, only: massdair
24        USE paramet_m, ONLY: iip1, ip1jmp1, jjp1, llmp1
25        use sortvarc_m, only: sortvarc
26        use tourpot_m, only: tourpot
27        use vitvert_m, only: vitvert
28    
29        REAL, INTENT(IN):: ucov(:, :, :) ! (iim + 1, jjm + 1, llm) vent covariant
30        REAL, INTENT(IN):: vcov(:, :, :) ! (iim + 1, jjm, llm) ! vent covariant
31        REAL, INTENT(IN):: teta(ip1jmp1, llm)
32        REAL, INTENT (IN):: ps(ip1jmp1)
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    
37        ! Local:
38        real masse(ip1jmp1, llm)
39        REAL w(iim + 1, jjm + 1, llm)
40        REAL pbaru(ip1jmp1, llm), pbarv((iim + 1) * jjm, llm)
41        REAL vcont((iim + 1) * jjm, llm), ucont(ip1jmp1, llm)
42        REAL p(ip1jmp1, llmp1)
43        REAL massebx(ip1jmp1, llm), masseby((iim + 1) * jjm, llm)
44        REAL vorpot(iim + 1, jjm, llm)
45        real ecin(iim + 1, jjm + 1, llm), convm(iim + 1, jjm + 1, llm)
46        REAL massebxy(iim + 1, jjm, llm), dp(iim + 1, jjm + 1)
47        INTEGER l
48    
49        !-----------------------------------------------------------------------
50    
51        PRINT *, 'Call sequence information: caldyn0'
52    
53        CALL covcont(llm, ucov, vcov, ucont, vcont)
54        forall (l = 1: llm + 1) p(:, l) = ap(l) + bp(l) * ps
55        CALL massdair(p, masse)
56        CALL massbar(masse, massebx, masseby)
57        CALL massbarxy(masse, massebxy)
58        CALL flumass(massebx, masseby, vcont, ucont, pbaru, pbarv)
59        CALL convmas(pbaru, pbarv, convm)
60        dp = convm(:, :, 1) / airesurg_2d
61        w = vitvert(convm)
62        CALL tourpot(vcov, ucov, massebxy, vorpot)
63        CALL enercin(vcov, ucov, vcont, ucont, ecin)
64        CALL sortvarc(ucov, teta, ps, masse, pk, phis, vorpot, phi, &
65             bernoui(phi, ecin), dp, resetvarc = .true.)
66    
67      END SUBROUTINE caldyn0
68    
69    end module caldyn0_m

Legend:
Removed from v.3  
changed lines
  Added in v.252

  ViewVC Help
Powered by ViewVC 1.1.21