!
!##################################################################
!##################################################################
!###### ######
!###### SUBROUTINE CHECKSX ######
!###### ######
!###### Developed by ######
!###### Center for Analysis and Prediction of Storms ######
!###### University of Oklahoma ######
!###### ######
!##################################################################
!##################################################################
!
SUBROUTINE checksx(s, nx,ny,nz, ch, tem1),1
!
!-----------------------------------------------------------------------
!
! PURPOSE:
!
! Check the west-east symmetry of a field defined at a scalar point
! on the y-z plane containing the maximum magnitude of that field.
!
!-----------------------------------------------------------------------
!
! AUTHOR: Ming Xue & Hao Jin
! 4/20/93.
!
! MODIFICATION HISTORY:
!
!-----------------------------------------------------------------------
!
! INPUT :
!
! s An array field defined at the scalar point.
!
! nx Number of grid points in the x-direction (east/west)
! ny Number of grid points in the y-direction (north/south)
! nz Number of grid points in the vertical
!
! OUTPUT:
!
! None.
!
! WORK ARRAY:
!
! tem1 Temporary work array.
!
!-----------------------------------------------------------------------
!
!
!-----------------------------------------------------------------------
!
! Variable Declarations.
!
!-----------------------------------------------------------------------
!
IMPLICIT NONE
INTEGER :: nx,ny,nz ! Number of grid points in 3 directions
REAL :: s (nx,ny,nz) ! An array field defined at the
! scalar point
CHARACTER (LEN=*) :: ch
REAL :: tem1(nx,ny,nz)
INTEGER :: i,j,k
!
!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
!
! Beginning of executable code...
!
!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
!
DO k=1,nz-1
DO j=1,ny-1
DO i=1,(nx-1)/2+1
tem1(i,j,k)=s( nx-i,j,k) - s(i,j,k)
END DO
END DO
END DO
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 SUBROUTINE checksx
!
!
!##################################################################
!##################################################################
!###### ######
!###### SUBROUTINE CHECKUX ######
!###### ######
!###### Developed by ######
!###### Center for Analysis and Prediction of Storms ######
!###### University of Oklahoma ######
!###### ######
!##################################################################
!##################################################################
!
SUBROUTINE checkux(u, nx,ny,nz, ch, tem1),1
!
!-----------------------------------------------------------------------
!
! PURPOSE:
!
! Check the west-east symmetry of a field defined at a u-point
! on the y-z plane containing the maximum magnitude of that field.
!
!-----------------------------------------------------------------------
!
! AUTHOR: Ming Xue
! 11/20/91
!
! MODIFICATION HISTORY:
!
! 5/06/92 (M. Xue)
! Added full documentation.
!
!-----------------------------------------------------------------------
!
! INPUT :
!
! u An array field defined at the u grid point.
!
! nx Number of grid points in the x-direction (east/west)
! ny Number of grid points in the y-direction (north/south)
! nz Number of grid points in the vertical
!
! OUTPUT:
!
! None.
!
! WORK ARRAY:
!
! tem1 Temporary work array.
!
!-----------------------------------------------------------------------
!
!
!-----------------------------------------------------------------------
!
! Variable Declarations.
!
!-----------------------------------------------------------------------
!
IMPLICIT NONE
INTEGER :: nx,ny,nz ! Number of grid points in 3 directions
REAL :: u (nx,ny,nz) ! An array field defined at the u
! grid point
CHARACTER (LEN=*) :: ch
REAL :: tem1(nx,ny,nz)
INTEGER :: i,j,k
!
!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
!
! Beginning of executable code...
!
!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
!
DO k=1,nz-1
DO j=1,ny-1
DO i=1,(nx-1)/2+1
tem1(i,j,k)=u( nx -i+1, j,k) + u(i, j,k)
END DO
END DO
END DO
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 SUBROUTINE checkux
!
!
!##################################################################
!##################################################################
!###### ######
!###### SUBROUTINE CHECKVX ######
!###### ######
!###### Developed by ######
!###### Center for Analysis and Prediction of Storms ######
!###### University of Oklahoma ######
!###### ######
!##################################################################
!##################################################################
!
SUBROUTINE checkvx(v, nx,ny,nz, ch, tem1),1
!
!-----------------------------------------------------------------------
!
! PURPOSE:
!
! Check the west-east symmetry of a field defined at a v-point
! on the y-z plane containing the maximum magnitude of that field.
!
!-----------------------------------------------------------------------
!
! AUTHOR: Ming Xue
! 11/20/91.
!
! MODIFICATION HISTORY:
!
! 5/06/92 (M. Xue)
! Added full documentation.
!
!-----------------------------------------------------------------------
!
! INPUT :
!
! v An array field defined at the v grid point.
!
! nx Number of grid points in the x-direction (east/west)
! ny Number of grid points in the y-direction (north/south)
! nz Number of grid points in the vertical
!
! OUTPUT:
!
! None.
!
! WORK ARRAY:
!
! tem1 Temporary work array.
!
!-----------------------------------------------------------------------
!
!
!-----------------------------------------------------------------------
!
! Variable Declarations.
!
!-----------------------------------------------------------------------
!
IMPLICIT NONE
INTEGER :: nx,ny,nz ! Number of grid points in 3 directions
REAL :: v (nx,ny,nz) ! An array field defined at the v
! grid point
CHARACTER (LEN=*) :: ch
REAL :: tem1(nx,ny,nz)
INTEGER :: i,j,k
!
!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
!
! Beginning of executable code...
!
!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
!
DO k=1,nz-1
DO j=1,ny
DO i=1,(nx-1)/2+1
tem1(i,j,k)=v( nx-i,j,k) - v(i,j,k)
END DO
END DO
END DO
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 SUBROUTINE checkvx
!
!
!##################################################################
!##################################################################
!###### ######
!###### SUBROUTINE CHECKWX ######
!###### ######
!###### Developed by ######
!###### Center for Analysis and Prediction of Storms ######
!###### University of Oklahoma ######
!###### ######
!##################################################################
!##################################################################
!
SUBROUTINE checkwx(w, nx,ny,nz, ch, tem1),1
!
!-----------------------------------------------------------------------
!
! PURPOSE:
!
! Check the west-east symmetry of a field defined at a w-point
! on the y-z plane containing the maximum magnitude of that field.
!
!-----------------------------------------------------------------------
!
! AUTHOR: Ming Xue
! 11/20/91.
!
! MODIFICATION HISTORY:
!
! 5/06/92 (M. Xue)
! Added full documentation.
!
!-----------------------------------------------------------------------
!
! INPUT :
!
! w An array field defined at the w grid point.
!
! nx Number of grid points in the x-direction (east/west)
! ny Number of grid points in the y-direction (north/south)
! nz Number of grid points in the vertical
!
! OUTPUT:
!
! None.
!
! WORK ARRAY:
!
! tem1 Temporary work array.
!
!-----------------------------------------------------------------------
!
!
!-----------------------------------------------------------------------
!
! Variable Declarations.
!
!-----------------------------------------------------------------------
!
IMPLICIT NONE
INTEGER :: nx,ny,nz ! Number of grid points in 3 directions
REAL :: w (nx,ny,nz) ! An array field defined at the w
! grid point
CHARACTER (LEN=*) :: ch
REAL :: tem1(nx,ny,nz)
INTEGER :: i,j,k
!
!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
!
! Beginning of executable code...
!
!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
!
DO k=1,nz
DO j=1,ny-1
DO i=1,(nx-1)/2+1
tem1(i,j,k)=w( nx-i,j,k) - w(i,j,k)
END DO
END DO
END DO
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 SUBROUTINE checkwx
!
!
!##################################################################
!##################################################################
!###### ######
!###### SUBROUTINE CHECKSY ######
!###### ######
!###### Developed by ######
!###### Center for Analysis and Prediction of Storms ######
!###### University of Oklahoma ######
!###### ######
!##################################################################
!##################################################################
!
SUBROUTINE checksy(s, nx,ny,nz, ch, tem1),1
!
!-----------------------------------------------------------------------
!
! PURPOSE:
!
! Check the south-north symmetry of a field defined at a scalar point
! on the x-z plane containing the maximum magnitude of that field.
!
!-----------------------------------------------------------------------
!
! AUTHOR: Ming Xue & Hao Jin
! 4/20/93.
!
! MODIFICATION HISTORY:
!
!-----------------------------------------------------------------------
!
! INPUT :
!
! s An array field defined at the scalar point.
!
! nx Number of grid points in the x-direction (east/west)
! ny Number of grid points in the y-direction (north/south)
! nz Number of grid points in the vertical
!
! OUTPUT:
!
! None.
!
! WORK ARRAY:
!
! tem1 Temporary work array.
!
!-----------------------------------------------------------------------
!
!
!-----------------------------------------------------------------------
!
! Variable Declarations.
!
!-----------------------------------------------------------------------
!
IMPLICIT NONE
INTEGER :: nx,ny,nz ! Number of grid points in 3 directions
REAL :: s (nx,ny,nz) ! An array field defined at the
! scalar point
CHARACTER (LEN=*) :: ch
REAL :: tem1(nx,ny,nz)
INTEGER :: i,j,k
!
!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
!
! Beginning of executable code...
!
!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
!
DO k=1,nz-1
DO i=1,nx-1
DO j=1,(ny-1)/2+1
tem1(i,j,k)=s( i,ny-j,k) - s(i,j,k)
END DO
END DO
END DO
i = (nx-1)/2+1
CALL wrigar
(tem1,1,nx,1,ny,1,nz,i,i,1,(ny-1)/2,1,nz-1,ch,0.0,2)
RETURN
END SUBROUTINE checksy
!
!
!##################################################################
!##################################################################
!###### ######
!###### SUBROUTINE CHECKUY ######
!###### ######
!###### Developed by ######
!###### Center for Analysis and Prediction of Storms ######
!###### University of Oklahoma ######
!###### ######
!##################################################################
!##################################################################
!
SUBROUTINE checkuy(u, nx,ny,nz, ch, tem1),1
!
!-----------------------------------------------------------------------
!
! PURPOSE:
!
! Check the south-north symmetry of a field defined at a u-point
! on the x-z plane containing the maximum magnitude of that field.
!
!-----------------------------------------------------------------------
!
! AUTHOR: Ming Xue & Hao Jin
! 4/20/93.
!
! MODIFICATION HISTORY:
!
!-----------------------------------------------------------------------
!
! INPUT :
!
! u An array field defined at the u grid point.
!
! nx Number of grid points in the x-direction (east/west)
! ny Number of grid points in the y-direction (north/south)
! nz Number of grid points in the vertical
!
! OUTPUT:
!
! None.
!
! WORK ARRAY:
!
! tem1 Temporary work array.
!
!-----------------------------------------------------------------------
!
!
!-----------------------------------------------------------------------
!
! Variable Declarations.
!
!-----------------------------------------------------------------------
!
IMPLICIT NONE
INTEGER :: nx,ny,nz ! Number of grid points in 3 directions
REAL :: u (nx,ny,nz) ! An array field defined at the u
! grid point
CHARACTER (LEN=*) :: ch
REAL :: tem1(nx,ny,nz)
INTEGER :: i,j,k
!
!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
!
! Beginning of executable code...
!
!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
!
DO k=1,nz-1
DO i=1,nx-1
DO j=1,(ny-1)/2+1
tem1(i,j,k)=u( i,ny-j,k) - u(i, j,k)
END DO
END DO
END DO
i = (nx-1)/2+1
CALL wrigar
(tem1,1,nx,1,ny,1,nz,i,i,1,(ny-1)/2,1,nz-1,ch,.0,2)
RETURN
END SUBROUTINE checkuy
!
!
!##################################################################
!##################################################################
!###### ######
!###### SUBROUTINE CHECKVY ######
!###### ######
!###### Developed by ######
!###### Center for Analysis and Prediction of Storms ######
!###### University of Oklahoma ######
!###### ######
!##################################################################
!##################################################################
!
SUBROUTINE checkvy(v, nx,ny,nz, ch, tem1),1
!
!-----------------------------------------------------------------------
!
! PURPOSE:
!
! Check the south-north symmetry of a field defined at a v-point
! on the x-z plane containing the maximum magnitude of that field.
!
!-----------------------------------------------------------------------
!
! AUTHOR: Ming Xue & Hao Jin
! 4/20/93.
!
! MODIFICATION HISTORY:
!
!-----------------------------------------------------------------------
!
! INPUT :
!
! v An array field defined at the v grid point.
!
! nx Number of grid points in the x-direction (east/west)
! ny Number of grid points in the y-direction (north/south)
! nz Number of grid points in the vertical
!
! OUTPUT:
!
! None.
!
! WORK ARRAY:
!
! tem1 Temporary work array.
!
!-----------------------------------------------------------------------
!
!
!-----------------------------------------------------------------------
!
! Variable Declarations.
!
!-----------------------------------------------------------------------
!
IMPLICIT NONE
INTEGER :: nx,ny,nz ! Number of grid points in 3 directions
REAL :: v (nx,ny,nz) ! An array field defined at the v
! grid point
CHARACTER (LEN=*) :: ch
REAL :: tem1(nx,ny,nz)
INTEGER :: i,j,k
!
!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
!
! Beginning of executable code...
!
!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
!
DO k=1,nz-1
DO i=1,nx-1
DO j=1,(ny-1)/2+1
tem1(i,j,k)=v( i,ny-j+1,k) + v(i,j,k)
END DO
END DO
END DO
i = (nx-1)/2+1
CALL wrigar
(tem1,1,nx,1,ny,1,nz,i,i,1,(ny-1)/2+1,1,nz-1,ch,0.0,2)
RETURN
END SUBROUTINE checkvy
!
!
!##################################################################
!##################################################################
!###### ######
!###### SUBROUTINE CHECKWY ######
!###### ######
!###### Developed by ######
!###### Center for Analysis and Prediction of Storms ######
!###### University of Oklahoma ######
!###### ######
!##################################################################
!##################################################################
!
SUBROUTINE checkwy(w, nx,ny,nz, ch, tem1),1
!
!-----------------------------------------------------------------------
!
! PURPOSE:
!
! Check the south-north symmetry of a field defined at a w-point
! on the x-z plane containing the maximum magnitude of that field.
!
!-----------------------------------------------------------------------
!
! AUTHOR: Ming Xue & Hao Jin
! 4/20/93.
!
! MODIFICATION HISTORY:
!
!-----------------------------------------------------------------------
!
! INPUT :
!
! w An array field defined at the w grid point.
!
! nx Number of grid points in the x-direction (east/west)
! ny Number of grid points in the y-direction (north/south)
! nz Number of grid points in the vertical
!
! OUTPUT:
!
! None.
!
! WORK ARRAY:
!
! tem1 Temporary work array.
!
!-----------------------------------------------------------------------
!
!
!-----------------------------------------------------------------------
!
! Variable Declarations.
!
!-----------------------------------------------------------------------
!
IMPLICIT NONE
INTEGER :: nx,ny,nz ! Number of grid points in 3 directions
REAL :: w (nx,ny,nz) ! An array field defined at the w
! grid point
CHARACTER (LEN=*) :: ch
REAL :: tem1(nx,ny,nz)
INTEGER :: i,j,k
!
!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
!
! Beginning of executable code...
!
!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
!
DO k=1,nz
DO i=1,nx-1
DO j=1,(ny-1)/2+1
tem1(i,j,k)=w( i,ny-j,k) - w(i,j,k)
END DO
END DO
END DO
i = (nx-1)/2+1
CALL wrigar
(tem1,1,nx,1,ny,1,nz,i,i,1,(ny-1)/2,1,nz,ch,.0,2)
RETURN
END SUBROUTINE checkwy
!
!
!##################################################################
!##################################################################
!###### ######
!###### SUBROUTINE CHECKSHX ######
!###### ######
!###### Developed by ######
!###### Center for Analysis and Prediction of Storms ######
!###### University of Oklahoma ######
!###### ######
!##################################################################
!##################################################################
!
SUBROUTINE checkshx(s, nx,ny,nz, & 13,2
ibgn,iend,jbgn,jend,kbgn,kend, &
ch, tem1)
!
!-----------------------------------------------------------------------
!
! PURPOSE:
!
! Check the west-east symmetry of a field defined at a scalar point
! on the level containing the maximum magnitude of that field.
!
!-----------------------------------------------------------------------
!
! AUTHOR: Ming Xue & Hao Jin
! 4/20/93.
!
! MODIFICATION HISTORY:
!
! 02/12/1996 (Yuhe Liu)
! Added the beginning and ending index for each direction
!
!-----------------------------------------------------------------------
!
! INPUT :
!
! s An array field defined at the scalar point.
!
! nx Number of grid points in the x-direction (east/west)
! ny Number of grid points in the y-direction (north/south)
! nz Number of grid points in the vertical
!
! ibgn Beginning index in x-direction
! iend Ending index in x-direction
! jbgn Beginning index in y-direction
! jend Ending index in y-direction
! kbgn Beginning index in z-direction
! kend Ending index in z-direction
!
! OUTPUT:
!
! None.
!
! WORK ARRAY:
!
! tem1 Temporary work array.
!
!-----------------------------------------------------------------------
!
!
!-----------------------------------------------------------------------
!
! Variable Declarations.
!
!-----------------------------------------------------------------------
!
IMPLICIT NONE
INTEGER :: nx,ny,nz ! Number of grid points in 3 directions
INTEGER :: ibgn,iend,jbgn,jend,kbgn,kend
REAL :: s (nx,ny,nz) ! An array field defined at
! the scalar point
CHARACTER (LEN=*) :: ch
REAL :: tem1(nx,ny,nz)
INTEGER :: i,j,k
REAL :: amin, amax
INTEGER :: imax,jmax,kmax,imin,jmin,kmin
!
!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
!
! Beginning of executable code...
!
!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
!
DO k=kbgn,kend
DO j=jbgn,jend
DO i=ibgn,(nx-1)/2+1
tem1(i,j,k)=s( nx-i,j,k) - s(i,j,k)
END DO
END DO
END DO
CALL a3dmax
(tem1,1,nx,ibgn,(nx-1)/2,1,ny,jbgn,jend,1,nz,kbgn,kend, &
amax,amin, imax,jmax,kmax, imin,jmin,kmin)
WRITE(6,'(/2(1x,a,f13.7,3(a,i3)))') &
'sdmin =',amin,' at i=',imin,', j=',jmin,', k=',kmin, &
'sdmax =',amax,' at i=',imax,', j=',jmax,', k=',kmax
IF ( ABS(amax) > ABS(amin) ) THEN
k=kmax
ELSE
k=kmin
END IF
CALL wrigar
(tem1,1,nx,1,ny,1,nz,ibgn,(nx-1)/2,jbgn,jend,k,k, &
ch,0.0,2)
RETURN
END SUBROUTINE checkshx
!
!
!##################################################################
!##################################################################
!###### ######
!###### SUBROUTINE CHECKUHX ######
!###### ######
!###### Developed by ######
!###### Center for Analysis and Prediction of Storms ######
!###### University of Oklahoma ######
!###### ######
!##################################################################
!##################################################################
!
SUBROUTINE checkuhx(u, nx,ny,nz, & 8,2
ibgn,iend,jbgn,jend,kbgn,kend, &
ch, tem1)
!
!-----------------------------------------------------------------------
!
! PURPOSE:
!
! Check the west-east symmetry of a field defined at a u-point
! on the level containing the maximum magnitude of that field.
!
!-----------------------------------------------------------------------
!
! AUTHOR: Ming Xue
! 11/20/91
!
! MODIFICATION HISTORY:
!
! 5/06/92 (M. Xue)
! Added full documentation.
!
! 02/12/1996 (Yuhe Liu)
! Added the beginning and ending index for each direction
!
!-----------------------------------------------------------------------
!
! INPUT :
!
! u An array field defined at the u grid point.
!
! nx Number of grid points in the x-direction (east/west)
! ny Number of grid points in the y-direction (north/south)
! nz Number of grid points in the vertical
!
! ibgn Beginning index in x-direction
! iend Ending index in x-direction
! jbgn Beginning index in y-direction
! jend Ending index in y-direction
! kbgn Beginning index in z-direction
! kend Ending index in z-direction
!
! OUTPUT:
!
! None.
!
! WORK ARRAY:
!
! tem1 Temporary work array.
!
!-----------------------------------------------------------------------
!
!
!-----------------------------------------------------------------------
!
! Variable Declarations.
!
!-----------------------------------------------------------------------
!
IMPLICIT NONE
INTEGER :: nx,ny,nz ! Number of grid points in 3 directions
INTEGER :: ibgn,iend,jbgn,jend,kbgn,kend
REAL :: u (nx,ny,nz) ! An array field defined at the u
! grid point
CHARACTER (LEN=*) :: ch
REAL :: tem1(nx,ny,nz)
INTEGER :: i,j,k
REAL :: amin, amax
INTEGER :: imax,jmax,kmax,imin,jmin,kmin
!
!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
!
! Beginning of executable code...
!
!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
!
DO k=kbgn,kend
DO j=jbgn,jend
DO i=ibgn,(nx-1)/2+1
tem1(i,j,k)=u( nx -i+1, j,k) + u(i, j,k)
END DO
END DO
END DO
CALL a3dmax
(tem1,1,nx,ibgn,(nx-1)/2,1,ny,jbgn,jend,1,nz,kbgn,kend, &
amax,amin, imax,jmax,kmax, imin,jmin,kmin)
WRITE(6,'(/2(1x,a,f13.7,3(a,i3)))') &
'udmin =',amin,' at i=',imin,', j=',jmin,', k=',kmin, &
'udmax =',amax,' at i=',imax,', j=',jmax,', k=',kmax
IF ( ABS(amax) > ABS(amin) ) THEN
k=kmax
ELSE
k=kmin
END IF
CALL wrigar
(tem1,1,nx,1,ny,1,nz,ibgn,(nx-1)/2,jbgn,jend,k,k, &
ch,0.0,2)
RETURN
END SUBROUTINE checkuhx
!
!
!##################################################################
!##################################################################
!###### ######
!###### SUBROUTINE CHECKVHX ######
!###### ######
!###### Developed by ######
!###### Center for Analysis and Prediction of Storms ######
!###### University of Oklahoma ######
!###### ######
!##################################################################
!##################################################################
!
SUBROUTINE checkvhx(v, nx,ny,nz, & 8,2
ibgn,iend,jbgn,jend,kbgn,kend, &
ch, tem1)
!
!-----------------------------------------------------------------------
!
! PURPOSE:
!
! Check the west-east symmetry of a field defined at a v-point
! on the level containing the maximum magnitude of that field.
!
!-----------------------------------------------------------------------
!
! AUTHOR: Ming Xue
! 11/20/91.
!
! MODIFICATION HISTORY:
!
! 5/06/92 (M. Xue)
! Added full documentation.
!
! 02/12/1996 (Yuhe Liu)
! Added the beginning and ending index for each direction
!
!-----------------------------------------------------------------------
!
! INPUT :
!
! v An array field defined at the v grid point.
!
! nx Number of grid points in the x-direction (east/west)
! ny Number of grid points in the y-direction (north/south)
! nz Number of grid points in the vertical
!
! ibgn Beginning index in x-direction
! iend Ending index in x-direction
! jbgn Beginning index in y-direction
! jend Ending index in y-direction
! kbgn Beginning index in z-direction
! kend Ending index in z-direction
!
! OUTPUT:
!
! None.
!
! WORK ARRAY:
!
! tem1 Temporary work array.
!
!-----------------------------------------------------------------------
!
!
!-----------------------------------------------------------------------
!
! Variable Declarations.
!
!-----------------------------------------------------------------------
!
IMPLICIT NONE
INTEGER :: nx,ny,nz ! Number of grid points in 3 directions
INTEGER :: ibgn,iend,jbgn,jend,kbgn,kend
REAL :: v (nx,ny,nz)
CHARACTER (LEN=*) :: ch
REAL :: tem1(nx,ny,nz)
INTEGER :: i,j,k
REAL :: amin, amax
INTEGER :: imax,jmax,kmax,imin,jmin,kmin
!
!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
!
! Beginning of executable code...
!
!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
!
DO k=kbgn,kend
DO j=jbgn,jend
DO i=ibgn,(nx-1)/2+1
tem1(i,j,k)=v( nx-i,j,k) - v(i,j,k)
END DO
END DO
END DO
CALL a3dmax
(tem1,1,nx,ibgn,(nx-1)/2,1,ny,jbgn,jend,1,nz,kbgn,kend, &
amax,amin, imax,jmax,kmax, imin,jmin,kmin)
WRITE(6,'(/2(1x,a,f13.7,3(a,i3)))') &
'vdmin =',amin,' at i=',imin,', j=',jmin,', k=',kmin, &
'vdmax =',amax,' at i=',imax,', j=',jmax,', k=',kmax
IF ( ABS(amax) > ABS(amin) ) THEN
k=kmax
ELSE
k=kmin
END IF
CALL wrigar
(tem1,1,nx,1,ny,1,nz,ibgn,(nx-1)/2,jbgn,jend,k,k, &
ch,0.0,2)
RETURN
END SUBROUTINE checkvhx
!
!
!##################################################################
!##################################################################
!###### ######
!###### SUBROUTINE CHECKWHX ######
!###### ######
!###### Developed by ######
!###### Center for Analysis and Prediction of Storms ######
!###### University of Oklahoma ######
!###### ######
!##################################################################
!##################################################################
!
SUBROUTINE checkwhx(w, nx,ny,nz, & 9,2
ibgn,iend,jbgn,jend,kbgn,kend, &
ch, tem1)
!
!-----------------------------------------------------------------------
!
! PURPOSE:
!
! Check the west-east symmetry of a field defined at a w-point
! on the level containing the maximum magnitude of that field.
!
!-----------------------------------------------------------------------
!
! AUTHOR: Ming Xue
! 11/20/91.
!
! MODIFICATION HISTORY:
!
! 5/06/92 (M. Xue)
! Added full documentation.
!
! 02/12/1996 (Yuhe Liu)
! Added the beginning and ending index for each direction
!
!-----------------------------------------------------------------------
!
! INPUT :
!
! w An array field defined at the w grid point.
!
! nx Number of grid points in the x-direction (east/west)
! ny Number of grid points in the y-direction (north/south)
! nz Number of grid points in the vertical
!
! ibgn Beginning index in x-direction
! iend Ending index in x-direction
! jbgn Beginning index in y-direction
! jend Ending index in y-direction
! kbgn Beginning index in z-direction
! kend Ending index in z-direction
!
! OUTPUT:
!
! None.
!
! WORK ARRAY:
!
! tem1 Temporary work array.
!
!-----------------------------------------------------------------------
!
!
!-----------------------------------------------------------------------
!
! Variable Declarations.
!
!-----------------------------------------------------------------------
!
IMPLICIT NONE
INTEGER :: nx,ny,nz ! Number of grid points in 3 directions
INTEGER :: ibgn,iend,jbgn,jend,kbgn,kend
REAL :: w (nx,ny,nz) ! An array field defined at the w
! grid point
CHARACTER (LEN=*) :: ch
REAL :: tem1(nx,ny,nz)
INTEGER :: i,j,k
REAL :: amin, amax
INTEGER :: imax,jmax,kmax,imin,jmin,kmin
!
!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
!
! Beginning of executable code...
!
!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
!
DO k=kbgn,kend
DO j=jbgn,jend
DO i=ibgn,(nx-1)/2+1
tem1(i,j,k)=w( nx-i,j,k) - w(i,j,k)
END DO
END DO
END DO
CALL a3dmax
(tem1,1,nx,ibgn,(nx-1)/2,1,ny,jbgn,jend,1,nz,kbgn,kend, &
amax,amin, imax,jmax,kmax, imin,jmin,kmin)
WRITE(6,'(/2(1x,a,f13.7,3(a,i3)))') &
'wdmin =',amin,' at i=',imin,', j=',jmin,', k=',kmin, &
'wdmax =',amax,' at i=',imax,', j=',jmax,', k=',kmax
IF ( ABS(amax) > ABS(amin) ) THEN
k=kmax
ELSE
k=kmin
END IF
CALL wrigar
(tem1,1,nx,1,ny,1,nz,ibgn,(nx-1)/2,jbgn,jend,k,k, &
ch,0.0,2)
RETURN
END SUBROUTINE checkwhx
!
!
!##################################################################
!##################################################################
!###### ######
!###### SUBROUTINE CHECKSHY ######
!###### ######
!###### Developed by ######
!###### Center for Analysis and Prediction of Storms ######
!###### University of Oklahoma ######
!###### ######
!##################################################################
!##################################################################
!
SUBROUTINE checkshy(s, nx,ny,nz, & 13,2
ibgn,iend,jbgn,jend,kbgn,kend, &
ch, tem1)
!
!-----------------------------------------------------------------------
!
! PURPOSE:
!
! Check the south-north symmetry of a field defined at a scalar point
! on the level containing the maximum magnitude of that field.
!
!-----------------------------------------------------------------------
!
! AUTHOR: Ming Xue & Hao Jin
! 4/20/93.
!
! MODIFICATION HISTORY:
!
! 02/12/1996 (Yuhe Liu)
! Added the beginning and ending index for each direction
!
!-----------------------------------------------------------------------
!
! INPUT :
!
! s An array field defined at the scalar point.
!
! nx Number of grid points in the x-direction (east/west)
! ny Number of grid points in the y-direction (north/south)
! nz Number of grid points in the vertical
!
! ibgn Beginning index in x-direction
! iend Ending index in x-direction
! jbgn Beginning index in y-direction
! jend Ending index in y-direction
! kbgn Beginning index in z-direction
! kend Ending index in z-direction
!
! OUTPUT:
!
! None.
!
! WORK ARRAY:
!
! tem1 Temporary work array.
!
!-----------------------------------------------------------------------
!
!
!-----------------------------------------------------------------------
!
! Variable Declarations.
!
!-----------------------------------------------------------------------
!
IMPLICIT NONE
INTEGER :: nx,ny,nz ! Number of grid points in 3 directions
INTEGER :: ibgn,iend,jbgn,jend,kbgn,kend
REAL :: s (nx,ny,nz) ! An array field defined at the
! scalar point
CHARACTER (LEN=*) :: ch
REAL :: tem1(nx,ny,nz)
INTEGER :: i,j,k
REAL :: amin, amax
INTEGER :: imax,jmax,kmax,imin,jmin,kmin
!
!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
!
! Beginning of executable code...
!
!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
!
DO k=kbgn,kend
DO i=ibgn,iend
DO j=jbgn,(ny-1)/2+1
tem1(i,j,k)=s( i,ny-j,k) - s(i,j,k)
END DO
END DO
END DO
CALL a3dmax
(tem1,1,nx,ibgn,iend,1,ny,jbgn,(ny-1)/2,1,nz,kbgn,kend, &
amax,amin, imax,jmax,kmax, imin,jmin,kmin)
WRITE(6,'(/2(1x,a,f13.7,3(a,i3)))') &
'sdmin =',amin,' at i=',imin,', j=',jmin,', k=',kmin, &
'sdmax =',amax,' at i=',imax,', j=',jmax,', k=',kmax
IF ( ABS(amax) > ABS(amin) ) THEN
k=kmax
ELSE
k=kmin
END IF
CALL wrigar
(tem1,1,nx,1,ny,1,nz,ibgn,iend,jbgn,(ny-1)/2,k,k, &
ch,0.0,2)
RETURN
END SUBROUTINE checkshy
!
!
!##################################################################
!##################################################################
!###### ######
!###### SUBROUTINE CHECKUHY ######
!###### ######
!###### Developed by ######
!###### Center for Analysis and Prediction of Storms ######
!###### University of Oklahoma ######
!###### ######
!##################################################################
!##################################################################
!
SUBROUTINE checkuhy(u, nx,ny,nz, & 8,2
ibgn,iend,jbgn,jend,kbgn,kend, &
ch, tem1)
!
!-----------------------------------------------------------------------
!
! PURPOSE:
!
! Check the south-north symmetry of a field defined at a u-point
! on the level containing the maximum magnitude of that field.
!
!-----------------------------------------------------------------------
!
! AUTHOR: Ming Xue & Hao Jin
! 4/20/93.
!
! MODIFICATION HISTORY:
!
! 02/12/1996 (Yuhe Liu)
! Added the beginning and ending index for each direction
!
!-----------------------------------------------------------------------
!
! INPUT :
!
! u An array field defined at the u grid point.
!
! nx Number of grid points in the x-direction (east/west)
! ny Number of grid points in the y-direction (north/south)
! nz Number of grid points in the vertical
!
! ibgn Beginning index in x-direction
! iend Ending index in x-direction
! jbgn Beginning index in y-direction
! jend Ending index in y-direction
! kbgn Beginning index in z-direction
! kend Ending index in z-direction
!
! OUTPUT:
!
! None.
!
! WORK ARRAY:
!
! tem1 Temporary work array.
!
!-----------------------------------------------------------------------
!
!
!-----------------------------------------------------------------------
!
! Variable Declarations.
!
!-----------------------------------------------------------------------
!
IMPLICIT NONE
INTEGER :: nx,ny,nz ! Number of grid points in 3 directions
INTEGER :: ibgn,iend,jbgn,jend,kbgn,kend
REAL :: u (nx,ny,nz) ! An array field defined at the u
! grid point
CHARACTER (LEN=*) :: ch
REAL :: tem1(nx,ny,nz)
INTEGER :: i,j,k
REAL :: amin, amax
INTEGER :: imax,jmax,kmax,imin,jmin,kmin
!
!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
!
! Beginning of executable code...
!
!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
!
DO k=kbgn,kend
DO i=ibgn,iend
DO j=jbgn,(ny-1)/2+1
tem1(i,j,k)=u( i,ny-j,k) - u(i, j,k)
END DO
END DO
END DO
CALL a3dmax
(tem1,1,nx,ibgn,iend,1,ny,ibgn,(ny-1)/2,1,nz,kbgn,kend, &
amax,amin, imax,jmax,kmax, imin,jmin,kmin)
WRITE(6,'(/2(1x,a,f13.7,3(a,i3)))') &
'udmin =',amin,' at i=',imin,', j=',jmin,', k=',kmin, &
'udmax =',amax,' at i=',imax,', j=',jmax,', k=',kmax
IF ( ABS(amax) > ABS(amin) ) THEN
k=kmax
ELSE
k=kmin
END IF
CALL wrigar
(tem1,1,nx,1,ny,1,nz,ibgn,iend,ibgn,(ny-1)/2,k,k, &
ch,0.0,2)
RETURN
END SUBROUTINE checkuhy
!
!
!##################################################################
!##################################################################
!###### ######
!###### SUBROUTINE CHECKVHY ######
!###### ######
!###### Developed by ######
!###### Center for Analysis and Prediction of Storms ######
!###### University of Oklahoma ######
!###### ######
!##################################################################
!##################################################################
!
SUBROUTINE checkvhy(v, nx,ny,nz, & 8,2
ibgn,iend,jbgn,jend,kbgn,kend, &
ch, tem1)
!
!-----------------------------------------------------------------------
!
! PURPOSE:
!
! Check the south-north symmetry of a field defined at a v-point
! on the level containing the maximum magnitude of that field.
!
!-----------------------------------------------------------------------
!
! AUTHOR: Ming Xue & Hao Jin
! 4/20/93.
!
! MODIFICATION HISTORY:
!
! 02/12/1996 (Yuhe Liu)
! Added the beginning and ending index for each direction
!
!-----------------------------------------------------------------------
!
! INPUT :
!
! v An array field defined at the v grid point.
!
! nx Number of grid points in the x-direction (east/west)
! ny Number of grid points in the y-direction (north/south)
! nz Number of grid points in the vertical
!
! ibgn Beginning index in x-direction
! iend Ending index in x-direction
! jbgn Beginning index in y-direction
! jend Ending index in y-direction
! kbgn Beginning index in z-direction
! kend Ending index in z-direction
!
! OUTPUT:
!
! None.
!
! WORK ARRAY:
!
! tem1 Temporary work array.
!
!-----------------------------------------------------------------------
!
!
!-----------------------------------------------------------------------
!
! Variable Declarations.
!
!-----------------------------------------------------------------------
!
IMPLICIT NONE
INTEGER :: nx,ny,nz ! Number of grid points in 3 directions
INTEGER :: ibgn,iend,jbgn,jend,kbgn,kend
REAL :: v (nx,ny,nz) ! An array field defined at the v
! grid point
CHARACTER (LEN=*) :: ch
REAL :: tem1(nx,ny,nz)
INTEGER :: i,j,k
REAL :: amin, amax
INTEGER :: imax,jmax,kmax,imin,jmin,kmin
!
!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
!
! Beginning of executable code...
!
!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
!
DO k=kbgn,kend
DO i=ibgn,iend
DO j=jbgn,(ny-1)/2+1
tem1(i,j,k)=v( i,ny-j+1,k) + v(i,j,k)
END DO
END DO
END DO
CALL a3dmax
(tem1,1,nx,ibgn,iend,1,ny,jbgn,(ny-1)/2,1,nz,kbgn,kend, &
amax,amin, imax,jmax,kmax, imin,jmin,kmin)
WRITE(6,'(/2(1x,a,f13.7,3(a,i3)))') &
'vdmin =',amin,' at i=',imin,', j=',jmin,', k=',kmin, &
'vdmax =',amax,' at i=',imax,', j=',jmax,', k=',kmax
IF ( ABS(amax) > ABS(amin) ) THEN
k=kmax
ELSE
k=kmin
END IF
CALL wrigar
(tem1,1,nx,1,ny,1,nz,ibgn,iend,jbgn,(ny-1)/2,k,k, &
ch,0.0,2)
RETURN
END SUBROUTINE checkvhy
!
!
!##################################################################
!##################################################################
!###### ######
!###### SUBROUTINE CHECKWHY ######
!###### ######
!###### Developed by ######
!###### Center for Analysis and Prediction of Storms ######
!###### University of Oklahoma ######
!###### ######
!##################################################################
!##################################################################
!
SUBROUTINE checkwhy(w, nx,ny,nz, & 9,2
ibgn,iend,jbgn,jend,kbgn,kend, &
ch, tem1)
!
!-----------------------------------------------------------------------
!
! PURPOSE:
!
! Check the south-north symmetry of a field defined at a w-point
! on the level containing the maximum magnitude of that field.
!
!-----------------------------------------------------------------------
!
! AUTHOR: Ming Xue & Hao Jin
! 4/20/93.
!
! MODIFICATION HISTORY:
!
! 02/12/1996 (Yuhe Liu)
! Added the beginning and ending index for each direction
!
!-----------------------------------------------------------------------
!
! INPUT :
!
! w An array field defined at the w grid point.
!
! nx Number of grid points in the x-direction (east/west)
! ny Number of grid points in the y-direction (north/south)
! nz Number of grid points in the vertical
!
! ibgn Beginning index in x-direction
! iend Ending index in x-direction
! jbgn Beginning index in y-direction
! jend Ending index in y-direction
! kbgn Beginning index in z-direction
! kend Ending index in z-direction
!
! OUTPUT:
!
! None.
!
! WORK ARRAY:
!
! tem1 Temporary work array.
!
!-----------------------------------------------------------------------
!
!
!-----------------------------------------------------------------------
!
! Variable Declarations.
!
!-----------------------------------------------------------------------
!
IMPLICIT NONE
INTEGER :: nx,ny,nz ! Number of grid points in 3 directions
INTEGER :: ibgn,iend,jbgn,jend,kbgn,kend
REAL :: w (nx,ny,nz) ! An array field defined at the w
! grid point
CHARACTER (LEN=*) :: ch
REAL :: tem1(nx,ny,nz)
INTEGER :: i,j,k
REAL :: amin, amax
INTEGER :: imax,jmax,kmax,imin,jmin,kmin
!
!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
!
! Beginning of executable code...
!
!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
!
DO k=kbgn,kend
DO i=ibgn,iend
DO j=jbgn,(ny-1)/2+1
tem1(i,j,k)=w( i,ny-j,k) - w(i,j,k)
END DO
END DO
END DO
CALL a3dmax
(tem1,1,nx,ibgn,iend,jbgn,ny,1,(ny-1)/2,1,nz,kbgn,kend, &
amax,amin, imax,jmax,kmax, imin,jmin,kmin)
WRITE(6,'(/2(1x,a,f13.7,3(a,i3)))') &
'wdmin =',amin,' at i=',imin,', j=',jmin,', k=',kmin, &
'wdmax =',amax,' at i=',imax,', j=',jmax,', k=',kmax
IF ( ABS(amax) > ABS(amin) ) THEN
k=kmax
ELSE
k=kmin
END IF
CALL wrigar
(tem1,1,nx,1,ny,1,nz,ibgn,iend,jbgn,(ny-1)/2,k,k, &
ch,0.0,2)
RETURN
END SUBROUTINE checkwhy