** 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: Sat, 11 Sep 2026 05:09:16 GMT
Content-Type: text/html; charset=utf-8
MITgcm/MITgcm/pkg/zonal_filt/zonal_filt_init.F
File indexing completed on 2018-03-02 18:44:40 UTC
view on github raw file Latest commit add29e06 on 2018-01-31 20:35:05 UTC
42c525bfb4 Alis* 0001 #include "ZONAL_FILT_OPTIONS.h "
0002
0c8a064d26 Jean* 0003
0004
0005
0006 SUBROUTINE ZONAL_FILT_INIT ( myThid )
0007
0008
0009
6d99f9d2b3 Jean* 0010
0011
0c8a064d26 Jean* 0012
6d99f9d2b3 Jean* 0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0c8a064d26 Jean* 0025
0026
0027
0028
42c525bfb4 Alis* 0029 IMPLICIT NONE
0030
0c8a064d26 Jean* 0031
42c525bfb4 Alis* 0032 #include "SIZE.h "
0033 #include "EEPARAMS.h "
0034 #include "PARAMS.h "
0035 #include "GRID.h "
0036 #include "ZONAL_FILT.h "
0037 #include "FFTPACK.h "
0038
0c8a064d26 Jean* 0039
42c525bfb4 Alis* 0040
0c8a064d26 Jean* 0041
42c525bfb4 Alis* 0042 INTEGER myThid
0c8a064d26 Jean* 0043
42c525bfb4 Alis* 0044
0045 #ifdef ALLOW_ZONAL_FILT
0c8a064d26 Jean* 0046
42c525bfb4 Alis* 0047
6d99f9d2b3 Jean* 0048
0049
0050
0051
0052
0053
0c8a064d26 Jean* 0054
0055
0056 INTEGER i , j , bi , bj
6d99f9d2b3 Jean* 0057 CHARACTER *(MAX_LEN_MBUF ) msgBuf
0c8a064d26 Jean* 0058
0059
0060 _RL ampfact
0061 _RS lat
6d99f9d2b3 Jean* 0062 ampfact (lat ,i ) = MIN( oneRL ,
0c8a064d26 Jean* 0063 & ( COS( ABS(lat )*deg2rad )
0064 & /COS( zonal_filt_lat *deg2rad ) )**zonal_filt_cospow
0065 & /(SIN( PI *FLOAT(i )/FLOAT(Nx ) ) )**zonal_filt_sinpow
42c525bfb4 Alis* 0066 & )
0067
0c8a064d26 Jean* 0068
0069
6d99f9d2b3 Jean* 0070 IF ( sNx .NE. Nx ) THEN
0071 WRITE (msgBuf ,'(A,I3,A)' )
0072 & 'S/R ZONAL_FILT_INIT: Multi-tiles ( nSx*nPx=' , nSx *nPx , ' )'
0073 CALL PRINT_ERROR ( msgBuf , myThid )
0074 WRITE (msgBuf ,'(A)' )
0075 & ' in Zonal (X) dir. not implemented in Zonal-Filter code'
0076 CALL PRINT_ERROR ( msgBuf , myThid )
0077 STOP 'ABNORMAL END: S/R ZONAL_FILT_INIT'
0078 ENDIF
0079
1389d71047 Chri* 0080 _BEGIN_MASTER (myThid )
42c525bfb4 Alis* 0081
0082 DO bj =1,nSy
0c8a064d26 Jean* 0083
42c525bfb4 Alis* 0084 CALL R8FFTI1 ( Nx , FFTPACKWS2 (1,bj ), FFTPACKWS3 (1,bj ) )
0085 ENDDO
0086
0087
0088 DO bj =1,nSy
0089 DO bi =1,nSx
0090 DO j =1-oLy ,sNy +Oly
0c8a064d26 Jean* 0091 ampFactor (1,j ,bi ,bj ) = oneRL
0092 ampFactorV (1,j ,bi ,bj ) = oneRL
42c525bfb4 Alis* 0093 DO i =1,Nx /2-1
0c8a064d26 Jean* 0094 ampFactor (2*i ,j ,bi ,bj ) = ampfact ( yC (1,j ,bi ,bj ) , I )
0095
0096 ampFactor (2*I +1,j ,bi ,bj ) = ampFactor (2*i ,j ,bi ,bj )
0097 ampFactorV (2*i ,j ,bi ,bj ) = ampfact ( yG (1,j ,bi ,bj ) , I )
0098
0099 ampFactorV (2*I +1,j ,bi ,bj ) = ampFactorV (2*i ,j ,bi ,bj )
42c525bfb4 Alis* 0100 ENDDO
d4c5f8fe62 Jean* 0101
0c8a064d26 Jean* 0102 i =Nx /2
d4c5f8fe62 Jean* 0103 IF ( zonal_filt_mode2dx .EQ. 0 ) THEN
0c8a064d26 Jean* 0104 ampFactor (Nx ,j ,bi ,bj ) = ampfact ( yC (1,j ,bi ,bj ) , i )
0105 ampFactorV (Nx ,j ,bi ,bj ) = ampfact ( yG (1,j ,bi ,bj ) , i )
d4c5f8fe62 Jean* 0106 ELSE
0c8a064d26 Jean* 0107 ampFactor (Nx ,j ,bi ,bj ) = 0.
0108 ampFactorV (Nx ,j ,bi ,bj ) = 0.
d4c5f8fe62 Jean* 0109 ENDIF
0110
42c525bfb4 Alis* 0111 ENDDO
0112 ENDDO
0113 ENDDO
1389d71047 Chri* 0114 _END_MASTER (myThid )
0115 CALL BAR2 (myThid )
42c525bfb4 Alis* 0116
0117 CALL WRITE_REC_XY_RL ( 'ampFactor' , ampFactor , 1, 0, myThid )
0118
0119 #endif /* ALLOW_ZONAL_FILT */
0120
0121 RETURN
0122 END