1 |
jahn |
1.5 |
C $Header: /u/gcmpack/MITgcm/pkg/flt/flt_down.F,v 1.4 2009/02/01 20:48:50 jmc Exp $ |
2 |
jmc |
1.2 |
C $Name: $ |
3 |
adcroft |
1.1 |
|
4 |
jmc |
1.2 |
#include "FLT_OPTIONS.h" |
5 |
adcroft |
1.1 |
|
6 |
jmc |
1.3 |
SUBROUTINE FLT_DOWN ( |
7 |
|
|
I myTime, myIter, myThid ) |
8 |
adcroft |
1.1 |
|
9 |
jmc |
1.3 |
C ================================================================== |
10 |
jmc |
1.4 |
C SUBROUTINE FLT_DOWN |
11 |
jmc |
1.3 |
C ================================================================== |
12 |
|
|
C o This routine moves particles vertical from the surface to |
13 |
|
|
C the target depth |
14 |
|
|
C ================================================================== |
15 |
jmc |
1.4 |
|
16 |
|
|
C !USES: |
17 |
|
|
IMPLICIT NONE |
18 |
jmc |
1.3 |
|
19 |
|
|
C == global variables == |
20 |
adcroft |
1.1 |
#include "EEPARAMS.h" |
21 |
|
|
#include "SIZE.h" |
22 |
jahn |
1.5 |
#include "FLT_SIZE.h" |
23 |
adcroft |
1.1 |
#include "FLT.h" |
24 |
|
|
|
25 |
jmc |
1.3 |
C == routine arguments == |
26 |
|
|
_RL myTime |
27 |
|
|
INTEGER myIter, myThid |
28 |
adcroft |
1.1 |
|
29 |
jmc |
1.3 |
C == local variables == |
30 |
|
|
INTEGER bi, bj |
31 |
|
|
INTEGER ip |
32 |
adcroft |
1.1 |
|
33 |
jmc |
1.3 |
C == end of interface == |
34 |
adcroft |
1.1 |
|
35 |
|
|
DO bj=myByLo(myThid),myByHi(myThid) |
36 |
jmc |
1.4 |
DO bi=myBxLo(myThid),myBxHi(myThid) |
37 |
adcroft |
1.1 |
|
38 |
jmc |
1.4 |
DO ip=1,npart_tile(bi,bj) |
39 |
adcroft |
1.1 |
|
40 |
jmc |
1.3 |
IF ( |
41 |
|
|
& ( myTime.GE.tstart(ip,bi,bj)) |
42 |
|
|
& .AND. |
43 |
|
|
& ( tend(ip,bi,bj).EQ.-1. .OR. myTime.LE. tend(ip,bi,bj)) |
44 |
|
|
& .AND. |
45 |
|
|
& (kpart(ip,bi,bj) .LE. flt_surf) |
46 |
|
|
& .AND. |
47 |
|
|
& (iup(ip,bi,bj) .GT. 0.) |
48 |
|
|
& ) THEN |
49 |
|
|
|
50 |
|
|
c IF (tstart(ip,bi,bj) .NE. -1. .AND. |
51 |
|
|
c & myTime .GE. tstart(ip,bi,bj) .AND. |
52 |
|
|
c & myTime .LE. tend(ip,bi,bj) .AND. |
53 |
|
|
c & kpart(ip,bi,bj) .EQ. flt_surf .AND. |
54 |
|
|
c & iup(ip,bi,bj) .GT. 0.) THEN |
55 |
|
|
|
56 |
|
|
C move float to the target depth |
57 |
|
|
|
58 |
jmc |
1.4 |
IF (mod(myTime,iup(ip,bi,bj)).EQ.itop(ip,bi,bj)) |
59 |
adcroft |
1.1 |
& kpart(ip,bi,bj) = kfloat(ip,bi,bj) |
60 |
|
|
|
61 |
jmc |
1.3 |
ENDIF |
62 |
jmc |
1.4 |
ENDDO |
63 |
adcroft |
1.1 |
|
64 |
jmc |
1.4 |
ENDDO |
65 |
adcroft |
1.1 |
ENDDO |
66 |
|
|
|
67 |
jmc |
1.3 |
RETURN |
68 |
|
|
END |
69 |
adcroft |
1.1 |
|