/[MITgcm]/MITgcm/pkg/dic/dic_biotic_forcing.F
ViewVC logotype

Diff of /MITgcm/pkg/dic/dic_biotic_forcing.F

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

revision 1.5 by jmc, Tue Oct 28 22:19:53 2003 UTC revision 1.26 by dfer, Fri Oct 7 21:36:39 2011 UTC
# Line 1  Line 1 
1  C modified for external_forcing_DIC.F  August 1999  C $Header$
2  CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC  C $Name$
 c  
 c modified swd Oct 01 and Feb 02, for use as package for c40_patch1  
 c modified to use with c44 and ptracers: swd May 2002  
 c modified to have carbonate and biological influences: swd June 2002  
 C  
3    
4  #include "DIC_OPTIONS.h"  #include "DIC_OPTIONS.h"
 #include "GCHEM_OPTIONS.h"  
5    
6  CStartOfInterFace  CBOP
7    C !ROUTINE: DIC_BIOTIC_FORCING
8    
9    C !INTERFACE: ==========================================================
10        SUBROUTINE DIC_BIOTIC_FORCING( PTR_DIC, PTR_ALK, PTR_PO4,        SUBROUTINE DIC_BIOTIC_FORCING( PTR_DIC, PTR_ALK, PTR_PO4,
11       &                            PTR_DOP, PTR_O2,       &                            PTR_DOP,
12    #ifdef ALLOW_O2
13         &                            PTR_O2,
14    #endif
15  #ifdef ALLOW_FE  #ifdef ALLOW_FE
16       &                            PTR_FE,       &                            PTR_FE,
17  #endif  #endif
18       &                            bi,bj,imin,imax,jmin,jmax,       &                            bi,bj,imin,imax,jmin,jmax,
19       &                             myIter,myTime,myThid)       &                             myIter,myTime,myThid)
20    
21  C     /==========================================================\  C !DESCRIPTION:
22  C     | SUBROUTINE DIC_BIOTIC_FORCING                                   |  C updates all the tracers for the effects of air-sea exchange, biological
23  C     | o Calculate the changes to DIC through air-sea  fluxes   |    c activity and remineralization
 C     |   carbonates, and biology (parameterizes by PO4)         |  
 C     |==========================================================|  
       IMPLICIT NONE  
