Changeset 5119 for LMDZ6/branches/Amaury_dev/libf/dyn3d_common/gradiv.f90
- Timestamp:
- Jul 24, 2024, 6:46:45 PM (2 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/Amaury_dev/libf/dyn3d_common/gradiv.f90
r5106 r5119 1 2 1 ! $Header$ 3 2 4 SUBROUTINE gradiv(klevel, xcov, ycov, ld, gdx, gdy 3 SUBROUTINE gradiv(klevel, xcov, ycov, ld, gdx, gdy) 5 4 ! 6 5 ! Auteur : P. Le Van … … 18 17 ! 19 18 USE lmdz_filtreg, ONLY: filtreg 19 USE lmdz_ssum_scopy, ONLY: scopy 20 20 21 IMPLICIT NONE 21 22 ! … … 26 27 INTEGER :: klevel 27 28 ! 28 REAL :: xcov( ip1jmp1,klevel ), ycov( ip1jm,klevel)29 REAL :: gdx( ip1jmp1,klevel ), gdy( ip1jm,klevel)29 REAL :: xcov(ip1jmp1, klevel), ycov(ip1jm, klevel) 30 REAL :: gdx(ip1jmp1, klevel), gdy(ip1jm, klevel) 30 31 31 REAL :: div(ip1jmp1, llm)32 REAL :: div(ip1jmp1, llm) 32 33 33 INTEGER :: l, ij,iter,ld34 INTEGER :: l, ij, iter, ld 34 35 ! 35 36 ! 36 37 ! 37 CALL SCOPY( ip1jmp1*klevel,xcov,1,gdx,1)38 CALL SCOPY( ip1jm*klevel, ycov,1,gdy,1)38 CALL SCOPY(ip1jmp1 * klevel, xcov, 1, gdx, 1) 39 CALL SCOPY(ip1jm * klevel, ycov, 1, gdy, 1) 39 40 ! 40 DO iter = 1, ld41 !42 CALL diverg( klevel, gdx , gdy, div)43 CALL filtreg( div, jjp1, klevel, 2,1, .TRUE.,2)44 CALL grad( klevel, div, gdx, gdy)45 !46 DO l = 1, klevel47 DO ij = 1, ip1jmp148 gdx( ij,l ) = - gdx( ij,l) * cdivu49 END DO50 DO ij = 1, ip1jm51 gdy( ij,l ) = - gdy( ij,l) * cdivu52 END DO53 END DO54 !41 DO iter = 1, ld 42 ! 43 CALL diverg(klevel, gdx, gdy, div) 44 CALL filtreg(div, jjp1, klevel, 2, 1, .TRUE., 2) 45 CALL grad(klevel, div, gdx, gdy) 46 ! 47 DO l = 1, klevel 48 DO ij = 1, ip1jmp1 49 gdx(ij, l) = - gdx(ij, l) * cdivu 50 END DO 51 DO ij = 1, ip1jm 52 gdy(ij, l) = - gdy(ij, l) * cdivu 53 END DO 54 END DO 55 ! 55 56 END DO 56 57 RETURN
Note: See TracChangeset
for help on using the changeset viewer.