3 |
|
|
4 |
#include "FLT_OPTIONS.h" |
#include "FLT_OPTIONS.h" |
5 |
|
|
6 |
subroutine flt_down ( |
SUBROUTINE FLT_DOWN ( |
7 |
I myCurrentIter, |
I myTime, myIter, myThid ) |
|
I myCurrentTime, |
|
|
I myThid |
|
|
& ) |
|
|
|
|
|
c ================================================================== |
|
|
c SUBROUTINE flt_down |
|
|
c ================================================================== |
|
|
c |
|
|
c o This routine moves particles vertical from the surface to |
|
|
c the target depth |
|
|
c |
|
|
c ================================================================== |
|
|
c SUBROUTINE flt_down |
|
|
c ================================================================== |
|
8 |
|
|
9 |
c == global variables == |
C ================================================================== |
10 |
|
C SUBROUTINE flt_down |
11 |
|
C ================================================================== |
12 |
|
C |
13 |
|
C o This routine moves particles vertical from the surface to |
14 |
|
C the target depth |
15 |
|
C |
16 |
|
C ================================================================== |
17 |
|
C SUBROUTINE flt_down |
18 |
|
C ================================================================== |
19 |
|
|
20 |
|
C == global variables == |
21 |
|
|
22 |
#include "EEPARAMS.h" |
#include "EEPARAMS.h" |
23 |
#include "SIZE.h" |
#include "SIZE.h" |
24 |
#include "FLT.h" |
#include "FLT.h" |
25 |
|
|
26 |
c == routine arguments == |
C == routine arguments == |
27 |
|
|
28 |
INTEGER myCurrentIter, myThid |
_RL myTime |
29 |
_RL myCurrentTime |
INTEGER myIter, myThid |
|
INTEGER bi, bj |
|
30 |
|
|
31 |
c == local variables == |
C == local variables == |
32 |
|
|
33 |
integer ip |
INTEGER bi, bj |
34 |
|
INTEGER ip |
35 |
|
|
36 |
c == end of interface == |
C == end of interface == |
37 |
|
|
38 |
|
|
39 |
DO bj=myByLo(myThid),myByHi(myThid) |
DO bj=myByLo(myThid),myByHi(myThid) |
40 |
DO bi=myBxLo(myThid),myBxHi(myThid) |
DO bi=myBxLo(myThid),myBxHi(myThid) |
41 |
|
|
42 |
do ip=1,npart_tile(bi,bj) |
DO ip=1,npart_tile(bi,bj) |
43 |
|
|
44 |
if( |
IF ( |
45 |
& ( myCurrentTime.ge.tstart(ip,bi,bj)) |
& ( myTime.GE.tstart(ip,bi,bj)) |
46 |
& .and. |
& .AND. |
47 |
& ( tend(ip,bi,bj).eq.-1. .or. myCurrentTime.le. tend(ip,bi,bj)) |
& ( tend(ip,bi,bj).EQ.-1. .OR. myTime.LE. tend(ip,bi,bj)) |
48 |
& .and. |
& .AND. |
49 |
& (kpart(ip,bi,bj) .le. flt_surf) |
& (kpart(ip,bi,bj) .LE. flt_surf) |
50 |
& .and. |
& .AND. |
51 |
& (iup(ip,bi,bj) .gt. 0.) |
& (iup(ip,bi,bj) .GT. 0.) |
52 |
& ) then |
& ) THEN |
53 |
|
|
54 |
c if(tstart(ip,bi,bj) .ne. -1. .and. |
c IF (tstart(ip,bi,bj) .NE. -1. .AND. |
55 |
c & myCurrentTime .ge. tstart(ip,bi,bj) .and. |
c & myTime .GE. tstart(ip,bi,bj) .AND. |
56 |
c & myCurrentTime .le. tend(ip,bi,bj) .and. |
c & myTime .LE. tend(ip,bi,bj) .AND. |
57 |
c & kpart(ip,bi,bj) .eq. flt_surf .and. |
c & kpart(ip,bi,bj) .EQ. flt_surf .AND. |
58 |
c & iup(ip,bi,bj) .gt. 0.) then |
c & iup(ip,bi,bj) .GT. 0.) THEN |
59 |
|
|
60 |
c move float to the target depth |
C move float to the target depth |
61 |
c |
|
62 |
if(mod(myCurrentTime,iup(ip,bi,bj)).eq.itop(ip,bi,bj)) |
IF (mod(myTime,iup(ip,bi,bj)).EQ.itop(ip,bi,bj)) |
63 |
& kpart(ip,bi,bj) = kfloat(ip,bi,bj) |
& kpart(ip,bi,bj) = kfloat(ip,bi,bj) |
64 |
|
|
65 |
endif |
ENDIF |
66 |
enddo |
ENDDO |
67 |
|
|
68 |
ENDDO |
ENDDO |
69 |
ENDDO |
ENDDO |
70 |
|
|
71 |
return |
RETURN |
72 |
end |
END |
73 |
|
|