!
!##################################################################
!##################################################################
!###### ######
!###### SUBROUTINE SCALE_FACTOR ######
!###### ######
!###### Developed by ######
!###### Center for Analysis and Prediction of Storms ######
!###### University of Oklahoma ######
!###### ######
!##################################################################
!##################################################################
!
!
!-----------------------------------------------------------------------
!
! PURPOSE:
!
! define a dirac function at each grid point and
! get the response function
!
! AUTHOR:
!
! Jidong Gao, CAPS, 2000
!
!
!-----------------------------------------------------------------------
!
SUBROUTINE scale_factor(nx,ny,nz,pscalc,ipass_filt,radius,radius_z) 2,1
!
!
! define a dirac function at each grid point and
! get the response function
!
implicit NONE
!
INTEGER :: nx, ny, nz, ipass_filt,radius, radius_z
INTEGER :: ii,jj,kk,i,j,k
REAL :: pscalc(nx,ny,nz)
REAL, DIMENSION (:,:,:), allocatable :: dirac
REAL :: const
!
!
allocate ( dirac(nx,ny,nz) )
dirac = 0.
jj = ny/2
ii = nx/2
kk = nz/2
dirac(ii,jj,kk) = 1.
CALL recurfilt_3d_scale
( nx,ny,nz,dirac,ipass_filt,radius,radius_z )
const = sqrt( 1. / dirac(ii,jj,kk))
! print*,'pscalc(ii,jj,kk) =',pscalc(ii,jj,kk)
!
DO jj=1, ny
DO ii=1, nx
DO kk=1, nz
pscalc (ii,jj,kk) = const
END DO
END DO
END DO
!
print*,'pscalc=',const
!
! DO jj=1, ny
! DO ii=1, nx
! DO kk=1, nz
!
! dirac = 0.
!
! dirac(ii,jj,kk) = 1.
!
! CALL recurfilt_2d( nx,ny,dirac,ipass_filt,radius )
!
! CALL recurfilt_3d( nx,ny,nz,dirac,ipass_filt,radius,radius_z )
!
! pscalc (ii,jj,kk) = 1. / dirac(ii,jj,kk)
!
! END DO
! END DO
! END DO
!
deallocate(dirac)
!
!
RETURN
END SUBROUTINE scale_factor