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

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

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


Revision 1.1 - (hide 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 spk 1.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