Changeset 5119 for LMDZ6/branches/Amaury_dev/libf/dyn3d_common/nxgraro2.f90
- Timestamp:
- Jul 24, 2024, 6:46:45 PM (4 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/Amaury_dev/libf/dyn3d_common/nxgraro2.f90
r5106 r5119 1 2 1 ! $Header$ 3 2 4 SUBROUTINE nxgraro2(klevel,xcov, ycov, lr, grx, gry)3 SUBROUTINE nxgraro2(klevel, xcov, ycov, lr, grx, gry) 5 4 ! 6 5 ! P.Le Van . … … 16 15 ! 17 16 USE lmdz_filtreg, ONLY: filtreg 17 USE lmdz_ssum_scopy, ONLY: scopy 18 18 19 IMPLICIT NONE 19 20 ! … … 25 26 ! 26 27 INTEGER :: klevel 27 REAL :: xcov( ip1jmp1,klevel ), ycov( ip1jm,klevel)28 REAL :: grx( ip1jmp1,klevel ), gry( ip1jm,klevel)28 REAL :: xcov(ip1jmp1, klevel), ycov(ip1jm, klevel) 29 REAL :: grx(ip1jmp1, klevel), gry(ip1jm, klevel) 29 30 ! 30 31 ! ...... variables locales ........ 31 32 ! 32 REAL :: rot(ip1jm, llm), signe, nugradrs33 INTEGER :: l, ij,iter,lr33 REAL :: rot(ip1jm, llm), signe, nugradrs 34 INTEGER :: l, ij, iter, lr 34 35 ! ........................................................ 35 36 ! 36 37 ! 37 38 ! 38 signe 39 signe = (-1.)**lr 39 40 nugradrs = signe * crot 40 41 ! 41 CALL SCOPY ( ip1jmp1* klevel, xcov, 1, grx, 1)42 CALL SCOPY ( ip1jm * klevel, ycov, 1, gry, 1)42 CALL SCOPY (ip1jmp1 * klevel, xcov, 1, grx, 1) 43 CALL SCOPY (ip1jm * klevel, ycov, 1, gry, 1) 43 44 ! 44 CALL rotatf ( klevel, grx, gry, rot)45 CALL rotatf (klevel, grx, gry, rot) 45 46 ! 46 CALL laplacien_rot ( klevel, rot, rot,grx,gry)47 CALL laplacien_rot (klevel, rot, rot, grx, gry) 47 48 48 49 ! 49 50 ! ..... Iteration de l'operateur laplacien_rotgam ..... 50 51 ! 51 DO iter = 1, lr - 252 CALL laplacien_rotgam ( klevel, rot, rot)52 DO iter = 1, lr - 2 53 CALL laplacien_rotgam (klevel, rot, rot) 53 54 ENDDO 54 55 ! 55 56 ! 56 CALL filtreg( rot, jjm, klevel, 2,1, .FALSE.,1)57 CALL nxgrad ( klevel, rot, grx, gry)57 CALL filtreg(rot, jjm, klevel, 2, 1, .FALSE., 1) 58 CALL nxgrad (klevel, rot, grx, gry) 58 59 ! 59 60 DO l = 1, klevel 60 61 gry( ij,l ) = gry( ij,l) * nugradrs62 63 64 grx( ij,l ) = grx( ij,l) * nugradrs65 61 DO ij = 1, ip1jm 62 gry(ij, l) = gry(ij, l) * nugradrs 63 ENDDO 64 DO ij = 1, ip1jmp1 65 grx(ij, l) = grx(ij, l) * nugradrs 66 ENDDO 66 67 ENDDO 67 68 !
Note: See TracChangeset
for help on using the changeset viewer.