/[lmdze]/trunk/dyn3d/dteta1.f90
ViewVC logotype

Contents of /trunk/dyn3d/dteta1.f90

Parent Directory Parent Directory | Revision Log Revision Log


Revision 328 - (show annotations)
Thu Jun 13 14:40:06 2019 UTC (4 years, 11 months ago) by guez
File size: 1357 byte(s)
Change all `.f` suffixes to `.f90`. (The opposite was done in revision
82.)  Because of change of philosopy in GNUmakefile: we already had a
rewritten rule for `.f`, so it does not make the makefile longer to
replace it by a rule for `.f90`. And it spares us options of
makedepf90 and of the compiler. Also we prepare the way for a simpler
`CMakeLists.txt`.

1 module dteta1_m
2
3 IMPLICIT NONE
4
5 contains
6
7 SUBROUTINE dteta1(teta, pbaru, pbarv, dteta)
8
9 ! From LMDZ4/libf/dyn3d/dteta1.F, version 1.1.1.1, 2004/05/19 12:53:06
10 ! Authors: P. Le Van, F. Forget
11
12 ! Calcul du terme de convergence horizontale du flux d'enthalpie
13 ! potentielle.
14
15 USE dimensions, ONLY: iim, jjm, llm
16 USE paramet_m, ONLY: iip1, iip2, ip1jm, ip1jmp1
17 USE filtreg_scal_m, ONLY: filtreg_scal
18
19 REAL, intent(in):: teta(ip1jmp1, llm)
20 REAL, intent(in):: pbaru(ip1jmp1, llm), pbarv(ip1jm, llm)
21 REAL, intent(out):: dteta(iim + 1, jjm + 1, llm)
22
23 ! Local:
24 INTEGER l, ij
25 REAL hbyv(ip1jm, llm), hbxu(ip1jmp1, llm)
26
27 !----------------------------------------------------------------
28
29 DO l = 1, llm
30 DO ij = iip2, ip1jm - 1
31 hbxu(ij, l) = pbaru(ij, l) * 0.5 * (teta(ij, l) + teta(ij + 1, l))
32 end DO
33
34 DO ij = iip1+ iip1, ip1jm, iip1
35 hbxu(ij, l) = hbxu(ij - iim, l)
36 end DO
37
38 DO ij = 1, ip1jm
39 hbyv(ij, l)= pbarv(ij, l) * 0.5 * (teta(ij, l) + teta(ij + iip1, l))
40 end DO
41 end DO
42
43 CALL convflu(hbxu, hbyv, llm, dteta)
44
45 ! stockage dans dh de la convergence horizontale filtrée du flux
46 ! d'enthalpie potentielle
47 CALL filtreg_scal(dteta, direct = .true., intensive = .false.)
48
49 END SUBROUTINE dteta1
50
51 end module dteta1_m

  ViewVC Help
Powered by ViewVC 1.1.21