** Warning **

Issuing rollback() due to DESTROY without explicit disconnect() of DBD::mysql::db handle dbname=MITgcm at /usr/local/share/lxr/lib/LXR/Common.pm line 1224.

Last-Modified: Fri, 16 May 2024 05:11:24 GMT Content-Type: text/html; charset=utf-8 MITgcm/MITgcm/pkg/zonal_filt/zonal_filt_readparms.F
Back to home page

MITgcm

 
 

    


File indexing completed on 2018-03-02 18:44:41 UTC

view on githubraw file Latest commit add29e06 on 2018-01-31 20:35:05 UTC
d9332b57eb Jean*0001 #include "ZONAL_FILT_OPTIONS.h"
                0002 
                0003       SUBROUTINE ZONAL_FILT_READPARMS( myThid )
ae4c29e0db Jean*0004 C     *==========================================================*
d9332b57eb Jean*0005 C     | SUBROUTINE ZONAL_FILT_READPARMS                          |
                0006 C     | o Routine to initialize Zonal Filter (=FFT) parameters   |
ae4c29e0db Jean*0007 C     *==========================================================*
                0008 
d9332b57eb Jean*0009       IMPLICIT NONE
                0010 
                0011 C     === Global variables ===
                0012 #include "SIZE.h"
                0013 #include "EEPARAMS.h"
                0014 #include "PARAMS.h"
                0015 #include "ZONAL_FILT.h"
                0016 
                0017 C     === Routine arguments ===
                0018       INTEGER myThid
                0019 
                0020 #ifdef ALLOW_ZONAL_FILT
ae4c29e0db Jean*0021 C     === Local variables ===
                0022 C     msgBuf     :: Informational/error message buffer
                0023 C     iUnit      :: Work variable for IO unit number
                0024       CHARACTER*(MAX_LEN_MBUF) msgBuf
                0025       INTEGER iUnit
d9332b57eb Jean*0026 
ae4c29e0db Jean*0027       NAMELIST /ZONFILT_PARM01/
d9332b57eb Jean*0028      &          zonal_filt_uvStar, zonal_filt_TrStagg,
ae4c29e0db Jean*0029      &          zonal_filt_lat,
d9332b57eb Jean*0030      &          zonal_filt_cospow, zonal_filt_sinpow,
                0031      &          zonal_filt_mode2dx
                0032 
ae4c29e0db Jean*0033       IF ( .NOT.useZONAL_FILT ) THEN
                0034 C-    pkg ZONAL_FILT is not used
                0035         _BEGIN_MASTER(myThid)
                0036 C-    Track pkg activation status:
                0037 c        ZONFILTisOn = .FALSE.
                0038 C     print a (weak) warning if data.zonfilt is found
                0039           CALL PACKAGES_UNUSED_MSG( 'useZONAL_FILT', ' ', 'zonfilt' )
                0040         _END_MASTER(myThid)
                0041         RETURN
                0042       ENDIF
d9332b57eb Jean*0043 
                0044 C--   ZONAL_FILT_READPARMS has been called so we know that
                0045 C     the package is active.
ae4c29e0db Jean*0046 c     ZONFILTisOn = .TRUE.
d9332b57eb Jean*0047 
                0048       _BEGIN_MASTER(myThid)
                0049 
                0050       WRITE(msgBuf,'(A)')' ZONAL_FILT_READPARMS: opening data.zonfilt'
                0051       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0052      &                    SQUEEZE_RIGHT , 1)
                0053 
                0054       CALL OPEN_COPY_DATA_FILE(
                0055      I                         'data.zonfilt', 'ZONAL_FILT_READPARMS',
                0056      O                         iUnit,
                0057      I                         myThid )
                0058 
                0059 C--   Default flags and values for Zonal Filter
ae4c29e0db Jean*0060       zonal_filt_uvStar   = .TRUE.
                0061       zonal_filt_TrStagg  = .TRUE.
d9332b57eb Jean*0062       zonal_filt_lat      = 90.
                0063       zonal_filt_sinpow   = 2
ae4c29e0db Jean*0064       zonal_filt_cospow   = 2
d9332b57eb Jean*0065       zonal_filt_mode2dx  = 0
                0066 
                0067 C--   Read parameters from open data file
                0068       READ(UNIT=iUnit,NML=ZONFILT_PARM01)
                0069 
ae4c29e0db Jean*0070       WRITE(msgBuf,'(A)')
d9332b57eb Jean*0071      &   ' ZONAL_FILT_READPARMS: finished reading data.zonfilt'
                0072       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0073      &                    SQUEEZE_RIGHT , 1)
                0074 
                0075 c     write(*,*) 'Shap_funct, nShap_Tr,UV _Phys=',
                0076 c    &    Shap_funct, nShapT, nShapUV, nShapTrPhys, nShapUVPhys
                0077 c     write(*,*) 'Shap_Trtau,Shap_uvtau=',Shap_Trtau,Shap_uvtau
                0078 
                0079 C--   Close the open data file
7a77863887 Mart*0080 #ifdef SINGLE_DISK_IO
d9332b57eb Jean*0081       CLOSE(iUnit)
7a77863887 Mart*0082 #else
                0083       CLOSE(iUnit,STATUS='DELETE')
                0084 #endif /* SINGLE_DISK_IO */
d9332b57eb Jean*0085       _END_MASTER(myThid)
                0086 
                0087 C--   Everyone else must wait for the parameters to be loaded
                0088       _BARRIER
                0089 
                0090 C--   Check the parameters :
                0091 
                0092        IF ( .NOT.zonal_filt_uvStar ) THEN
                0093 
                0094 C- Notes: applying the filter at the end of the time step (after SOLVE_FOR_P)
ae4c29e0db Jean*0095 C    affects the barotropic flow divergence ; this might not be consistent
d9332b57eb Jean*0096 C    with some option of the code.
                0097 
                0098         IF ( rigidLid ) THEN
                0099          WRITE(msgBuf,'(2A)') 'ZONAL_FILT with rigidLid ',
                0100      &                         'needs zonal_filt_uvStar=.true.'
                0101          CALL PRINT_ERROR( msgBuf , 1)
                0102          STOP 'ABNORMAL END: S/R ZONAL_FILT_READPARMS'
                0103         ELSEIF ( .NOT.exactConserv ) THEN
                0104          WRITE(msgBuf,'(2A)') 'S/R ZONAL_FILT_READPARMS: WARNING <<< ',
                0105      &    'applying Filter after SOLVE_FOR_P (zonal_filt_uvStar=FALSE)'
1a18fc3009 Jean*0106          CALL PRINT_MESSAGE(msgBuf, errorMessageUnit, SQUEEZE_RIGHT,1)
d9332b57eb Jean*0107          WRITE(msgBuf,'(2A)') 'S/R ZONAL_FILT_READPARMS: WARNING <<< ',
                0108      &    'requires to recompute Eta after ==> turn on exactConserv !'
1a18fc3009 Jean*0109          CALL PRINT_MESSAGE(msgBuf, errorMessageUnit, SQUEEZE_RIGHT,1)
ae4c29e0db Jean*0110         ENDIF
d9332b57eb Jean*0111 
ae4c29e0db Jean*0112        ENDIF
d9332b57eb Jean*0113 
                0114 #endif /* ALLOW_ZONAL_FILT */
ae4c29e0db Jean*0115 
d9332b57eb Jean*0116       RETURN
                0117       END