C $Header: /u/gcmpack/MITgcm/pkg/zonal_filt/zonal_filt_readparms.F,v 1.2 2002/07/31 21:02:06 jmc Exp $
C $Name: $
#include "ZONAL_FILT_OPTIONS.h"
SUBROUTINE ZONAL_FILT_READPARMS( myThid )
C /==========================================================\
C | SUBROUTINE ZONAL_FILT_READPARMS |
C | o Routine to initialize Zonal Filter (=FFT) parameters |
C |==========================================================|
C \==========================================================/
IMPLICIT NONE
C === Global variables ===
#include "SIZE.h"
#include "EEPARAMS.h"
#include "PARAMS.h"
#include "ZONAL_FILT.h"
C === Routine arguments ===
INTEGER myThid
#ifdef ALLOW_ZONAL_FILT
NAMELIST //ZONFILT_PARM01
& zonal_filt_uvStar, zonal_filt_TrStagg,
& zonal_filt_lat,
& zonal_filt_cospow, zonal_filt_sinpow,
& zonal_filt_mode2dx
C === Local variables ===
C msgBuf - Informational/error meesage buffer
C iUnit - Work variable for IO unit number
CHARACTER*(MAX_LEN_MBUF) msgBuf
INTEGER iUnit
C-- ZONAL_FILT_READPARMS has been called so we know that
C the package is active.
c ZONFILTisOn=.TRUE.
_BEGIN_MASTER(myThid)
WRITE(msgBuf,'(A)')' ZONAL_FILT_READPARMS: opening data.zonfilt'
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
& SQUEEZE_RIGHT , 1)
CALL OPEN_COPY_DATA_FILE(
I 'data.zonfilt', 'ZONAL_FILT_READPARMS',
O iUnit,
I myThid )
C-- Default flags and values for Zonal Filter
zonal_filt_uvStar = .TRUE.
zonal_filt_TrStagg = .TRUE.
zonal_filt_lat = 90.
zonal_filt_sinpow = 2
zonal_filt_cospow = 2
zonal_filt_mode2dx = 0
C-- Read parameters from open data file
READ(UNIT=iUnit,NML=ZONFILT_PARM01)
WRITE(msgBuf,'(A)')
& ' ZONAL_FILT_READPARMS: finished reading data.zonfilt'
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
& SQUEEZE_RIGHT , 1)
c write(*,*) 'Shap_funct, nShap_Tr,UV _Phys=',
c & Shap_funct, nShapT, nShapUV, nShapTrPhys, nShapUVPhys
c write(*,*) 'Shap_Trtau,Shap_uvtau=',Shap_Trtau,Shap_uvtau
C-- Close the open data file
CLOSE(iUnit)
_END_MASTER(myThid)
C-- Everyone else must wait for the parameters to be loaded
_BARRIER
C-- Check the parameters :
IF ( .NOT.zonal_filt_uvStar ) THEN
C- Notes: applying the filter at the end of the time step (after SOLVE_FOR_P)
C affects the barotropic flow divergence ; this might not be consistent
C with some option of the code.
IF ( rigidLid ) THEN
WRITE(msgBuf,'(2A)') 'ZONAL_FILT with rigidLid ',
& 'needs zonal_filt_uvStar=.true.'
CALL PRINT_ERROR( msgBuf , 1)
STOP 'ABNORMAL END: S/R ZONAL_FILT_READPARMS'
ELSEIF ( .NOT.exactConserv ) THEN
WRITE(msgBuf,'(2A)') 'S/R ZONAL_FILT_READPARMS: WARNING <<< ',
& 'applying Filter after SOLVE_FOR_P (zonal_filt_uvStar=FALSE)'
CALL PRINT_MESSAGE(msgBuf, errorMessageUnit, SQUEEZE_RIGHT,1)
WRITE(msgBuf,'(2A)') 'S/R ZONAL_FILT_READPARMS: WARNING <<< ',
& 'requires to recompute Eta after ==> turn on exactConserv !'
CALL PRINT_MESSAGE(msgBuf, errorMessageUnit, SQUEEZE_RIGHT,1)
ENDIF
ENDIF
#endif /* ALLOW_ZONAL_FILT */
RETURN
END