source: LMDZ6/branches/Amaury_dev/libf/dyn3d_common/test_period.f90 @ 5117

Last change on this file since 5117 was 5117, checked in by abarral, 2 months ago

rename modules properly lmdz_*
move some unused files to obsolete/
(lint) uppercase fortran keywords

  • Property copyright set to
    Name of program: LMDZ
    Creation date: 1984
    Version: LMDZ5
    License: CeCILL version 2
    Holder: Laboratoire de m\'et\'eorologie dynamique, CNRS, UMR 8539
    See the license file in the root directory
  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 3.2 KB
Line 
1
2! $Header$
3
4SUBROUTINE 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)/=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)/=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)/=teta(1,l) &
46            .OR.teta(ip1jm+ij,l)/=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)/=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)/=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  !
85   DO l = 1, llm
86     DO ij = 1, ip1jmp1, iip1
87      IF( p(ij,l)/=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)/=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)/=p(1,l) &
102            .OR.p(ip1jm+ij,l)/=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
116END SUBROUTINE test_period
Note: See TracBrowser for help on using the repository browser.