source: LMDZ6/branches/Amaury_dev/libf/dyn3d/dudv2.F90 @ 5105

Last change on this file since 5105 was 5105, checked in by abarral, 8 weeks ago

Replace 1DUTILS.h by module lmdz_1dutils.f90
Replace 1DConv.h by module lmdz_old_1dconv.f90 (it's only used by old_* files)
Convert *.F to *.f90
Fix gradsdef.h formatting
Remove unnecessary "RETURN" at the end of functions/subroutines

  • Property copyright set to
    Name of program: LMDZ
    Creation date: 1984
    Version: LMDZ5
    License: CeCILL version 2
    Holder: Laboratoire de m\'et\'eorologie dynamique, CNRS, UMR 8539
    See the license file in the root directory
  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 1.7 KB
Line 
1! $Header$
2
3SUBROUTINE dudv2 (teta, pkf, bern, du, dv)
4
5  IMPLICIT NONE
6  !
7  !=======================================================================
8  !
9  !   Auteur:  P. Le Van
10  !   -------
11  !
12  !   Objet:
13  !   ------
14  !
15  !   *****************************************************************
16  !   ..... calcul du terme de pression (gradient de p/densite )   et
17  !      du terme de ( -gradient de la fonction de Bernouilli ) ...
18  !   *****************************************************************
19  !      Ces termes sont ajoutes a  d(ucov)/dt et a d(vcov)/dt  ..
20  !
21  !
22  !    teta , pkf, bern  sont des arguments d'entree  pour le s-pg  ....
23  !    du et dv          sont des arguments de sortie pour le s-pg  ....
24  !
25  !=======================================================================
26  !
27  include "dimensions.h"
28  include "paramet.h"
29
30  REAL :: teta(ip1jmp1, llm), pkf(ip1jmp1, llm), bern(ip1jmp1, llm), &
31          du(ip1jmp1, llm), dv(ip1jm, llm)
32  INTEGER :: l, ij
33  !
34  !
35  DO l = 1, llm
36    !
37    DO ij = iip2, ip1jm - 1
38      du(ij, l) = du(ij, l) + 0.5 * (teta(ij, l) + teta(ij + 1, l)) * &
39              (pkf(ij, l) - pkf(ij + 1, l)) + bern(ij, l) - bern(ij + 1, l)
40    END DO
41    !
42    !
43    !    .....  correction  pour du(iip1,j,l),  j=2,jjm   ......
44    !    ...          du(iip1,j,l) = du(1,j,l)                 ...
45    !
46    !DIR$ IVDEP
47    DO ij = iip1 + iip1, ip1jm, iip1
48      du(ij, l) = du(ij - iim, l)
49    END DO
50    !
51    !
52    DO ij = 1, ip1jm
53      dv(ij, l) = dv(ij, l) + 0.5 * (teta(ij, l) + teta(ij + iip1, l)) * &
54              (pkf(ij + iip1, l) - pkf(ij, l)) &
55              + bern(ij + iip1, l) - bern(ij, l)
56    END DO
57    !
58  END DO
59  !
60
61END SUBROUTINE dudv2
Note: See TracBrowser for help on using the repository browser.