My Project
Main Page
Data Types List
Files
File List
File Members
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
libf
dyn3dpar
test_period.F
Generated on Fri Jun 28 2013 15:58:21 for My Project by
1.8.1.2