/[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.13 by stephd, Tue Dec 12 22:37:28 2006 UTC revision 1.14 by stephd, Tue May 1 21:45:33 2007 UTC
# Line 9  C !ROUTINE: DIC_BIOTIC_FORCING Line 9  C !ROUTINE: DIC_BIOTIC_FORCING
9    
10  C !INTERFACE: ==========================================================  C !INTERFACE: ==========================================================
11        SUBROUTINE DIC_BIOTIC_FORCING( PTR_DIC, PTR_ALK, PTR_PO4,        SUBROUTINE DIC_BIOTIC_FORCING( PTR_DIC, PTR_ALK, PTR_PO4,
12       &                            PTR_DOP, PTR_O2,       &                            PTR_DOP,
13    #ifdef ALLOW_O2
14         &                            PTR_O2,
15    #endif
16  #ifdef ALLOW_FE  #ifdef ALLOW_FE
17       &                            PTR_FE,       &                            PTR_FE,
18  #endif  #endif
# Line 47  C  PTR_FE               :: iron Line 50  C  PTR_FE               :: iron
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 75  c  freefe                 :: iron not bo Line 80  c  freefe                 :: iron not bo
80        _RL  GALK(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)        _RL  GALK(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
81        _RL  GPO4(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)        _RL  GPO4(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
82        _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)  
83        _RL  SURA(1-OLx:sNx+OLx,1-OLy:sNy+OLy)        _RL  SURA(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
84        _RL  SURC(1-OLx:sNx+OLx,1-OLy:sNy+OLy)        _RL  SURC(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
85        _RL  SURO(1-OLx:sNx+OLx,1-OLy:sNy+OLy)        _RL  SURO(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
# Line 86  c  freefe                 :: iron not bo Line 90  c  freefe                 :: iron not bo
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)
93    #ifdef ALLOW_O2
94          _RL  GO2(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
95    #endif
96  #ifdef ALLOW_FE  #ifdef ALLOW_FE
97        _RL  GFE(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)        _RL  GFE(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
98        _RL  freefe(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)        _RL  freefe(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
# Line 105  CEOP Line 112  CEOP
112             GALK(i,j,k)=0.d0             GALK(i,j,k)=0.d0
113             GPO4(i,j,k)=0.d0             GPO4(i,j,k)=0.d0
114             GDOP(i,j,k)=0.d0             GDOP(i,j,k)=0.d0
            GO2(i,j,k)=0.d0  
115             SURA(i,j)=0.d0             SURA(i,j)=0.d0
116             SURC(i,j)=0.d0             SURC(i,j)=0.d0
117             CAR(i,j,k)=0.d0             CAR(i,j,k)=0.d0
# Line 115  CEOP Line 121  CEOP
121             pflux(i,j,k)=0.d0             pflux(i,j,k)=0.d0
122             exportflux(i,j,k)=0.d0             exportflux(i,j,k)=0.d0
123             cflux(i,j,k)=0.d0             cflux(i,j,k)=0.d0
124    #ifdef ALLOW_O2
125               GO2(i,j,k)=0.d0
126    #endif
127  #ifdef ALLOW_FE  #ifdef ALLOW_FE
128             GFE(i,j,k)=0.d0             GFE(i,j,k)=0.d0
129             freefe(i,j,k)=0.d0             freefe(i,j,k)=0.d0
# Line 133  c alkalinity air-sea interaction Line 142  c alkalinity air-sea interaction
142       &                    bi,bj,imin,imax,jmin,jmax,       &                    bi,bj,imin,imax,jmin,jmax,
143       &                    myIter,myTime,myThid)       &                    myIter,myTime,myThid)
144    
145  c carbon air-sea interaction  #ifdef ALLOW_O2
146    c oxygen air-sea interaction
147         CALL O2_SURFFORCING( PTR_O2, SURO,         CALL O2_SURFFORCING( PTR_O2, SURO,
148       &                    bi,bj,imin,imax,jmin,jmax,       &                    bi,bj,imin,imax,jmin,jmax,
149       &                    myIter,myTime,myThid)       &                    myIter,myTime,myThid)
150    #endif
151    
152  #ifdef ALLOW_FE  #ifdef ALLOW_FE
153  c find free iron  c find free iron
# Line 195  c add all tendencies for PO4, DOP, ALK, Line 206  c add all tendencies for PO4, DOP, ALK,
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)
208             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)
209    #ifdef ALLOW_O2
210             if (PTR_O2(i,j,k).gt.o2crit) then             if (PTR_O2(i,j,k).gt.o2crit) then
211               GO2(i,j,k)=R_OP*bio(i,j,k)               GO2(i,j,k)=R_OP*bio(i,j,k)
212             else             else
213               GO2(i,j,k)=0.d0               GO2(i,j,k)=0.d0
214             endif             endif
215    #endif
216  #ifdef ALLOW_FE  #ifdef ALLOW_FE
217             GFE(i,j,k)=R_FeP*bio(i,j,k)             GFE(i,j,k)=R_FeP*bio(i,j,k)
218       &             -Kscav*freefe(i,j,k)       &             -Kscav*freefe(i,j,k)
# Line 207  c add all tendencies for PO4, DOP, ALK, Line 220  c add all tendencies for PO4, DOP, ALK,
220             IF (K.eq.1) then             IF (K.eq.1) then
221                 GALK(i,j,1)=GALK(i,j,1)+SURA(i,j)                 GALK(i,j,1)=GALK(i,j,1)+SURA(i,j)
222                 GDIC(i,j,1)=GDIC(i,j,1)+SURC(i,j)                 GDIC(i,j,1)=GDIC(i,j,1)+SURC(i,j)
223    #ifdef ALLOW_O2
224                 GO2(i,j,1)=GO2(i,j,1)+SURO(i,j)                 GO2(i,j,1)=GO2(i,j,1)+SURO(i,j)
225    #endif
226  #ifdef ALLOW_FE  #ifdef ALLOW_FE
227                 GFE(i,j,1)=GFE(i,j,1)+alpfe*                 GFE(i,j,1)=GFE(i,j,1)+alpfe*
228       &                    InputFe(i,j,bi,bj)*recip_drF(1)       &                    InputFe(i,j,bi,bj)*recip_drF(1)
# Line 231  C update Line 246  C update
246       &      PTR_PO4(i,j,k)+GPO4(i,j,k)*dTtracerLev(k)       &      PTR_PO4(i,j,k)+GPO4(i,j,k)*dTtracerLev(k)
247             PTR_DOP(i,j,k)=             PTR_DOP(i,j,k)=
248       &      PTR_DOP(i,j,k)+GDOP(i,j,k)*dTtracerLev(k)       &      PTR_DOP(i,j,k)+GDOP(i,j,k)*dTtracerLev(k)
249    #ifdef ALLOW_O2
250             PTR_O2(i,j,k)=             PTR_O2(i,j,k)=
251       &      PTR_O2(i,j,k)+GO2(i,j,k)*dTtracerLev(k)       &      PTR_O2(i,j,k)+GO2(i,j,k)*dTtracerLev(k)
252    #endif
253  #ifdef ALLOW_FE  #ifdef ALLOW_FE
254             PTR_FE(i,j,k)=             PTR_FE(i,j,k)=
255       &      PTR_FE(i,j,k)+GFE(i,j,k)*dTtracerLev(k)       &      PTR_FE(i,j,k)+GFE(i,j,k)*dTtracerLev(k)
# Line 270  c save averages Line 287  c save averages
287              if (k.eq.1) then              if (k.eq.1) then
288                SURave(i,j,bi,bj)=SURave(i,j,bi,bj)+                SURave(i,j,bi,bj)=SURave(i,j,bi,bj)+
289       &                          SURC(i,j)*deltaTclock       &                          SURC(i,j)*deltaTclock
290    #ifdef ALLOW_O2
291                SUROave(i,j,bi,bj)=SUROave(i,j,bi,bj)+                SUROave(i,j,bi,bj)=SUROave(i,j,bi,bj)+
292       &                           SURO(i,j)*deltaTclock       &                           SURO(i,j)*deltaTclock
293    #endif
294                pCO2ave(i,j,bi,bj)=pCO2ave(i,j,bi,bj)+                pCO2ave(i,j,bi,bj)=pCO2ave(i,j,bi,bj)+
295       &                           pCO2(i,j,bi,bj)*deltaTclock       &                           pCO2(i,j,bi,bj)*deltaTclock
296                pHave(i,j,bi,bj)=pHave(i,j,bi,bj)+                pHave(i,j,bi,bj)=pHave(i,j,bi,bj)+

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

  ViewVC Help
Powered by ViewVC 1.1.22