1 |
|
|
! |
2 |
|
|
! $Header$ |
3 |
|
|
! |
4 |
|
|
SUBROUTINE test_period ( ucov, vcov, teta, q, p, phis ) |
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 |
|
|
USE infotrac, ONLY : nqtot |
12 |
|
|
c |
13 |
|
|
c IMPLICIT NONE |
14 |
|
|
c |
15 |
|
|
INCLUDE "dimensions.h" |
16 |
|
|
INCLUDE "paramet.h" |
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 |
|
|
INTEGER ij,l,nq |
26 |
|
|
c |
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 |
|
|
|
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 |
56 |
|
|
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 |