[5186] | 1 | MODULE lmdz_dteta1 |
---|
| 2 | IMPLICIT NONE; PRIVATE |
---|
| 3 | PUBLIC dteta1 |
---|
[5099] | 4 | |
---|
[5186] | 5 | CONTAINS |
---|
[524] | 6 | |
---|
[5159] | 7 | |
---|
[5186] | 8 | SUBROUTINE dteta1(teta, pbaru, pbarv, dteta) |
---|
| 9 | USE lmdz_filtreg, ONLY: filtreg |
---|
| 10 | USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm |
---|
| 11 | USE lmdz_paramet |
---|
| 12 | IMPLICIT NONE |
---|
[5159] | 13 | |
---|
[5186] | 14 | !======================================================================= |
---|
[5159] | 15 | |
---|
[5186] | 16 | ! Auteur: P. Le Van |
---|
| 17 | ! ------- |
---|
| 18 | ! Modif F.Forget 03/94 (on retire q et dq pour construire dteta1) |
---|
[524] | 19 | |
---|
[5186] | 20 | ! ******************************************************************** |
---|
| 21 | ! ... calcul du terme de convergence horizontale du flux d'enthalpie |
---|
| 22 | ! potentielle ...... |
---|
| 23 | ! ******************************************************************** |
---|
| 24 | ! .. teta,pbaru et pbarv sont des arguments d'entree pour le s-pg .... |
---|
| 25 | ! dteta sont des arguments de sortie pour le s-pg .... |
---|
[524] | 26 | |
---|
[5186] | 27 | !======================================================================= |
---|
[5159] | 28 | |
---|
[5186] | 29 | REAL :: teta(ip1jmp1, llm), pbaru(ip1jmp1, llm), pbarv(ip1jm, llm) |
---|
| 30 | REAL :: dteta(ip1jmp1, llm) |
---|
| 31 | INTEGER :: l, ij |
---|
[5159] | 32 | |
---|
[5186] | 33 | REAL :: hbyv(ip1jm, llm), hbxu(ip1jmp1, llm) |
---|
[524] | 34 | |
---|
[5186] | 35 | ! |
---|
[524] | 36 | |
---|
[5186] | 37 | DO l = 1, llm |
---|
[524] | 38 | |
---|
[5186] | 39 | DO ij = iip2, ip1jm - 1 |
---|
| 40 | hbxu(ij, l) = pbaru(ij, l) * 0.5 * (teta(ij, l) + teta(ij + 1, l)) |
---|
| 41 | END DO |
---|
[524] | 42 | |
---|
[5186] | 43 | ! .... correction pour hbxu(iip1,j,l) ..... |
---|
| 44 | ! .... hbxu(iip1,j,l)= hbxu(1,j,l) .... |
---|
[524] | 45 | |
---|
[5186] | 46 | !DIR$ IVDEP |
---|
| 47 | DO ij = iip1 + iip1, ip1jm, iip1 |
---|
| 48 | hbxu(ij, l) = hbxu(ij - iim, l) |
---|
| 49 | END DO |
---|
[524] | 50 | |
---|
[5186] | 51 | DO ij = 1, ip1jm |
---|
| 52 | hbyv(ij, l) = pbarv(ij, l) * 0.5 * (teta(ij, l) + teta(ij + iip1, l)) |
---|
| 53 | END DO |
---|
[524] | 54 | |
---|
[5103] | 55 | END DO |
---|
[524] | 56 | |
---|
[5186] | 57 | CALL convflu (hbxu, hbyv, llm, dteta) |
---|
[524] | 58 | |
---|
| 59 | |
---|
[5186] | 60 | ! stockage dans dh de la convergence horizont. filtree' du flux |
---|
| 61 | ! .... ........... |
---|
| 62 | ! d'enthalpie potentielle . |
---|
[524] | 63 | |
---|
[5186] | 64 | CALL filtreg(dteta, jjp1, llm, 2, 2, .TRUE., 1) |
---|
[524] | 65 | |
---|
[5186] | 66 | ! |
---|
[524] | 67 | |
---|
[5186] | 68 | END SUBROUTINE dteta1 |
---|
[5105] | 69 | |
---|
[5186] | 70 | |
---|
| 71 | END MODULE lmdz_dteta1 |
---|