My Project
 All Classes Files Functions Variables Macros
test_period.F
Go to the documentation of this file.
1 !
2 ! $Header$
3 !
4  SUBROUTINE test_period ( ucov, vcov, teta, q, p, phis )
5  USE infotrac, ONLY : nqtot
6 c
7 c Auteur : P. Le Van
8 c ---------
9 c .... Cette routine teste la periodicite en longitude des champs ucov,
10 c teta, q , p et phis ..........
11 c
12 c IMPLICIT NONE
13 c
14 #include "dimensions.h"
15 #include "paramet.h"
16 c
17 c ...... Arguments ......
18 c
19  REAL ucov(ip1jmp1,llm), vcov(ip1jm,llm), teta(ip1jmp1,llm) ,
20  , q(ip1jmp1,llm,nqtot), p(ip1jmp1,llmp1), phis(ip1jmp1)
21 c
22 c ..... Variables locales .....
23 c
24  INTEGER ij,l,nq
25 c
26  DO l = 1, llm
27  DO ij = 1, ip1jmp1, iip1
28  IF( ucov(ij,l).NE.ucov(ij+iim,l) ) THEN
29  print *,'STOP dans test_period car --- UCOV --- n est pas',
30  , ' periodique en longitude ! '
31  print *,' l, ij = ', l, ij, ij+iim
32  stop
33  ENDIF
34  IF( teta(ij,l).NE.teta(ij+iim,l) ) THEN
35  print *,'STOP dans test_period car --- TETA --- n est pas',
36  , ' periodique en longitude ! '
37  print *,' l, ij = ', l, ij, ij+iim
38  , , teta(ij,l), teta(ij+iim,l)
39  stop
40  ENDIF
41  ENDDO
42 
43  do ij=1,iim
44  if (teta(ij,l).ne.teta(1,l)
45  s .or.teta(ip1jm+ij,l).ne.teta(ip1jm+1,l) ) then
46  print *,'STOP dans test_period car --- TETA --- n est pas',
47  , ' constant aux poles ! '
48  print*,'teta(',1 ,',',l,')=',teta(1 ,l)
49  print*,'teta(',ij,',',l,')=',teta(ij,l)
50  print*,'teta(',ip1jm+1 ,',',l,')=',teta(ip1jm+1 ,l)
51  print*,'teta(',ip1jm+ij,',',l,')=',teta(ip1jm+ij,l)
52  stop
53  endif
54  enddo
55  ENDDO
56 
57 c
58  DO l = 1, llm
59  DO ij = 1, ip1jm, iip1
60  IF( vcov(ij,l).NE.vcov(ij+iim,l) ) THEN
61  print *,'STOP dans test_period car --- VCOV --- n est pas',
62  , ' periodique en longitude !'
63  print *,' l, ij = ', l, ij, ij+iim,vcov(ij+iim,l),vcov(ij,l)
64  vcov(ij+iim,l)=vcov(ij,l)
65 c STOP
66  ENDIF
67  ENDDO
68  ENDDO
69 
70 c
71  DO nq =1, nqtot
72  DO l =1, llm
73  DO ij = 1, ip1jmp1, iip1
74  IF( q(ij,l,nq).NE.q(ij+iim,l,nq) ) THEN
75  print *,'STOP dans test_period car --- Q --- n est pas ',
76  , 'periodique en longitude !'
77  print *,' nq , l, ij = ', nq, l, ij, ij+iim
78  stop
79  ENDIF
80  ENDDO
81  ENDDO
82  ENDDO
83 c
84  DO l = 1, llm
85  DO ij = 1, ip1jmp1, iip1
86  IF( p(ij,l).NE.p(ij+iim,l) ) THEN
87  print *,'STOP dans test_period car --- P --- n est pas',
88  , ' periodique en longitude !'
89  print *,' l ij = ',l, ij, ij+iim
90  stop
91  ENDIF
92  IF( phis(ij).NE.phis(ij+iim) ) THEN
93  print *,'STOP dans test_period car --- PHIS --- n est pas',
94  , ' periodique en longitude ! l, IJ = ', l, ij,ij+iim
95  print *,' ij = ', ij, ij+iim
96  stop
97  ENDIF
98  ENDDO
99  do ij=1,iim
100  if (p(ij,l).ne.p(1,l)
101  s .or.p(ip1jm+ij,l).ne.p(ip1jm+1,l) ) then
102  print *,'STOP dans test_period car --- P --- n est pas',
103  , ' constant aux poles ! '
104  print*,'p(',1 ,',',l,')=',p(1 ,l)
105  print*,'p(',ij,',',l,')=',p(ij,l)
106  print*,'p(',ip1jm+1 ,',',l,')=',p(ip1jm+1 ,l)
107  print*,'p(',ip1jm+ij,',',l,')=',p(ip1jm+ij,l)
108  stop
109  endif
110  enddo
111  ENDDO
112 c
113 c
114  RETURN
115  END