File indexing completed on 2023-07-14 05:10:51 UTC
view on githubraw file Latest commit de57a2ec on 2023-07-13 16:55:13 UTC
0c3d35c9cd Gael*0001 #include "SMOOTH_OPTIONS.h"
0002
9f5240b52a Jean*0003 SUBROUTINE SMOOTH_CORREL2D(
0004 & fld_in, mask_in, smoothOpNb, myThid )
0c3d35c9cd Gael*0005
0006
0007
7b8b86ab99 Timo*0008
0c3d35c9cd Gael*0009
0010
0011
0012 IMPLICIT NONE
0013 #include "SIZE.h"
0014 #include "EEPARAMS.h"
0015 #include "GRID.h"
0016 #include "PARAMS.h"
0017 #include "SMOOTH.h"
0018
0019 _RL fld_in(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
9f5240b52a Jean*0020 _RS mask_in(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
0021 INTEGER smoothOpNb
0022 INTEGER myThid
0c3d35c9cd Gael*0023
9f5240b52a Jean*0024 INTEGER nbt_in
de57a2ec4b Mart*0025 CHARACTER*(MAX_LEN_FNAM) fnamegeneric
9f5240b52a Jean*0026 INTEGER i,j,bi,bj
f9d7cbfb72 Ou W*0027 INTEGER IL
0028
0029
0030 INTEGER ILNBLNK
0031 EXTERNAL ILNBLNK
0032
0033 IL = ILNBLNK( smoothDir )
0c3d35c9cd Gael*0034
0035
f9d7cbfb72 Ou W*0036 WRITE(fnamegeneric,'(2A,I3.3)')
0037 & smoothDir(1:IL),
0c3d35c9cd Gael*0038 & 'smooth2Doperator',smoothOpNb
9f5240b52a Jean*0039 CALL READ_REC_3D_RL( fnamegeneric, smoothprec,
0040 & 1, smooth2D_Kux,1,1,myThid )
0041 CALL READ_REC_3D_RL( fnamegeneric, smoothprec,
0042 & 1, smooth2D_Kvy,2,1,myThid )
0043 CALL EXCH_XY_RL( smooth2D_Kux, myThid )
0044 CALL EXCH_XY_RL( smooth2D_Kvy, myThid )
0c3d35c9cd Gael*0045
0046
f9d7cbfb72 Ou W*0047 WRITE(fnamegeneric,'(2A,I3.3)')
0048 & smoothDir(1:IL),
0049 & 'smooth2Dnorm',smoothOpNb
9f5240b52a Jean*0050 CALL READ_REC_3D_RL( fnamegeneric, smoothprec,
0051 & 1, smooth2Dnorm, 1, 1, myThid )
0052 CALL EXCH_XY_RL( smooth2Dnorm, myThid )
0c3d35c9cd Gael*0053
0054
9f5240b52a Jean*0055 DO bj=myByLo(myThid),myByHi(myThid)
0056 DO bi=myBxLo(myThid),myBxHi(myThid)
0c3d35c9cd Gael*0057 DO j = 1,sNy
7b8b86ab99 Timo*0058 DO i = 1,sNx
9f5240b52a Jean*0059 fld_in(i,j,bi,bj)=fld_in(i,j,bi,bj)
0060 & *SQRT(recip_rA(i,j,bi,bj))
0c3d35c9cd Gael*0061 ENDDO
0062 ENDDO
7b8b86ab99 Timo*0063 ENDDO
0c3d35c9cd Gael*0064 ENDDO
be12682802 Gael*0065 CALL EXCH_XY_RL ( fld_in , myThid )
0c3d35c9cd Gael*0066
0067
9f5240b52a Jean*0068 nbt_in = smooth2Dnbt(smoothOpNb)/2
0069 CALL SMOOTH_DIFF2D( fld_in, mask_in, nbt_in, myThid )
0c3d35c9cd Gael*0070
0071
9f5240b52a Jean*0072 DO bj=myByLo(myThid),myByHi(myThid)
0073 DO bi=myBxLo(myThid),myBxHi(myThid)
0c3d35c9cd Gael*0074 DO j = 1,sNy
0075 DO i = 1,sNx
9f5240b52a Jean*0076 fld_in(i,j,bi,bj) = fld_in(i,j,bi,bj)
0077 & *smooth2Dnorm(i,j,bi,bj)
0c3d35c9cd Gael*0078 ENDDO
0079 ENDDO
0080 ENDDO
0081 ENDDO
9f5240b52a Jean*0082 CALL EXCH_XY_RL( fld_in , myThid )
7b8b86ab99 Timo*0083
9f5240b52a Jean*0084 RETURN
0085 END