
c
c
c     ##################################################################
c     ##################################################################
c     ######                                                      ######
c     ######                SUBROUTINE CHECKS                     ######
c     ######                                                      ######
c     ######                Copyright (c) 1992                    ######
c     ######  Center for the Analysis and Prediction of Storms    ######
c     ######    University of Oklahoma.  All rights reserved.     ######
c     ######                                                      ######
c     ##################################################################
c     ##################################################################
c
      SUBROUTINE CHECKS(s, nx,ny,nz, ch, mode, tem1)
c
c#######################################################################
c
c     PURPOSE:
c
c     Print the difference in the values of a field defined at a scalar 
c     point in the left and right half of the model domain to check the 
c     symmetry along the central line.
c
c#######################################################################
c
c     AUTHOR: Ming Xue
c     11/20/91.    
c
c     MODIFICATION HISTORY:
c
c     5/06/92 (M. Xue)
c     Added full documentation.
C
c#######################################################################
c
c     INPUT :
c
c       a        A array field defined at the scalar point.
c
c       nx       Number of grid points in the x-direction (east/west)
c       ny       Number of grid points in the y-direction (north/south)
c       nz       Number of grid points in the vertical
c
c     OUTPUT:
c
c       None.
c
c     WORK ARRAY:
c
c       tem1     work array.
c
c#######################################################################
c

c
c#######################################################################
c
c     Variable Declarations.
c
c#######################################################################
c
      implicit none 

      integer nx,ny,nz          ! Number of grid points in 3 directions

      real s   (nx,ny,nz)
      character ch*(*)

      real tem1(nx,ny,nz)
      integer i,j,k, mode
c
c#######################################################################
c
c     Routines called:
c
c#######################################################################
c
      external wrigar
c
C@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
C
C     Beginning of executable code...
C
C@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
c
      DO 40 k=1,nz-1
      DO 40 j=1,ny-1
      DO 40 i=1,(nx-1)/2+1
40      tem1(i,j,k)=s( nx-1-i+1,j,k) - s(1+i-1,j,k) 

      j = (ny-1)/2+1

      CALL wrigar(tem1,1,NX,1,NY,1,Nz,1,(nx-1)/2,j,j,1,nz-1,ch,0.0,2)

      RETURN
      END

c
c
c     ##################################################################
c     ##################################################################
c     ######                                                      ######
c     ######                SUBROUTINE CHECKU                     ######
c     ######                                                      ######
c     ######                Copyright (c) 1992                    ######
c     ######  Center for the Analysis and Prediction of Storms    ######
c     ######    University of Oklahoma.  All rights reserved.     ######
c     ######                                                      ######
c     ##################################################################
c     ##################################################################
c
      SUBROUTINE CHECKU(u, nx,ny,nz, ch, mode, tem1)
c
c#######################################################################
c
c     PURPOSE:
c
c     Print the difference in the values of a field defined at a u-point
c     in the left and right half of the model domain to check the 
c     symmetry along the central line.
c
c#######################################################################
c
c     AUTHOR: Ming Xue
c     11/20/91
c
c     MODIFICATION HISTORY:
c
c     5/06/92 (M. Xue)
c     Added full documentation.
C
c#######################################################################
c
c     INPUT :
c
c       u        An array field defined at the u grid point.
c
c       nx       Number of grid points in the x-direction (east/west)
c       ny       Number of grid points in the y-direction (north/south)
c       nz       Number of grid points in the vertical
c
c     OUTPUT:
c
c       None.
c
c     WORK ARRAY:
c
c       tem1     work array.
c
c#######################################################################
c

c
c#######################################################################
c
c     Variable Declarations.
c
c#######################################################################
c
      implicit none 

      integer nx,ny,nz          ! Number of grid points in 3 directions

      real u   (nx,ny,nz)
      character ch*(*)

      real tem1(nx,ny,nz)
      integer i,j,k, mode
c
c#######################################################################
c
c     Routines called:
c
c#######################################################################
c
      external wrigar
c
C@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
C
C     Beginning of executable code...
C
C@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
c

      DO 10 k=1,nz-1
      DO 10 j=1,ny-1
      DO 12 i=1,(nx-1)/2+1
12      tem1(i,j,k)=u( nx -(i-1), j,k) + u(1+(i-1), j,k)    
10    CONTINUE      

      j = (ny-1)/2+1

      CALL wrigar(tem1,1,NX,1,NY,1,Nz,1,(nx-1)/2+1,j,j,1,nz-1,ch,.0,2)


      RETURN
      END 

