/[MITgcm]/MITgcm/pkg/timeave/timeave_cumul_dif_1t.F
ViewVC logotype

Contents of /MITgcm/pkg/timeave/timeave_cumul_dif_1t.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.4 - (show annotations) (download)
Thu Aug 14 16:47:25 2014 UTC (11 years, 5 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint66g, checkpoint66f, checkpoint66e, checkpoint66d, checkpoint66c, checkpoint66b, checkpoint66a, checkpoint66o, checkpoint66n, checkpoint66m, checkpoint66l, checkpoint66k, checkpoint66j, checkpoint66i, checkpoint66h, checkpoint65z, checkpoint65x, checkpoint65y, checkpoint65r, checkpoint65s, checkpoint65p, checkpoint65q, checkpoint65v, checkpoint65w, checkpoint65t, checkpoint65u, checkpoint65j, checkpoint65k, checkpoint65h, checkpoint65i, checkpoint65n, checkpoint65o, checkpoint65l, checkpoint65m, checkpoint65c, checkpoint65f, checkpoint65g, checkpoint65d, checkpoint65e, HEAD
Changes since 1.3: +10 -10 lines
change gTracer argument (drop bi,bj indices) in this S/R

1 C $Header: /u/gcmpack/MITgcm/pkg/timeave/timeave_cumul_dif_1t.F,v 1.3 2005/08/19 22:50:26 heimbach Exp $
2 C $Name: $
3 #include "TIMEAVE_OPTIONS.h"
4
5 CStartofinterface
6 SUBROUTINE TIMEAVE_CUMUL_DIF_1T(
7 O fldtave,
8 I fld1, fld2, Ksize, dir, deltaTloc,
9 I bi, bj, myThid )
10 C /==========================================================*
11 C | SUBROUTINE TIMEAVE_CUMUL_DIF_1T
12 C | o Sum over time the product:
13 C | minus gradient of 1rst field x 2nd field (1 tile)
14 C \==========================================================*
15 IMPLICIT NONE
16
17 C == Global variables ===
18 #include "SIZE.h"
19 #include "EEPARAMS.h"
20 #include "GRID.h"
21
22 C == Routine arguments ==
23 C myThid - Thread number for this instance of the routine.
24 C fldtave - time averaged Field
25 C fld1,fld2 - Input Field
26 C dir - define the gradient direction: 1: X dir ; 2: Y dir ; 3: R dir
27 C Ksize - 3rd dimension of local arrays (Input and Output fields)
28 INTEGER Ksize, dir
29 _RL fld1(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Ksize)
30 _RL fld2(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Ksize)
31 _RL fldtave(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Ksize,nSx,nSy)
32 _RL deltaTloc
33 INTEGER bi, bj, myThid
34
35 CEndofinterface
36
37 #ifdef ALLOW_TIMEAVE
38 C == Local variables ==
39 C i,j,k,bi,bj - Loop counters
40 INTEGER i, j, k
41
42 IF ( dir.eq.1 ) THEN
43
44 DO k=1,Ksize
45 DO j=1,sNy
46 DO i=1,sNx
47 fldtave(i,j,k,bi,bj) = fldtave(i,j,k,bi,bj)
48 & - ( fld1(i,j,k) - fld1(i-1,j,k) )
49 & * recip_dxC(i,j,bi,bj)
50 & * fld2(i,j,k) * deltaTloc
51 ENDDO
52 ENDDO
53 ENDDO
54
55 ELSEIF ( dir.eq.2 ) THEN
56
57 DO k=1,Ksize
58 DO j=1,sNy
59 DO i=1,sNx
60 fldtave(i,j,k,bi,bj) = fldtave(i,j,k,bi,bj)
61 & - ( fld1(i,j,k) - fld1(i,j-1,k) )
62 & * recip_dyC(i,j,bi,bj)
63 & * fld2(i,j,k) * deltaTloc
64 ENDDO
65 ENDDO
66 ENDDO
67
68 ELSEIF ( dir.eq.3 ) THEN
69
70 DO k=2,Ksize
71 DO j=1,sNy
72 DO i=1,sNx
73 fldtave(i,j,k,bi,bj) = fldtave(i,j,k,bi,bj)
74 & + ( fld1(i,j,k) - fld1(i,j,k-1) )
75 & * recip_drC(k)
76 & * fld2(i,j,k) * deltaTloc
77 ENDDO
78 ENDDO
79 ENDDO
80
81 ENDIF
82
83 #endif /* ALLOW_TIMEAVE */
84
85 RETURN
86 END

  ViewVC Help
Powered by ViewVC 1.1.22