24    
25  C     == GLobal variables ==  C !USES: ===============================================================
26          IMPLICIT NONE
27  #include "SIZE.h"  #include "SIZE.h"
28  #include "DYNVARS.h"  #include "DYNVARS.h"
29  #include "EEPARAMS.h"  #include "EEPARAMS.h"
30  #include "PARAMS.h"  #include "PARAMS.h"
31  #include "GRID.h"  #include "GRID.h"
32  #include "DIC_BIOTIC.h"  #include "DIC_VARS.h"
33  #include "DIC_ABIOTIC.h"  #include "PTRACERS_SIZE.h"
34    #include "PTRACERS_PARAMS.h"
35  C     == Routine arguments ==  
36    C !INPUT PARAMETERS: ===================================================
37    C  myThid               :: thread number
38    C  myIter               :: current timestep
39    C  myTime               :: current time
40    C  PTR_DIC              :: dissolced inorganic carbon
41    C  PTR_ALK              :: alkalinity
42    C  PTR_PO4              :: phosphate
43    c  PTR_DOP              :: dissolve organic phosphurous
44    c  PTR_O2               :: oxygen
45    C  PTR_FE               :: iron
46        INTEGER myIter        INTEGER myIter
47        _RL myTime        _RL myTime
48        INTEGER myThid        INTEGER myThid
# Line 42  C     == Routine arguments == Line 50  C     == Routine arguments ==
50        _RL  PTR_ALK(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)        _RL  PTR_ALK(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
51        _RL  PTR_PO4(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)        _RL  PTR_PO4(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
52        _RL  PTR_DOP(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)        _RL  PTR_DOP(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
53    #ifdef ALLOW_O2
54        _RL  PTR_O2(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)        _RL  PTR_O2(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
55    #endif
56  #ifdef ALLOW_FE  #ifdef ALLOW_FE
57        _RL  PTR_FE(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)        _RL  PTR_FE(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
58  #endif  #endif
# Line 50  C     == Routine arguments == Line 60  C     == Routine arguments ==
60    
61  #ifdef ALLOW_PTRACERS  #ifdef ALLOW_PTRACERS
62  #ifdef DIC_BIOTIC  #ifdef DIC_BIOTIC
63  C     == Local variables ==  
64    C !LOCAL VARIABLES: ====================================================
65    C  i,j,k                  :: loop indices
66    C  G*                     :: tendency term for the tracers
67    C  SURA                   :: tendency of alkalinity due to freshwater
68    C  SURC                   :: tendency of DIC due to air-sea exchange
69    C                            and virtual flux
70    C  SURO                   :: tendency of O2 due to air-sea exchange
71    C  GPO4                   :: tendency of PO4 due to biological productivity,
72    C                            exchange with DOP pool and reminerization
73    C  CAR                    :: carbonate changes due to biological
74    C                             productivity and remineralization
75    C  BIOac                  :: biological productivity
76    C  RDOP                   :: DOP sink due to remineralization
77    C  pflux                  :: changes to PO4 due to flux and remineralization
78    C  CAR_S                  :: carbonate sink
79    C  cflux                  :: carbonate changes due to flux and remineralization
80    C  freefe                 :: iron not bound to ligand
81        _RL  GDIC(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)        _RL  GDIC(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
82        _RL  GALK(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)        _RL  GALK(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
83        _RL  GPO4(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)        _RL  GPO4(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
84        _RL  GDOP(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)        _RL  GDOP(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
       _RL  GO2(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)  
85        _RL  SURA(1-OLx:sNx+OLx,1-OLy:sNy+OLy)        _RL  SURA(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
86        _RL  SURC(1-OLx:sNx+OLx,1-OLy:sNy+OLy)        _RL  SURC(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
87        _RL  SURO(1-OLx:sNx+OLx,1-OLy:sNy+OLy)        _RL  SURO(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
       _RL  BIO(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)  
88        _RL  CAR(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)        _RL  CAR(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
89        _RL  bioac(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)        _RL  BIOac(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
90          _RL  RDOP(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
91        _RL  pflux(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)        _RL  pflux(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
92          _RL  exportflux(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
93          _RL  CAR_S(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
94        _RL  cflux(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)        _RL  cflux(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
95    #ifdef ALLOW_O2
96          _RL  GO2(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
97    #endif
98  #ifdef ALLOW_FE  #ifdef ALLOW_FE
99        _RL  GFE(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)        _RL  GFE(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
100        _RL  freefe(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)        _RL  freefe(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
101  #endif  #endif
102         INTEGER I,J,k         INTEGER i,j,k
103    #ifdef CAR_DISS
104           INTEGER nCALCITEstep
105    #endif
106    CEOP
107    
108         DO k=1,Nr         DO k=1,Nr
109           DO j=1-OLy,sNy+OLy           DO j=1-OLy,sNy+OLy
110            DO i=1-OLx,sNx+OLx            DO i=1-OLx,sNx+OLx
111             GDIC(i,j,k)=0.d0             RDOP(i,j,k) =0. _d 0
112             GALK(i,j,k)=0.d0             GDIC(i,j,k) =0. _d 0
113             GPO4(i,j,k)=0.d0             GALK(i,j,k) =0. _d 0
114             GDOP(i,j,k)=0.d0             GPO4(i,j,k) =0. _d 0
115             GO2(i,j,k)=0.d0             GDOP(i,j,k) =0. _d 0
116             SURA(i,j)=0.d0             CAR(i,j,k)  =0. _d 0
117             SURC(i,j)=0.d0             BIOac(i,j,k)   =0. _d 0
118             CAR(i,j,k)=0.d0             pflux(i,j,k)   =0. _d 0
119             BIO(i,j,k)=0.d0             exportflux(i,j,k)=0. _d 0
120             bioac(i,j,k)=0.d0             cflux(i,j,k)   =0. _d 0
121             pflux(i,j,k)=0.d0             CAR_S(i,j,k)   =0. _d 0
122             cflux(i,j,k)=0.d0  #ifdef ALLOW_O2
123               GO2(i,j,k)     =0. _d 0
124    #endif
125  #ifdef ALLOW_FE  #ifdef ALLOW_FE
126             GFE(i,j,k)=0.d0             GFE(i,j,k)     =0. _d 0
127             freefe(i,j,k)=0.d0             freefe(i,j,k)  =0. _d 0
128  #endif  #endif
129            ENDDO            ENDDO
130           ENDDO           ENDDO
131         ENDDO         ENDDO
132             DO j=1-OLy,sNy+OLy
133              DO i=1-OLx,sNx+OLx
134               SURA(i,j)   =0. _d 0
135               SURC(i,j)   =0. _d 0
136               SURO(i,j)   =0. _d 0
137              ENDDO
138             ENDDO
139    
140  c carbon air-sea interaction  C carbon air-sea interaction
141         CALL DIC_SURFFORCING( PTR_DIC, SURC,         CALL DIC_SURFFORCING( PTR_DIC, PTR_ALK, PTR_PO4, SURC,
142       &                    bi,bj,imin,imax,jmin,jmax,       &                    bi,bj,imin,imax,jmin,jmax,
143       &                    myIter,myTime,myThid)       &                    myIter,myTime,myThid)
144    
145  c alkalinity air-sea interaction  C alkalinity air-sea interaction
146         CALL ALK_SURFFORCING( PTR_ALK, SURA,         CALL ALK_SURFFORCING( PTR_ALK, SURA,
147       &                    bi,bj,imin,imax,jmin,jmax,       &                    bi,bj,imin,imax,jmin,jmax,
148       &                    myIter,myTime,myThid)       &                    myIter,myTime,myThid)
149    
150  c carbon air-sea interaction  #ifdef ALLOW_O2
151    C oxygen air-sea interaction
152         CALL O2_SURFFORCING( PTR_O2, SURO,         CALL O2_SURFFORCING( PTR_O2, SURO,
153       &                    bi,bj,imin,imax,jmin,jmax,       &                    bi,bj,imin,imax,jmin,jmax,
154       &                    myIter,myTime,myThid)       &                    myIter,myTime,myThid)
155    #endif
156    
157  #ifdef ALLOW_FE  #ifdef ALLOW_FE
158  c find free iron  C find free iron
159         call fe_chem(bi,bj,iMin,iMax,jMin,jMax, PTR_FE, freefe,         CALL FE_CHEM(bi,bj,iMin,iMax,jMin,jMax, PTR_FE, freefe,
160       &                myIter, mythid)       &                myIter, mythid)
161  #endif  #endif
162    
163    
164  c biological activity  C biological activity
165         CALL BIO_EXPORT( PTR_PO4 ,         CALL BIO_EXPORT( PTR_PO4 ,
166  #ifdef ALLOW_FE  #ifdef ALLOW_FE
167       I           PTR_FE,       I           PTR_FE,
168  #endif  #endif
169       I           bioac,       I           BIOac,
170       I           bi,bj,imin,imax,jmin,jmax,       I           bi,bj,imin,imax,jmin,jmax,
171       I           myIter,myTime,myThid)       I           myIter,myTime,myThid)
172    
173  c flux of po4 from layers with biological activity  C flux of po4 from layers with biological activity
174         CALL PHOS_FLUX( bioac, pflux,         CALL PHOS_FLUX( BIOac, pflux, exportflux,
175       &                    bi,bj,imin,imax,jmin,jmax,       &                    bi,bj,imin,imax,jmin,jmax,
176       &                    myIter,myTime,myThid)       &                    myIter,myTime,myThid)
177    
178  c carbonate  C- Carbonate sink
179          CALL CAR_FLUX( bioac, cflux,         DO k=1,Nr
180             DO j=jmin,jmax
181              DO i=imin,imax
182                 CAR_S(i,j,k)=BIOac(i,j,k)*R_CP*rain_ratio(i,j,bi,bj)*
183         &                    (1. _d 0-DOPfraction)
184              ENDDO
185             ENDDO
186           ENDDO
187    
188    C carbonate
189    #ifdef CAR_DISS
190    C dissolution only below saturation horizon
191    C code following method by Karsten Friis
192             nCALCITEstep = 3600
193             IF(myIter .lt. (nIter0+5) .or.
194         &               mod(myIter,nCALCITEstep) .eq. 0)THEN
195               CALL CALCITE_SATURATION(PTR_DIC, PTR_ALK, PTR_PO4,
196         I                    bi,bj,imin,imax,jmin,jmax,
197         I                    myIter,myTime,myThid)
198            ENDIF
199    c
200            CALL CAR_FLUX_OMEGA_TOP( BIOac, cflux,
201       &                    bi,bj,imin,imax,jmin,jmax,       &                    bi,bj,imin,imax,jmin,jmax,
202       &                    myIter,myTime,myThid)       &                    myIter,myTime,myThid)
203    #else
204    C old OCMIP way
205            CALL CAR_FLUX( CAR_S, cflux,
206         &                    bi,bj,imin,imax,jmin,jmax,
207         &                    myIter,myTime,myThid)
208    #endif
209    
210  c add all tendencies for PO4, DOP, ALK, DIC  C add all tendencies for PO4, DOP, ALK, DIC
211         DO k=1,Nr         DO k=1,Nr
212           DO j=1-OLy,sNy+OLy           DO j=jmin,jmax
213            DO i=1-OLx,sNx+OLx            DO i=imin,imax
214             bio(i,j,k)=-bioac(i,j,k)+pflux(i,j,k)  #ifdef DIC_NO_NEG
215       &         + maskC(i,j,k,bi,bj)*Kdopremin*PTR_DOP(i,j,k)             RDOP(i,j,k)= MAX(maskC(i,j,k,bi,bj)*KDOPRemin*PTR_DOP(i,j,k)
216             car(i,j,k)=-bioac(i,j,k)* R_cp*rain_ratio(i,j,bi,bj)*       &                     ,0. _d 0)
217       &                (1.0-DOPfraction)+cflux(i,j,k)  #else
218             GPO4(i,j,k)=bio(i,j,k)             RDOP(i,j,k)= maskC(i,j,k,bi,bj)*KDOPRemin*PTR_DOP(i,j,k)
219             GDOP(i,j,k)=+bioac(i,j,k)*DOPfraction  #endif
220       &         - maskC(i,j,k,bi,bj)*Kdopremin*PTR_DOP(i,j,k)             GPO4(i,j,k)=-BIOac(i,j,k)+pflux(i,j,k) + RDOP(i,j,k)
221             GALK(i,j,k)=+2.d0*car(i,j,k)-R_NP*bio(i,j,k)  
222             GDIC(i,j,k)=car(i,j,k)+R_CP*bio(i,j,k)             car(i,j,k) = cflux(i,j,k) - CAR_S(i,j,k)
223             if (PTR_O2(i,j,k).gt.o2crit) then  
224               GO2(i,j,k)=R_OP*bio(i,j,k)             GDOP(i,j,k)=+BIOac(i,j,k)*DOPfraction - RDOP(i,j,k)
225    
226               GALK(i,j,k)=+2. _d 0 *car(i,j,k)-R_NP*GPO4(i,j,k)
227    
228               GDIC(i,j,k)=car(i,j,k)+R_CP*GPO4(i,j,k)
229    
230    #ifdef ALLOW_O2
231               if (PTR_O2(i,j,k).GT.O2crit) then
232                 GO2(i,j,k)= R_OP*GPO4(i,j,k)
233             else             else
234               GO2(i,j,k)=0.d0               GO2(i,j,k)= 0. _d 0
235             endif             endif
236    #endif
237  #ifdef ALLOW_FE  #ifdef ALLOW_FE
238             GFE(i,j,k)=R_FeP*bio(i,j,k)             GFE(i,j,k) = R_FeP*GPO4(i,j,k)
239       &             -Kscav*freefe(i,j,k)       &                 -Kscav*freefe(i,j,k)
240  #endif  #endif
241             IF (K.eq.1) then            ENDDO
242             ENDDO
243           ENDDO
244    
245             DO j=jmin,jmax
246              DO i=imin,imax
247                 GALK(i,j,1)=GALK(i,j,1)+SURA(i,j)                 GALK(i,j,1)=GALK(i,j,1)+SURA(i,j)
248                 GDIC(i,j,1)=GDIC(i,j,1)+SURC(i,j)                 GDIC(i,j,1)=GDIC(i,j,1)+SURC(i,j)
249                 GO2(i,j,1)=GO2(i,j,1)+SURO(i,j)  #ifdef ALLOW_O2
250                   GO2(i,j,1) =GO2(i,j,1)+SURO(i,j)
251    #endif
252  #ifdef ALLOW_FE  #ifdef ALLOW_FE
253                 GFE(i,j,1)=GFE(i,j,1)+alpfe*                 GFE(i,j,1)=GFE(i,j,1)+alpfe*
254       &                    InputFe(i,j,bi,bj)/drF(1)       &                    InputFe(i,j,bi,bj)*recip_drF(1)
255         &                       *recip_hFacC(i,j,1,bi,bj)
256  #endif  #endif
            ENDIF  
257            ENDDO            ENDDO
258           ENDDO           ENDDO
        ENDDO  
259    
260    
261  C update  C update
262         DO k=1,Nr         DO k=1,Nr
263           DO j=1-OLy,sNy+OLy           DO j=jmin,jmax
264            DO i=1-OLx,sNx+OLx            DO i=imin,imax
265             PTR_DIC(i,j,k)=             PTR_DIC(i,j,k)=
266       &      PTR_DIC(i,j,k)+GDIC(i,j,k)*deltaTtracer       &      PTR_DIC(i,j,k)+GDIC(i,j,k)*PTRACERS_dTLev(k)
267             PTR_ALK(i,j,k)=             PTR_ALK(i,j,k)=
268       &      PTR_ALK(i,j,k)+GALK(i,j,k)*deltaTtracer       &      PTR_ALK(i,j,k)+GALK(i,j,k)*PTRACERS_dTLev(k)
269             PTR_PO4(i,j,k)=             PTR_PO4(i,j,k)=
270       &      PTR_PO4(i,j,k)+GPO4(i,j,k)*deltaTtracer       &      PTR_PO4(i,j,k)+GPO4(i,j,k)*PTRACERS_dTLev(k)
271             PTR_DOP(i,j,k)=             PTR_DOP(i,j,k)=
272       &      PTR_DOP(i,j,k)+GDOP(i,j,k)*deltaTtracer       &      PTR_DOP(i,j,k)+GDOP(i,j,k)*PTRACERS_dTLev(k)
273    #ifdef ALLOW_O2
274             PTR_O2(i,j,k)=             PTR_O2(i,j,k)=
275       &      PTR_O2(i,j,k)+GO2(i,j,k)*deltaTtracer       &      PTR_O2(i,j,k)+GO2(i,j,k)*PTRACERS_dTLev(k)
276    #endif
277  #ifdef ALLOW_FE  #ifdef ALLOW_FE
278             PTR_FE(i,j,k)=             PTR_FE(i,j,k)=
279       &      PTR_FE(i,j,k)+GFE(i,j,k)*deltaTtracer       &      PTR_FE(i,j,k)+GFE(i,j,k)*PTRACERS_dTLev(k)
280  #endif  #endif
281            ENDDO            ENDDO
282           ENDDO           ENDDO
283         ENDDO         ENDDO
284    
285  #ifdef ALLOW_TIMEAVE  #ifdef ALLOW_FE
286  c save averages  #ifdef MINFE
287        DO k=1,Nr  c find free iron and get rid of insoluble part
288           DO j=1-OLy,sNy+OLy         call fe_chem(bi,bj,iMin,iMax,jMin,jMax, PTR_FE, freefe,
289            DO i=1-OLx,sNx+OLx       &                myIter, mythid)
290              BIOave(i,j,k,bi,bj)=BIOave(i,j,k,bi,bj)+  #endif
291       &                          BIOac(i,j,k)*deltaTclock  #endif
292              CARave(i,j,k,bi,bj)=CARave(i,j,k,bi,bj)+  
293       &                          CAR(i,j,k)*deltaTclock  
294              if (k.eq.1) then  #ifdef ALLOW_TIMEAVE
295                SURave(i,j,bi,bj)=SURave(i,j,bi,bj)+  C save averages
296       &                          SURC(i,j)*deltaTclock         IF ( taveFreq.GT.0. ) THEN
297                SUROave(i,j,bi,bj)=SUROave(i,j,bi,bj)+          DO k=1,Nr
298       &                           SURO(i,j)*deltaTclock           DO j=jmin,jmax
299                pCO2ave(i,j,bi,bj)=pCO2ave(i,j,bi,bj)+            DO i=imin,imax
300       &                           pCO2(i,j,bi,bj)*deltaTclock              BIOave(i,j,k,bi,bj)   =BIOave(i,j,k,bi,bj)+
301                pHave(i,j,bi,bj)=pHave(i,j,bi,bj)+       &                             BIOac(i,j,k)*deltaTclock
302       &                           pH(i,j,bi,bj)*deltaTclock              CARave(i,j,k,bi,bj)   =CARave(i,j,k,bi,bj)+
303         &                             CAR(i,j,k)*deltaTclock
304                OmegaCave(i,j,k,bi,bj)=OmegaCave(i,j,k,bi,bj)+
305         &                             OmegaC(i,j,k,bi,bj)*deltaTclock
306                pfluxave(i,j,k,bi,bj) =pfluxave(i,j,k,bi,bj) +
307         &                             pflux(i,j,k)*deltaTclock
308                epfluxave(i,j,k,bi,bj)=epfluxave(i,j,k,bi,bj) +
309         &                             exportflux(i,j,k)*deltaTclock
310                cfluxave(i,j,k,bi,bj) =cfluxave(i,j,k,bi,bj) +
311         &                             cflux(i,j,k)*deltaTclock
312              ENDDO
313             ENDDO
314            ENDDO
315             DO j=jmin,jmax
316              DO i=imin,imax
317                  SURave(i,j,bi,bj)    =SURave(i,j,bi,bj)+
318         &                              SURC(i,j)*deltaTclock
319    #ifdef ALLOW_O2
320                  SUROave(i,j,bi,bj)   =SUROave(i,j,bi,bj)+
321         &                              SURO(i,j)*deltaTclock
322    #endif
323                  pCO2ave(i,j,bi,bj)   =pCO2ave(i,j,bi,bj)+
324         &                              pCO2(i,j,bi,bj)*deltaTclock
325                  pHave(i,j,bi,bj)     =pHave(i,j,bi,bj)+
326         &                              pH(i,j,bi,bj)*deltaTclock
327                fluxCO2ave(i,j,bi,bj)=fluxCO2ave(i,j,bi,bj)+                fluxCO2ave(i,j,bi,bj)=fluxCO2ave(i,j,bi,bj)+
328       &                           fluxCO2(i,j,bi,bj)*deltaTclock       &                           fluxCO2(i,j,bi,bj)*deltaTclock
             endif  
329            ENDDO            ENDDO
330           ENDDO           ENDDO
331        ENDDO           DIC_timeAve(bi,bj) = DIC_timeAve(bi,bj)+deltaTclock
332        do k=1,Nr         ENDIF
333         dic_timeave(bi,bj,k)=dic_timeave(bi,bj,k)+deltaTclock  #endif /* ALLOW_TIMEAVE*/
       enddo  
 #endif  
334    
335  #endif  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
336    
337    #ifdef ALLOW_DIAGNOSTICS
338    
339          IF ( useDiagnostics ) THEN
340    
341            CALL DIAGNOSTICS_FILL(BIOac  ,'DICBIOA ',0,Nr,2,bi,bj,myThid)
342            CALL DIAGNOSTICS_FILL(CAR    ,'DICCARB ',0,Nr,2,bi,bj,myThid)
343            CALL DIAGNOSTICS_FILL(pCO2   ,'DICPCO2 ',0,1 ,1,bi,bj,myThid)
344            CALL DIAGNOSTICS_FILL(fluxCO2,'DICCFLX ',0,1 ,1,bi,bj,myThid)
345            CALL DIAGNOSTICS_FILL(pH     ,'DICPHAV ',0,1 ,1,bi,bj,myThid)
346            CALL DIAGNOSTICS_FILL(SURC   ,'DICTFLX ',0,1 ,2,bi,bj,myThid)
347    #ifdef ALLOW_O2
348            CALL DIAGNOSTICS_FILL(SURO   ,'DICOFLX ',0,1 ,2,bi,bj,myThid)
349  #endif  #endif
350    
351  c        ENDIF
352    
353    #endif /* ALLOW_DIAGNOSTICS */
354    
355    #endif /* DIC_BIOTIC */
356    #endif /* ALLOW_PTRACERS */
357    
358         RETURN         RETURN
359         END         END

Legend:
Removed from v.1.5  
changed lines
  Added in v.1.26

  ViewVC Help
Powered by ViewVC 1.1.22