Changeset 5103 for LMDZ6/branches/Amaury_dev/libf/dyn3d/dteta1.F90
- Timestamp:
- Jul 23, 2024, 3:29:36 PM (8 weeks ago)
- File:
-
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/Amaury_dev/libf/dyn3d/dteta1.F90
r5102 r5103 1 2 1 ! $Header$ 3 2 4 SUBROUTINE dteta1 (teta, pbaru, pbarv, dteta)5 3 SUBROUTINE dteta1 (teta, pbaru, pbarv, dteta) 4 IMPLICIT NONE 6 5 7 c======================================================================= 8 c 9 c Auteur: P. Le Van 10 c ------- 11 c Modif F.Forget 03/94 (on retire q et dq pour construire dteta1) 12 c 13 c ******************************************************************** 14 c ... calcul du terme de convergence horizontale du flux d'enthalpie 15 c potentielle ...... 16 c ******************************************************************** 17 c .. teta,pbaru et pbarv sont des arguments d'entree pour le s-pg .... 18 c dteta sont des arguments de sortie pour le s-pg .... 19 c 20 c======================================================================= 6 !======================================================================= 7 ! 8 ! Auteur: P. Le Van 9 ! ------- 10 ! Modif F.Forget 03/94 (on retire q et dq pour construire dteta1) 11 ! 12 ! ******************************************************************** 13 ! ... calcul du terme de convergence horizontale du flux d'enthalpie 14 ! potentielle ...... 15 ! ******************************************************************** 16 ! .. teta,pbaru et pbarv sont des arguments d'entree pour le s-pg .... 17 ! dteta sont des arguments de sortie pour le s-pg .... 18 ! 19 !======================================================================= 20 21 include "dimensions.h" 22 include "paramet.h" 23 24 REAL :: teta(ip1jmp1, llm), pbaru(ip1jmp1, llm), pbarv(ip1jm, llm) 25 REAL :: dteta(ip1jmp1, llm) 26 INTEGER :: l, ij 27 28 REAL :: hbyv(ip1jm, llm), hbxu(ip1jmp1, llm) 29 30 ! 31 32 DO l = 1, llm 33 34 DO ij = iip2, ip1jm - 1 35 hbxu(ij, l) = pbaru(ij, l) * 0.5 * (teta(ij, l) + teta(ij + 1, l)) 36 END DO 37 38 ! .... correction pour hbxu(iip1,j,l) ..... 39 ! .... hbxu(iip1,j,l)= hbxu(1,j,l) .... 40 41 !DIR$ IVDEP 42 DO ij = iip1 + iip1, ip1jm, iip1 43 hbxu(ij, l) = hbxu(ij - iim, l) 44 END DO 45 46 DO ij = 1, ip1jm 47 hbyv(ij, l) = pbarv(ij, l) * 0.5 * (teta(ij, l) + teta(ij + iip1, l)) 48 END DO 49 50 END DO 51 52 CALL convflu (hbxu, hbyv, llm, dteta) 21 53 22 54 23 include "dimensions.h" 24 include "paramet.h" 55 ! stockage dans dh de la convergence horizont. filtree' du flux 56 ! .... ........... 57 ! d'enthalpie potentielle . 25 58 26 REAL teta( ip1jmp1,llm ),pbaru( ip1jmp1,llm ),pbarv( ip1jm,llm) 27 REAL dteta( ip1jmp1,llm ) 28 INTEGER l,ij 59 CALL filtreg(dteta, jjp1, llm, 2, 2, .TRUE., 1) 29 60 30 REAL hbyv( ip1jm,llm ), hbxu( ip1jmp1,llm ) 31 32 c 33 34 DO l = 1,llm 35 36 DO ij = iip2, ip1jm - 1 37 hbxu(ij,l) = pbaru(ij,l) * 0.5 * ( teta(ij,l) + teta(ij+1,l) ) 38 END DO 39 40 c .... correction pour hbxu(iip1,j,l) ..... 41 c .... hbxu(iip1,j,l)= hbxu(1,j,l) .... 42 43 CDIR$ IVDEP 44 DO ij = iip1+ iip1, ip1jm, iip1 45 hbxu( ij, l ) = hbxu( ij - iim, l ) 46 END DO 47 48 49 DO ij = 1,ip1jm 50 hbyv(ij,l)= pbarv(ij, l)* 0.5 * ( teta(ij, l)+ teta(ij +iip1,l) ) 51 END DO 52 53 END DO 54 55 56 CALL convflu ( hbxu, hbyv, llm, dteta ) 57 58 59 c stockage dans dh de la convergence horizont. filtree' du flux 60 c .... ........... 61 c d'enthalpie potentielle . 62 63 CALL filtreg( dteta, jjp1, llm, 2, 2, .true., 1) 64 65 c 66 RETURN 67 END 61 ! 62 RETURN 63 END SUBROUTINE dteta1
Note: See TracChangeset
for help on using the changeset viewer.