/[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.7 by jmc, Sat Dec 4 00:15:14 2004 UTC revision 1.10 by stephd, Thu Oct 13 16:25:12 2005 UTC
# Line 80  c  freefe                 :: iron not bo Line 80  c  freefe                 :: iron not bo
80        _RL  SURC(1-OLx:sNx+OLx,1-OLy:sNy+OLy)        _RL  SURC(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
81        _RL  SURO(1-OLx:sNx+OLx,1-OLy:sNy+OLy)        _RL  SURO(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
82        _RL  BIO(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)        _RL  BIO(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
83          _RL  BIO_kar(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
84        _RL  CAR(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)        _RL  CAR(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
85        _RL  bioac(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)        _RL  bioac(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
86        _RL  pflux(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)        _RL  pflux(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
# Line 89  c  freefe                 :: iron not bo Line 90  c  freefe                 :: iron not bo
90        _RL  freefe(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)        _RL  freefe(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
91  #endif  #endif
92         INTEGER I,J,k         INTEGER I,J,k
93           INTEGER nCALCITEstep
94  CEOP  CEOP
95    
96         DO k=1,Nr         DO k=1,Nr
# Line 103  CEOP Line 105  CEOP
105             SURC(i,j)=0.d0             SURC(i,j)=0.d0
106             CAR(i,j,k)=0.d0             CAR(i,j,k)=0.d0
107             BIO(i,j,k)=0.d0             BIO(i,j,k)=0.d0
108               BIO_kar(i,j,k)=0.d0
109             bioac(i,j,k)=0.d0             bioac(i,j,k)=0.d0
110             pflux(i,j,k)=0.d0             pflux(i,j,k)=0.d0
111             cflux(i,j,k)=0.d0             cflux(i,j,k)=0.d0
# Line 151  c flux of po4 from layers with biologica Line 154  c flux of po4 from layers with biologica
154       &                    myIter,myTime,myThid)       &                    myIter,myTime,myThid)
155    
156  c carbonate  c carbonate
157    #ifdef CAR_DISS
158    c dissolution only below saturation horizon
159    c code following methid by Karsten Friis
160             nCALCITEstep = 3600
161             IF(myIter .lt. (nIter0+5) .or.
162         &               mod(myIter,nCALCITEstep) .eq. 0)THEN
163               CALL CALCITE_SATURATION(
164         I                    bi,bj,imin,imax,jmin,jmax,
165         I                    myIter,myTime,myThid)
166            ENDIF
167    c
168            CALL CAR_FLUX_OMEGA_TOP( bioac, cflux,
169         &                    bi,bj,imin,imax,jmin,jmax,
170         &                    myIter,myTime,myThid)
171    #else
172    c old OCMIP way
173          CALL CAR_FLUX( bioac, cflux,          CALL CAR_FLUX( bioac, cflux,
174       &                    bi,bj,imin,imax,jmin,jmax,       &                    bi,bj,imin,imax,jmin,jmax,
175       &                    myIter,myTime,myThid)       &                    myIter,myTime,myThid)
176    #endif
177    
178  c add all tendencies for PO4, DOP, ALK, DIC  c add all tendencies for PO4, DOP, ALK, DIC
179         DO k=1,Nr         DO k=1,Nr
# Line 167  c add all tendencies for PO4, DOP, ALK, Line 187  c add all tendencies for PO4, DOP, ALK,
187             GDOP(i,j,k)=+bioac(i,j,k)*DOPfraction             GDOP(i,j,k)=+bioac(i,j,k)*DOPfraction
188       &         - maskC(i,j,k,bi,bj)*Kdopremin*PTR_DOP(i,j,k)       &         - maskC(i,j,k,bi,bj)*Kdopremin*PTR_DOP(i,j,k)
189             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)
190               BIO_kar(i,j,k)=R_NP*bio(i,j,k)
191             GDIC(i,j,k)=car(i,j,k)+R_CP*bio(i,j,k)             GDIC(i,j,k)=car(i,j,k)+R_CP*bio(i,j,k)
192             if (PTR_O2(i,j,k).gt.o2crit) then             if (PTR_O2(i,j,k).gt.o2crit) then
193               GO2(i,j,k)=R_OP*bio(i,j,k)               GO2(i,j,k)=R_OP*bio(i,j,k)
# Line 183  c add all tendencies for PO4, DOP, ALK, Line 204  c add all tendencies for PO4, DOP, ALK,
204                 GO2(i,j,1)=GO2(i,j,1)+SURO(i,j)                 GO2(i,j,1)=GO2(i,j,1)+SURO(i,j)
205  #ifdef ALLOW_FE  #ifdef ALLOW_FE
206                 GFE(i,j,1)=GFE(i,j,1)+alpfe*                 GFE(i,j,1)=GFE(i,j,1)+alpfe*
207       &                    InputFe(i,j,bi,bj)/drF(1)       &                    InputFe(i,j,bi,bj)*recip_drF(1)
208         &                       *recip_hFacC(i,j,1,bi,bj)
209  #endif  #endif
210             ENDIF             ENDIF
211            ENDDO            ENDDO
# Line 213  C update Line 235  C update
235           ENDDO           ENDDO
236         ENDDO         ENDDO
237    
238    #ifdef ALLOW_FE
239    #ifdef MINFE
240    c find free iron and get rid of insoluble part
241           call fe_chem(bi,bj,iMin,iMax,jMin,jMax, PTR_FE, freefe,
242         &                myIter, mythid)
243    #endif
244    #endif
245    
246    
247  #ifdef ALLOW_TIMEAVE  #ifdef ALLOW_TIMEAVE
248  c save averages  c save averages
249        DO k=1,Nr        DO k=1,Nr
# Line 222  c save averages Line 253  c save averages
253       &                          BIOac(i,j,k)*deltaTclock       &                          BIOac(i,j,k)*deltaTclock
254              CARave(i,j,k,bi,bj)=CARave(i,j,k,bi,bj)+              CARave(i,j,k,bi,bj)=CARave(i,j,k,bi,bj)+
255       &                          CAR(i,j,k)*deltaTclock       &                          CAR(i,j,k)*deltaTclock
256                OmegaCave(i,j,k,bi,bj)= OmegaCave(i,j,k,bi,bj)+
257         &                           OmegaC(i,j,k,bi,bj)*deltaTclock
258                pfluxave(i,j,k,bi,bj)= pfluxave(i,j,k,bi,bj) +
259         &                           pflux(i,j,k)*deltaTclock
260                cfluxave(i,j,k,bi,bj)= cfluxave(i,j,k,bi,bj) +
261         &                           cflux(i,j,k)*deltaTclock
262              if (k.eq.1) then              if (k.eq.1) then
263                SURave(i,j,bi,bj)=SURave(i,j,bi,bj)+                SURave(i,j,bi,bj)=SURave(i,j,bi,bj)+
264       &                          SURC(i,j)*deltaTclock       &                          SURC(i,j)*deltaTclock

Legend:
Removed from v.1.7  
changed lines
  Added in v.1.10

  ViewVC Help
Powered by ViewVC 1.1.22