c
c
c     ##################################################################
c     ##################################################################
c     ######                                                      ######
c     ######                SUBROUTINE CHECKV                     ######
c     ######                                                      ######
c     ######                Copyright (c) 1992                    ######
c     ######  Center for the Analysis and Prediction of Storms    ######
c     ######    University of Oklahoma.  All rights reserved.     ######
c     ######                                                      ######
c     ##################################################################
c     ##################################################################
c
      SUBROUTINE CHECKV(v, nx,ny,nz, ch, mode, tem1)
c
c#######################################################################
c
c     PURPOSE:
c
c     Print the difference in the values of a field defined at a v-point
c     in the left and right half of the model domain to check the 
c     symmetry along the central line.
c
c#######################################################################
c
c     AUTHOR: Ming Xue
c     11/20/91.    
c
c     MODIFICATION HISTORY:
c
c     5/06/92 (M. Xue)
c     Added full documentation.
C
c#######################################################################
c
c     INPUT :
c
c       v        An array field defined at the v grid point.
c
c       nx       Number of grid points in the x-direction (east/west)
c       ny       Number of grid points in the y-direction (north/south)
c       nz       Number of grid points in the vertical
c
c     OUTPUT:
c
c       None.
c
c     WORK ARRAY:
c
c       tem1     work array.
c
c#######################################################################
c

c
c#######################################################################
c
c     Variable Declarations.
c
c#######################################################################
c
      implicit none 

      integer nx,ny,nz          ! Number of grid points in 3 directions

      real v   (nx,ny,nz)
      character ch*(*)

      real tem1(nx,ny,nz)
      integer i,j,k, mode
c
c#######################################################################
c
c     Routines called:
c
c#######################################################################
c
      external wrigar
c
C@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
C
C     Beginning of executable code...
C
C@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
c
      DO 20 k=1,nz-1
      DO 20 j=1,ny
      DO 20 i=1,(nx-1)/2+1
20      tem1(i,j,k)=v( nx-1-i+1,j,k) - v(1+i-1,j,k) 

      j = (ny-1)/2+1

      CALL wrigar(tem1,1,NX,1,NY,1,Nz,1,(nx-1)/2,j,j,1,nz-1,ch,0.0,2)

      RETURN
      END

c
c
c     ##################################################################
c     ##################################################################
c     ######                                                      ######
c     ######                SUBROUTINE CHECKW                     ######
c     ######                                                      ######
c     ######                Copyright (c) 1992                    ######
c     ######  Center for the Analysis and Prediction of Storms    ######
c     ######    University of Oklahoma.  All rights reserved.     ######
c     ######                                                      ######
c     ##################################################################
c     ##################################################################
c
      SUBROUTINE CHECKW(w, nx,ny,nz, ch, mode, tem1)
c
c#######################################################################
c
c     PURPOSE:
c
c     Print the difference in the values of a field defined at a w-point
c     in the left and right half of the model domain to check the 
c     symmetry along the central line.
c
c#######################################################################
c
c     AUTHOR: Ming Xue
c     11/20/91.    
c
c     MODIFICATION HISTORY:
c
c     5/06/92 (M. Xue)
c     Added full documentation.
C
c#######################################################################
c
c     INPUT :
c
c       w        An array field defined at the w grid point.
c
c       nx       Number of grid points in the x-direction (east/west)
c       ny       Number of grid points in the y-direction (north/south)
c       nz       Number of grid points in the vertical
c
c     OUTPUT:
c
c       None.
c
c     WORK ARRAY:
c
c       tem1     work array.
c
c#######################################################################
c

c
c#######################################################################
c
c     Variable Declarations.
c
c#######################################################################
c
      implicit none 

      integer nx,ny,nz          ! Number of grid points in 3 directions

      real w   (nx,ny,nz)
      character ch*(*)

      real tem1(nx,ny,nz)
      integer i,j,k, mode
c
c#######################################################################
c
c     Routines called:
c
c#######################################################################
c
      external wrigar
c
C@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
C
C     Beginning of executable code...
C
C@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
c

      DO 30 k=1,nz
      DO 30 j=1,ny-1
      DO 30 i=1,(nx-1)/2+1
30      tem1(i,j,k)=w( nx-1-i+1,j,k) - w(1+i-1,j,k) 

      j = (ny-1)/2+1

      CALL wrigar(tem1,1,NX,1,NY,1,Nz,1,(nx-1)/2,j,j,1,nz,ch,.0,2)

      RETURN
      END
