source: LMDZ4/branches/LMDZ4-dev-20091210/libf/dyn3dpar/test_period.F @ 1671

Last change on this file since 1671 was 1114, checked in by jghattas, 16 years ago

Creation du module infotrac:

  • contient les variables de advtrac.h
  • contient la subroutine iniadvtrac renommer en infotrac_init
  • le nombre des traceurs est lu dans tracer.def en dynamique (ou par default ou recu par INCA)
  • ce module est utilise dans la dynamique et la physique
  • contient aussi la variable nbtr qui avant etait stockee dans dimphy

Le fichier advtrac.h n'existe plus.
La compilation ne prend plus en compte le nombre de traceur.

/JG

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 3.5 KB
Line 
1!
2! $Header$
3!
4      SUBROUTINE test_period ( ucov, vcov, teta, q, p, phis )
5      USE infotrac, ONLY : nqtot
6c
7c     Auteur : P. Le Van 
8c    ---------
9c  ....  Cette routine teste la periodicite en longitude des champs   ucov,
10c                           teta, q , p et phis                 ..........
11c
12c     IMPLICIT NONE
13c
14#include "dimensions.h"
15#include "paramet.h"
16c
17c    ......  Arguments   ......
18c
19      REAL ucov(ip1jmp1,llm), vcov(ip1jm,llm), teta(ip1jmp1,llm) ,
20     ,      q(ip1jmp1,llm,nqtot), p(ip1jmp1,llmp1), phis(ip1jmp1)
21c
22c   .....  Variables  locales  .....
23c
24      INTEGER ij,l,nq
25c
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
57c
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)
65c         STOP
66          ENDIF
67         ENDDO
68      ENDDO
69     
70c
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
83c
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
112c
113c
114         RETURN
115         END
Note: See TracBrowser for help on using the repository browser.