Changeset 5246 for LMDZ6/trunk/libf/dyn3d_common/test_period.f90
- Timestamp:
- Oct 21, 2024, 2:58:45 PM (22 hours ago)
- File:
-
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/dyn3d_common/test_period.f90
r5245 r5246 2 2 ! $Header$ 3 3 ! 4 5 c 6 c Auteur : P. Le Van 7 c---------8 c.... Cette routine teste la periodicite en longitude des champs ucov,9 c teta, q , p et phis .......... 10 c 11 12 c 13 cIMPLICIT NONE14 c 15 16 17 c 18 c...... Arguments ......19 c 20 REAL ucov(ip1jmp1,llm), vcov(ip1jm,llm), teta(ip1jmp1,llm) ,21 ,q(ip1jmp1,llm,nqtot), p(ip1jmp1,llmp1), phis(ip1jmp1)22 c 23 c..... Variables locales .....24 c 25 INTEGERij,l,nq26 c 27 28 29 30 PRINT *,'STOP dans test_period car --- UCOV --- n est pas',31 ,' periodique en longitude ! '32 33 34 35 36 PRINT *,'STOP dans test_period car --- TETA --- n est pas',37 ,' periodique en longitude ! '38 PRINT *,' l, ij = ', l, ij, ij+iim39 ,, teta(ij,l), teta(ij+iim,l)40 41 42 4 SUBROUTINE test_period ( ucov, vcov, teta, q, p, phis ) 5 ! 6 ! Auteur : P. Le Van 7 ! --------- 8 ! .... Cette routine teste la periodicite en longitude des champs ucov, 9 ! teta, q , p et phis .......... 10 ! 11 USE infotrac, ONLY : nqtot 12 ! 13 ! IMPLICIT NONE 14 ! 15 INCLUDE "dimensions.h" 16 INCLUDE "paramet.h" 17 ! 18 ! ...... Arguments ...... 19 ! 20 REAL :: ucov(ip1jmp1,llm), vcov(ip1jm,llm), teta(ip1jmp1,llm) , & 21 q(ip1jmp1,llm,nqtot), p(ip1jmp1,llmp1), phis(ip1jmp1) 22 ! 23 ! ..... Variables locales ..... 24 ! 25 INTEGER :: ij,l,nq 26 ! 27 DO l = 1, llm 28 DO ij = 1, ip1jmp1, iip1 29 IF( ucov(ij,l).NE.ucov(ij+iim,l) ) THEN 30 PRINT *,'STOP dans test_period car --- UCOV --- n est pas', & 31 ' periodique en longitude ! ' 32 PRINT *,' l, ij = ', l, ij, ij+iim 33 STOP 34 ENDIF 35 IF( teta(ij,l).NE.teta(ij+iim,l) ) THEN 36 PRINT *,'STOP dans test_period car --- TETA --- n est pas', & 37 ' periodique en longitude ! ' 38 PRINT *,' l, ij = ', l, ij, ij+iim & 39 , teta(ij,l), teta(ij+iim,l) 40 STOP 41 ENDIF 42 ENDDO 43 43 44 do ij=1,iim 45 if (teta(ij,l).ne.teta(1,l) 46 s .or.teta(ip1jm+ij,l).ne.teta(ip1jm+1,l) ) then 47 PRINT *,'STOP dans test_period car --- TETA --- n est pas', 48 , ' constant aux poles ! ' 49 print*,'teta(',1 ,',',l,')=',teta(1 ,l) 50 print*,'teta(',ij,',',l,')=',teta(ij,l) 51 print*,'teta(',ip1jm+1 ,',',l,')=',teta(ip1jm+1 ,l) 52 print*,'teta(',ip1jm+ij,',',l,')=',teta(ip1jm+ij,l) 53 stop 54 endif 55 enddo 44 do ij=1,iim 45 if (teta(ij,l).ne.teta(1,l) & 46 .or.teta(ip1jm+ij,l).ne.teta(ip1jm+1,l) ) then 47 PRINT *,'STOP dans test_period car --- TETA --- n est pas', & 48 ' constant aux poles ! ' 49 print*,'teta(',1 ,',',l,')=',teta(1 ,l) 50 print*,'teta(',ij,',',l,')=',teta(ij,l) 51 print*,'teta(',ip1jm+1 ,',',l,')=',teta(ip1jm+1 ,l) 52 print*,'teta(',ip1jm+ij,',',l,')=',teta(ip1jm+ij,l) 53 stop 54 endif 55 enddo 56 ENDDO 57 58 ! 59 DO l = 1, llm 60 DO ij = 1, ip1jm, iip1 61 IF( vcov(ij,l).NE.vcov(ij+iim,l) ) THEN 62 PRINT *,'STOP dans test_period car --- VCOV --- n est pas', & 63 ' periodique en longitude !' 64 PRINT *,' l, ij = ', l, ij, ij+iim,vcov(ij+iim,l),vcov(ij,l) 65 vcov(ij+iim,l)=vcov(ij,l) 66 ! STOP 67 ENDIF 68 ENDDO 69 ENDDO 70 71 ! 72 DO nq =1, nqtot 73 DO l =1, llm 74 DO ij = 1, ip1jmp1, iip1 75 IF( q(ij,l,nq).NE.q(ij+iim,l,nq) ) THEN 76 PRINT *,'STOP dans test_period car --- Q --- n est pas ', & 77 'periodique en longitude !' 78 PRINT *,' nq , l, ij = ', nq, l, ij, ij+iim 79 STOP 80 ENDIF 56 81 ENDDO 57 58 c 59 DO l = 1, llm 60 DO ij = 1, ip1jm, iip1 61 IF( vcov(ij,l).NE.vcov(ij+iim,l) ) THEN 62 PRINT *,'STOP dans test_period car --- VCOV --- n est pas', 63 , ' periodique en longitude !' 64 PRINT *,' l, ij = ', l, ij, ij+iim,vcov(ij+iim,l),vcov(ij,l) 65 vcov(ij+iim,l)=vcov(ij,l) 66 c STOP 67 ENDIF 68 ENDDO 69 ENDDO 70 71 c 72 DO nq =1, nqtot 73 DO l =1, llm 74 DO ij = 1, ip1jmp1, iip1 75 IF( q(ij,l,nq).NE.q(ij+iim,l,nq) ) THEN 76 PRINT *,'STOP dans test_period car --- Q --- n est pas ', 77 , 'periodique en longitude !' 78 PRINT *,' nq , l, ij = ', nq, l, ij, ij+iim 79 STOP 80 ENDIF 81 ENDDO 82 ENDDO 83 ENDDO 84 c 85 DO l = 1, llm 86 DO ij = 1, ip1jmp1, iip1 87 IF( p(ij,l).NE.p(ij+iim,l) ) THEN 88 PRINT *,'STOP dans test_period car --- P --- n est pas', 89 , ' periodique en longitude !' 90 PRINT *,' l ij = ',l, ij, ij+iim 91 STOP 92 ENDIF 93 IF( phis(ij).NE.phis(ij+iim) ) THEN 94 PRINT *,'STOP dans test_period car --- PHIS --- n est pas', 95 , ' periodique en longitude ! l, IJ = ', l, ij,ij+iim 96 PRINT *,' ij = ', ij, ij+iim 97 STOP 98 ENDIF 99 ENDDO 100 do ij=1,iim 101 if (p(ij,l).ne.p(1,l) 102 s .or.p(ip1jm+ij,l).ne.p(ip1jm+1,l) ) then 103 PRINT *,'STOP dans test_period car --- P --- n est pas', 104 , ' constant aux poles ! ' 105 print*,'p(',1 ,',',l,')=',p(1 ,l) 106 print*,'p(',ij,',',l,')=',p(ij,l) 107 print*,'p(',ip1jm+1 ,',',l,')=',p(ip1jm+1 ,l) 108 print*,'p(',ip1jm+ij,',',l,')=',p(ip1jm+ij,l) 109 stop 110 endif 111 enddo 112 ENDDO 113 c 114 c 115 RETURN 116 END 82 ENDDO 83 ENDDO 84 ! 85 DO l = 1, llm 86 DO ij = 1, ip1jmp1, iip1 87 IF( p(ij,l).NE.p(ij+iim,l) ) THEN 88 PRINT *,'STOP dans test_period car --- P --- n est pas', & 89 ' periodique en longitude !' 90 PRINT *,' l ij = ',l, ij, ij+iim 91 STOP 92 ENDIF 93 IF( phis(ij).NE.phis(ij+iim) ) THEN 94 PRINT *,'STOP dans test_period car --- PHIS --- n est pas', & 95 ' periodique en longitude ! l, IJ = ', l, ij,ij+iim 96 PRINT *,' ij = ', ij, ij+iim 97 STOP 98 ENDIF 99 ENDDO 100 do ij=1,iim 101 if (p(ij,l).ne.p(1,l) & 102 .or.p(ip1jm+ij,l).ne.p(ip1jm+1,l) ) then 103 PRINT *,'STOP dans test_period car --- P --- n est pas', & 104 ' constant aux poles ! ' 105 print*,'p(',1 ,',',l,')=',p(1 ,l) 106 print*,'p(',ij,',',l,')=',p(ij,l) 107 print*,'p(',ip1jm+1 ,',',l,')=',p(ip1jm+1 ,l) 108 print*,'p(',ip1jm+ij,',',l,')=',p(ip1jm+ij,l) 109 stop 110 endif 111 enddo 112 ENDDO 113 ! 114 ! 115 RETURN 116 END SUBROUTINE test_period
Note: See TracChangeset
for help on using the changeset viewer.