/[MITgcm]/MITgcm/pkg/matrix/matrix_write_tendency.F
ViewVC logotype

Contents of /MITgcm/pkg/matrix/matrix_write_tendency.F

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


Revision 1.1 - (show annotations) (download)
Mon Apr 18 19:40:31 2005 UTC (19 years, 1 month ago) by spk
Branch: MAIN
Checking in new pkg/matrix

1 C $Header$
2 C $Name$
3
4 #include "PACKAGES_CONFIG.h"
5 #include "CPP_OPTIONS.h"
6
7 C !ROUTINE MATRIX_WRITE_TENDENCY.F
8 C This routine writes both the explicit and implicit matrices
9 C to file.
10
11 SUBROUTINE MATRIX_WRITE_TENDENCY( myTime, myIter, myThid )
12
13 IMPLICIT NONE
14 #include "SIZE.h"
15 #include "EEPARAMS.h"
16 #include "PTRACERS_SIZE.h"
17 #include "PTRACERS.h"
18 #include "MATRIX.h"
19 #include "PARAMS.h"
20
21 _RL myTime
22 INTEGER myIter
23 INTEGER myThid
24
25 #ifdef ALLOW_MATRIX
26
27 INTEGER bi,bj,i,j,k,iTracer,iRec
28 CHARACTER*(MAX_LEN_MBUF) suff
29 _RL recipImpMatrixCounter, recipExpDeltaTtracer
30
31 DATA expMatrixWriteCount /0/
32 DATA impMatrixWriteCount /0/
33
34 IF ((mod(myTime-startTime,expMatrixWriteTime).EQ.(0.0 _d 0))) THEN
35 recipExpDeltaTtracer = (1. _d 0)/(expMatrixCounter*dTtracerLev(1))
36 IF (expMatrixWriteCount.EQ.0) expMatrixWriteCount=1
37 iRec=expMatrixWriteCount
38 DO iTracer=1,PTRACERS_numInUse
39 DO bj=myByLo(myThid), myByHi (myThid)
40 DO bi=myBxLo (myThid), myBxHi (myThid)
41 DO k=1,Nr
42 DO j=1-Oly, sNy+Oly
43 DO i=1-Olx, sNx+Olx
44 MATRIX(i,j,k,bi,bj,iTracer,1) =
45 & MATRIX(i,j,k,bi,bj,iTracer,1)*recipExpDeltaTtracer
46 ENDDO
47 ENDDO
48 ENDDO
49 ENDDO
50 ENDDO
51 WRITE(suff,'(A9,I2.2)') 'MATRIXEXP',iTracer
52 write(*,*)'Writing explicit matrix :',iTracer, expMatrixWriteCount, expMatrixCounter
53 CALL WRITE_REC_XYZ_RL(suff,
54 & MATRIX(1-Olx,1-Oly,1,1,1,iTracer,1),iRec,myIter,myThid)
55 ENDDO
56 expMatrixCounter=0
57 expMatrixWriteCount=expMatrixWriteCount+1
58 C Reset explicit matrix
59 DO iTracer=1,PTRACERS_numInUse
60 DO bj=myByLo(myThid), myByHi (myThid)
61 DO bi=myBxLo (myThid), myBxHi (myThid)
62 DO k=1,Nr
63 DO j=1-Oly, sNy+Oly
64 DO i=1-Olx, sNx+Olx
65 MATRIX(i,j,k,bi,bj,iTracer,1)= 0. _d 0
66 ENDDO
67 ENDDO
68 ENDDO
69 ENDDO
70 ENDDO
71 ENDDO
72 ENDIF
73
74 IF ((mod(myTime-startTime,impMatrixWriteTime).EQ.(0.0 _d 0))) THEN
75 recipImpMatrixCounter = (1. _d 0)/dble(impMatrixCounter)
76 IF (impMatrixWriteCount.EQ.0) impMatrixWriteCount=1
77 iRec=impMatrixWriteCount
78 DO iTracer=1,PTRACERS_numInUse
79 DO bj=myByLo(myThid), myByHi (myThid)
80 DO bi=myBxLo (myThid), myBxHi (myThid)
81 DO k=1,Nr
82 DO j=1-Oly, sNy+Oly
83 DO i=1-Olx, sNx+Olx
84 MATRIX(i,j,k,bi,bj,iTracer,2) =
85 & MATRIX(i,j,k,bi,bj,iTracer,2)*recipImpMatrixCounter
86 ENDDO
87 ENDDO
88 ENDDO
89 ENDDO
90 ENDDO
91 WRITE(suff,'(A9,I2.2)') 'MATRIXIMP',iTracer
92 write(*,*)'Writing implicit matrix :',iTracer, impMatrixWriteCount, impMatrixCounter
93 CALL WRITE_REC_XYZ_RL(suff,
94 & MATRIX(1-Olx,1-Oly,1,1,1,iTracer,2),iRec,myIter,myThid)
95 ENDDO
96 impMatrixCounter=0
97 impMatrixWriteCount=impMatrixWriteCount+1
98 C Reset implicit matrix
99 DO iTracer=1,PTRACERS_numInUse
100 DO bj=myByLo(myThid), myByHi (myThid)
101 DO bi=myBxLo (myThid), myBxHi (myThid)
102 DO k=1,Nr
103 DO j=1-Oly, sNy+Oly
104 DO i=1-Olx, sNx+Olx
105 MATRIX(i,j,k,bi,bj,iTracer,2)= 0. _d 0
106 ENDDO
107 ENDDO
108 ENDDO
109 ENDDO
110 ENDDO
111 ENDDO
112 ENDIF
113
114 #endif /* ALLOW_MATRIX */
115 RETURN
116 END
117

  ViewVC Help
Powered by ViewVC 1.1.22