/[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.14 by stephd, Tue May 1 21:45:33 2007 UTC revision 1.15 by dfer, Fri Aug 24 16:06:25 2007 UTC
# Line 72  C  BIO                    :: tendency of Line 72  C  BIO                    :: tendency of
72  C                            exchange with DOP pool and reminerization  C                            exchange with DOP pool and reminerization
73  C  CAR                    :: carbonate changes due to biological  C  CAR                    :: carbonate changes due to biological
74  C                             productivity and reminerization  C                             productivity and reminerization
75  C  bioac                  :: biological productivity  C  BIOac                  :: biological productivity
76  C  pflux                  :: changes to PO4 due to flux and reminerlization  C  pflux                  :: changes to PO4 due to flux and reminerlization
77  c  cflux                  :: carbonate changes due to flux and reminerlization  c  cflux                  :: carbonate changes due to flux and reminerlization
78  c  freefe                 :: iron not bound to ligand  c  freefe                 :: iron not bound to ligand
# Line 86  c  freefe                 :: iron not bo Line 86  c  freefe                 :: iron not bo
86        _RL  BIO(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)        _RL  BIO(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
87        _RL  BIO_kar(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)        _RL  BIO_kar(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  pflux(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)        _RL  pflux(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
91        _RL  exportflux(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)        _RL  exportflux(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
92        _RL  cflux(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)        _RL  cflux(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
# Line 108  CEOP Line 108  CEOP
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             GDIC(i,j,k) =0. _d 0
112             GALK(i,j,k)=0.d0             GALK(i,j,k) =0. _d 0
113             GPO4(i,j,k)=0.d0             GPO4(i,j,k) =0. _d 0
114             GDOP(i,j,k)=0.d0             GDOP(i,j,k) =0. _d 0
115             SURA(i,j)=0.d0             SURA(i,j)   =0. _d 0
116             SURC(i,j)=0.d0             SURC(i,j)   =0. _d 0
117             CAR(i,j,k)=0.d0             CAR(i,j,k)  =0. _d 0
118             BIO(i,j,k)=0.d0             BIO(i,j,k)  =0. _d 0
119             BIO_kar(i,j,k)=0.d0             BIO_kar(i,j,k) =0. _d 0
120             bioac(i,j,k)=0.d0             BIOac(i,j,k)   =0. _d 0
121             pflux(i,j,k)=0.d0             pflux(i,j,k)   =0. _d 0
122             exportflux(i,j,k)=0.d0             exportflux(i,j,k)=0. _d 0
123             cflux(i,j,k)=0.d0             cflux(i,j,k)   =0. _d 0
124  #ifdef ALLOW_O2  #ifdef ALLOW_O2
125             GO2(i,j,k)=0.d0             GO2(i,j,k)     =0. _d 0
126  #endif  #endif
127  #ifdef ALLOW_FE  #ifdef ALLOW_FE
128             GFE(i,j,k)=0.d0             GFE(i,j,k)     =0. _d 0
129             freefe(i,j,k)=0.d0             freefe(i,j,k)  =0. _d 0
130  #endif  #endif
131            ENDDO            ENDDO
132           ENDDO           ENDDO
# Line 161  c biological activity Line 161  c biological activity
161  #ifdef ALLOW_FE  #ifdef ALLOW_FE
162       I           PTR_FE,       I           PTR_FE,
163  #endif  #endif
164       I           bioac,       I           BIOac,
165       I           bi,bj,imin,imax,jmin,jmax,       I           bi,bj,imin,imax,jmin,jmax,
166       I           myIter,myTime,myThid)       I           myIter,myTime,myThid)
167    
168  c flux of po4 from layers with biological activity  c flux of po4 from layers with biological activity
169         CALL PHOS_FLUX( bioac, pflux, exportflux,         CALL PHOS_FLUX( BIOac, pflux, exportflux,
170       &                    bi,bj,imin,imax,jmin,jmax,       &                    bi,bj,imin,imax,jmin,jmax,
171       &                    myIter,myTime,myThid)       &                    myIter,myTime,myThid)
172    
# Line 182  c code following methid by Karsten Friis Line 182  c code following methid by Karsten Friis
182       I                    myIter,myTime,myThid)       I                    myIter,myTime,myThid)
183          ENDIF          ENDIF
184  c  c
185          CALL CAR_FLUX_OMEGA_TOP( bioac, cflux,          CALL CAR_FLUX_OMEGA_TOP( BIOac, cflux,
186       &                    bi,bj,imin,imax,jmin,jmax,       &                    bi,bj,imin,imax,jmin,jmax,
187       &                    myIter,myTime,myThid)       &                    myIter,myTime,myThid)
188  #else  #else
189  c old OCMIP way  c old OCMIP way
190          CALL CAR_FLUX( bioac, cflux,          CALL CAR_FLUX( BIOac, cflux,
191       &                    bi,bj,imin,imax,jmin,jmax,       &                    bi,bj,imin,imax,jmin,jmax,
192       &                    myIter,myTime,myThid)       &                    myIter,myTime,myThid)
193  #endif  #endif
# Line 196  c add all tendencies for PO4, DOP, ALK, Line 196  c add all tendencies for PO4, DOP, ALK,
196         DO k=1,Nr         DO k=1,Nr
197           DO j=jmin,jmax           DO j=jmin,jmax
198            DO i=imin,imax            DO i=imin,imax
199             bio(i,j,k)=-bioac(i,j,k)+pflux(i,j,k)             bio(i,j,k)=-BIOac(i,j,k)+pflux(i,j,k)
200       &         + maskC(i,j,k,bi,bj)*Kdopremin*PTR_DOP(i,j,k)       &         + maskC(i,j,k,bi,bj)*Kdopremin*PTR_DOP(i,j,k)
201             car(i,j,k)=-bioac(i,j,k)* R_cp*rain_ratio(i,j,bi,bj)*             car(i,j,k)=-BIOac(i,j,k)* R_cp*rain_ratio(i,j,bi,bj)*
202       &                (1.0-DOPfraction)+cflux(i,j,k)       &                (1.0-DOPfraction)+cflux(i,j,k)
203             GPO4(i,j,k)=bio(i,j,k)             GPO4(i,j,k)=bio(i,j,k)
204             GDOP(i,j,k)=+bioac(i,j,k)*DOPfraction             GDOP(i,j,k)=+BIOac(i,j,k)*DOPfraction
205       &         - maskC(i,j,k,bi,bj)*Kdopremin*PTR_DOP(i,j,k)       &         - maskC(i,j,k,bi,bj)*Kdopremin*PTR_DOP(i,j,k)
206             GALK(i,j,k)=+2.d0*car(i,j,k)-R_NP*bio(i,j,k)             GALK(i,j,k)=+2.d0*car(i,j,k)-R_NP*bio(i,j,k)
207             BIO_kar(i,j,k)=R_NP*bio(i,j,k)             BIO_kar(i,j,k)=R_NP*bio(i,j,k)
# Line 269  c find free iron and get rid of insolubl Line 269  c find free iron and get rid of insolubl
269    
270  #ifdef ALLOW_TIMEAVE  #ifdef ALLOW_TIMEAVE
271  c save averages  c save averages
272          IF ( taveFreq.GT.0. ) THEN
273        DO k=1,Nr        DO k=1,Nr
274           DO j=jmin,jmax           DO j=jmin,jmax
275            DO i=imin,imax            DO i=imin,imax
276              BIOave(i,j,k,bi,bj)=BIOave(i,j,k,bi,bj)+              BIOave(i,j,k,bi,bj)   =BIOave(i,j,k,bi,bj)+
277       &                          BIOac(i,j,k)*deltaTclock       &                             BIOac(i,j,k)*deltaTclock
278              CARave(i,j,k,bi,bj)=CARave(i,j,k,bi,bj)+              CARave(i,j,k,bi,bj)   =CARave(i,j,k,bi,bj)+
279       &                          CAR(i,j,k)*deltaTclock       &                             CAR(i,j,k)*deltaTclock
280              OmegaCave(i,j,k,bi,bj)= OmegaCave(i,j,k,bi,bj)+              OmegaCave(i,j,k,bi,bj)=OmegaCave(i,j,k,bi,bj)+
281       &                           OmegaC(i,j,k,bi,bj)*deltaTclock       &                             OmegaC(i,j,k,bi,bj)*deltaTclock
282              pfluxave(i,j,k,bi,bj)= pfluxave(i,j,k,bi,bj) +              pfluxave(i,j,k,bi,bj) =pfluxave(i,j,k,bi,bj) +
283       &                           pflux(i,j,k)*deltaTclock       &                             pflux(i,j,k)*deltaTclock
284              epfluxave(i,j,k,bi,bj)= epfluxave(i,j,k,bi,bj) +              epfluxave(i,j,k,bi,bj)=epfluxave(i,j,k,bi,bj) +
285       &                           exportflux(i,j,k)*deltaTclock       &                             exportflux(i,j,k)*deltaTclock
286              cfluxave(i,j,k,bi,bj)= cfluxave(i,j,k,bi,bj) +              cfluxave(i,j,k,bi,bj) =cfluxave(i,j,k,bi,bj) +
287       &                           cflux(i,j,k)*deltaTclock       &                             cflux(i,j,k)*deltaTclock
288              if (k.eq.1) then            ENDDO
289                SURave(i,j,bi,bj)=SURave(i,j,bi,bj)+           ENDDO
290       &                          SURC(i,j)*deltaTclock        ENDDO
291  #ifdef ALLOW_O2           DO j=jmin,jmax
292                SUROave(i,j,bi,bj)=SUROave(i,j,bi,bj)+            DO i=imin,imax
293       &                           SURO(i,j)*deltaTclock                SURave(i,j,bi,bj)    =SURave(i,j,bi,bj)+
294  #endif       &                              SURC(i,j)*deltaTclock
295                pCO2ave(i,j,bi,bj)=pCO2ave(i,j,bi,bj)+  #ifdef ALLOW_O2
296       &                           pCO2(i,j,bi,bj)*deltaTclock                SUROave(i,j,bi,bj)   =SUROave(i,j,bi,bj)+
297                pHave(i,j,bi,bj)=pHave(i,j,bi,bj)+       &                              SURO(i,j)*deltaTclock
298       &                           pH(i,j,bi,bj)*deltaTclock  #endif
299                  pCO2ave(i,j,bi,bj)   =pCO2ave(i,j,bi,bj)+
300         &                              pCO2(i,j,bi,bj)*deltaTclock
301                  pHave(i,j,bi,bj)     =pHave(i,j,bi,bj)+
302         &                              pH(i,j,bi,bj)*deltaTclock
303                fluxCO2ave(i,j,bi,bj)=fluxCO2ave(i,j,bi,bj)+                fluxCO2ave(i,j,bi,bj)=fluxCO2ave(i,j,bi,bj)+
304       &                           fluxCO2(i,j,bi,bj)*deltaTclock       &                           fluxCO2(i,j,bi,bj)*deltaTclock
             endif  
305            ENDDO            ENDDO
306           ENDDO           ENDDO
       ENDDO  
307        do k=1,Nr        do k=1,Nr
308         dic_timeave(bi,bj,k)=dic_timeave(bi,bj,k)+deltaTclock         dic_timeave(bi,bj,k)=dic_timeave(bi,bj,k)+deltaTclock
309        enddo        enddo
310  #endif        ENDIF
311    #endif /* ALLOW_TIMEAVE*/
312    
313    C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
314    
315    #ifdef ALLOW_DIAGNOSTICS
316    
317          IF ( useDiagnostics ) THEN
318    
319            CALL DIAGNOSTICS_FILL(BIOac  ,'DICBIOA ',0,Nr,2,bi,bj,myThid)
320            CALL DIAGNOSTICS_FILL(CAR    ,'DICCARB ',0,Nr,2,bi,bj,myThid)
321            CALL DIAGNOSTICS_FILL(pCO2   ,'DICPCO2 ',0,1 ,1,bi,bj,myThid)
322            CALL DIAGNOSTICS_FILL(fluxCO2,'DICCFLX ',0,1 ,1,bi,bj,myThid)
323            CALL DIAGNOSTICS_FILL(pH     ,'DICPHAV ',0,1 ,1,bi,bj,myThid)
324            CALL DIAGNOSTICS_FILL(SURC   ,'DICTFLX ',0,1 ,2,bi,bj,myThid)
325    #ifdef ALLOW_O2
326            CALL DIAGNOSTICS_FILL(SURO   ,'DICOFLX ',0,1 ,2,bi,bj,myThid)
327  #endif  #endif
328  #endif  
329          ENDIF
330    
331    #endif /* ALLOW_DIAGNOSTICS */
332    
333    #endif /* DIC_BIOTIC */
334    #endif /* ALLOW_PTRACERS */
335    
336  c  c
337         RETURN         RETURN

Legend:
Removed from v.1.14  
changed lines
  Added in v.1.15

  ViewVC Help
Powered by ViewVC 1.1.22