source: LMDZ6/trunk/libf/dyn3d_common/caldyn0.f90 @ 5450

Last change on this file since 5450 was 5285, checked in by abarral, 2 months ago

As discussed internally, remove generic ONLY: ... for new _mod_h modules

File size: 3.1 KB
RevLine 
[2336]1SUBROUTINE caldyn0(itau,ucov,vcov,teta,ps,masse,pk,phis,phi,w,pbaru,pbarv,time)
[2293]2!
3!-------------------------------------------------------------------------------
4! Author: P. Le Van ; modif. 04/93: F.Forget.
5!-------------------------------------------------------------------------------
6! Purpose: Compute dynamic tendencies.
7!-------------------------------------------------------------------------------
[5281]8  USE comgeom_mod_h
9  USE control_mod, ONLY: resetvarc
[2600]10  USE comvert_mod, ONLY: ap, bp
[5271]11  USE dimensions_mod, ONLY: iim, jjm, llm, ndm
[5285]12USE paramet_mod_h
[5271]13IMPLICIT NONE
14
[5272]15
[2293]16!===============================================================================
17! Arguments:
[2336]18  INTEGER, INTENT(IN)  :: itau                      !--- TIME STEP INDEX
[2293]19  REAL,    INTENT(IN)  :: vcov (ip1jm    ,llm)      !--- V COVARIANT WIND
20  REAL,    INTENT(IN)  :: ucov (ip1jmp1  ,llm)      !--- U COVARIANT WIND
21  REAL,    INTENT(IN)  :: teta (ip1jmp1  ,llm)      !--- POTENTIAL TEMPERATURE
22  REAL,    INTENT(IN)  :: ps   (ip1jmp1)            !--- GROUND PRESSURE
[2336]23  REAL,    INTENT(OUT) :: masse(ip1jmp1  ,llm)      !--- MASS IN EACH CELL
[2293]24  REAL,    INTENT(IN)  :: pk   (iip1,jjp1,llm)      !--- PRESSURE
25  REAL,    INTENT(IN)  :: phis (ip1jmp1)            !--- GROUND GEOPOTENTIAL
26  REAL,    INTENT(IN)  :: phi  (ip1jmp1  ,llm)      !--- 3D GEOPOTENTIAL
27  REAL,    INTENT(OUT) :: w    (ip1jmp1  ,llm)      !--- VERTICAL WIND
[2336]28  REAL,    INTENT(OUT) :: pbaru(ip1jmp1  ,llm)      !--- U MASS FLUX
29  REAL,    INTENT(OUT) :: pbarv(ip1jm    ,llm)      !--- V MASS FLUX
[2293]30  REAL,    INTENT(IN)  :: time                      !--- TIME
31!===============================================================================
32! Local variables:
33  REAL, DIMENSION(ip1jmp1,llmp1) :: p
34  REAL, DIMENSION(ip1jmp1,llm)   :: ucont, massebx, ang, ecin, convm, bern
35  REAL, DIMENSION(ip1jmp1)       :: dp
36  REAL, DIMENSION(ip1jm  ,llm)   :: vcont, masseby, massebxy, vorpot
37  REAL, DIMENSION(ip1jm)         :: psexbarxy
38  INTEGER                        :: ij, l
39!===============================================================================
40  CALL covcont  ( llm    , ucov    , vcov , ucont, vcont        )
41  CALL pression ( ip1jmp1, ap      , bp   ,  ps  , p            )
42  CALL psextbar (   ps   , psexbarxy                            )
43  CALL massdair (    p   , masse                                )
44  CALL massbar  (   masse, massebx , masseby                    )
45  CALL massbarxy(   masse, massebxy                             )
46  CALL flumass  ( massebx, masseby , vcont, ucont ,pbaru, pbarv )
47  CALL convmas  (   pbaru, pbarv   , convm                      )
48  CALL vitvert  ( convm  , w                                    )
49  CALL tourpot  ( vcov   , ucov    , massebxy  , vorpot         )
50  CALL enercin  ( vcov   , ucov    , vcont     , ucont  , ecin  )
51  CALL bernoui  ( ip1jmp1, llm     , phi       , ecin   , bern  )
52  DO l=1,llm; ang(:,l) = ucov(:,l) + constang(:); END DO
53  resetvarc=.true. ! force a recomputation of initial values in sortvarc
54  dp(:)=convm(:,1)/airesurg(:)
55  CALL sortvarc( itau,ucov,teta,ps,masse,pk,phis,vorpot,phi,bern,dp,time,vcov )
56
57END SUBROUTINE caldyn0
Note: See TracBrowser for help on using the repository browser.