C $Header: /u/gcmpack/MITgcm/pkg/zonal_filt/zonal_filt_postsmooth.F,v 1.3 2001/02/04 14:38:51 cnh Exp $ C $Name: $ #include "ZONAL_FILT_OPTIONS.h" SUBROUTINE ZONAL_FILT_POSTSMOOTH( I holeMask, U field, O avgField, I lField, I myThid ) C /==========================================================\ C | S/R ZONAL_FILT_POSTSMOOTH | C | o After FFT filtering processing. | C |==========================================================| C | Restore the mean value that was removed prior to FFT. | C \==========================================================/ IMPLICIT NONE C == Global data == #include "SIZE.h" #include "EEPARAMS.h" #include "PARAMS.h" #include "GRID.h" C == Routine arguments == C holeMask - Array with 0 for holes and != 0 for valid data. C lField - Length of field to smooth (assumed periodic) C field - Field smoothed. C avgField - Mean value of the field. C myThid - Thread number of this instance of FFT_PRESMOOTH_IN_X INTEGER lField Real*8 holeMask(lField) Real*8 field(lField) Real*8 avgField INTEGER myThid #ifdef ALLOW_ZONAL_FILT C == Local variables ==== C I - Loop counter C INTEGER I C C Add fields mean value back in. DO I=1,lField IF ( holeMask(I) .NE. 0. ) THEN field(I) = field(I) + avgField ELSE field(I) = 0. ENDIF ENDDO #endif /* ALLOW_ZONAL_FILT */ RETURN END