C $Header: /u/gcmpack/MITgcm/pkg/flt/flt_down.F,v 1.5 2010/12/22 21:25:18 jahn Exp $ C $Name: $ #include "FLT_OPTIONS.h" SUBROUTINE FLT_DOWN ( I myTime, myIter, myThid ) C ================================================================== C SUBROUTINE FLT_DOWN C ================================================================== C o This routine moves particles vertical from the surface to C the target depth C ================================================================== C !USES: IMPLICIT NONE C == global variables == #include "EEPARAMS.h" #include "SIZE.h" #include "FLT_SIZE.h" #include "FLT.h" C == routine arguments == _RL myTime INTEGER myIter, myThid C == local variables == INTEGER bi, bj INTEGER ip C == end of interface == DO bj=myByLo(myThid),myByHi(myThid) DO bi=myBxLo(myThid),myBxHi(myThid) DO ip=1,npart_tile(bi,bj) IF ( & ( myTime.GE.tstart(ip,bi,bj)) & .AND. & ( tend(ip,bi,bj).EQ.-1. .OR. myTime.LE. tend(ip,bi,bj)) & .AND. & (kpart(ip,bi,bj) .LE. flt_surf) & .AND. & (iup(ip,bi,bj) .GT. 0.) & ) THEN c IF (tstart(ip,bi,bj) .NE. -1. .AND. c & myTime .GE. tstart(ip,bi,bj) .AND. c & myTime .LE. tend(ip,bi,bj) .AND. c & kpart(ip,bi,bj) .EQ. flt_surf .AND. c & iup(ip,bi,bj) .GT. 0.) THEN C move float to the target depth IF (mod(myTime,iup(ip,bi,bj)).EQ.itop(ip,bi,bj)) & kpart(ip,bi,bj) = kfloat(ip,bi,bj) ENDIF ENDDO ENDDO ENDDO RETURN END