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

Contents of /MITgcm/pkg/dic/car_flux.F

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


Revision 1.6 - (show annotations) (download)
Tue Oct 9 00:01:42 2007 UTC (16 years, 8 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint59i
Changes since 1.5: +8 -5 lines
add missing cvs $Header:$ or $Name:$

1 C $Header: $
2 C $Name: $
3
4 #include "DIC_OPTIONS.h"
5 #include "GCHEM_OPTIONS.h"
6
7 CBOP
8 C !ROUTINE: CAR_FLUX
9
10 C !INTERFACE: ==========================================================
11 SUBROUTINE CAR_FLUX( bioac, cflux,
12 I bi,bj,imin,imax,jmin,jmax,
13 I myIter,myTime,myThid)
14
15 C !DESCRIPTION:
16 C Calculate carbonate fluxes
17
18 C !USES: ===============================================================
19 IMPLICIT NONE
20 #include "SIZE.h"
21 #include "DYNVARS.h"
22 #include "EEPARAMS.h"
23 #include "PARAMS.h"
24 #include "GRID.h"
25 #include "DIC_BIOTIC.h"
26
27 C !INPUT PARAMETERS: ===================================================
28 C myThid :: thread number
29 C myIter :: current timestep
30 C myTime :: current time
31 C bioac :: biological productivity
32 INTEGER myIter
33 _RL myTime
34 INTEGER myThid
35 _RL bioac(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
36 INTEGER imin, imax, jmin, jmax, bi, bj
37
38 C !OUTPUT PARAMETERS: ===================================================
39 C cflux :: carbonate flux
40 _RL cflux(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
41
42 #ifdef ALLOW_PTRACERS
43 #ifdef DIC_BIOTIC
44
45 C !LOCAL VARIABLES: ====================================================
46 C i,j,k :: loop indices
47 c ko :: loop-within-loop index
48 c caexport :: flux of carbonate from base each "productive"
49 c layer
50 c depth_u, depth_l :: depths of upper and lower interfaces
51 c flux_u, flux_l :: flux through upper and lower interfaces
52 c zbase :: depth of bottom of current productive layer
53 _RL caexport(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
54 INTEGER I,J,k, ko
55 _RL depth_u, depth_l
56 _RL flux_u, flux_l
57 _RL zbase
58 CEOP
59
60 c
61 c calculate carbonate flux from base of each nlev
62 DO j=jmin,jmax
63 DO i=imin,imax
64 DO k=1,nLev
65 if (hFacC(i,j,k,bi,bj).gt.0.d0) then
66 caexport(i,j)= R_cp*rain_ratio(i,j,bi,bj)*bioac(i,j,k)*
67 & (1.0-DOPfraction)*drF(k)*hFacC(i,j,k,bi,bj)
68 c calculate flux to each layer from base of k
69 zbase=-rF(k+1)
70 Do ko=k+1,Nr
71 if (hFacC(i,j,ko,bi,bj).gt.0.d0) then
72 depth_u=-rF(ko)
73 depth_l=depth_u+
74 & drF(ko)*hFacC(i,j,ko,bi,bj)
75 flux_u=caexport(i,j)*exp(-(depth_u-zbase)/zca)
76 c no flux to ocean bottom
77 if (ko.eq.Nr) then
78 flux_l=0.d0
79 else
80 if (hFacC(i,j,ko+1,bi,bj).eq.0.d0) then
81 flux_l=0.d0
82 else
83 flux_l=caexport(i,j)*exp(-(depth_l-zbase)/zca)
84 endif
85 endif
86 cflux(i,j,ko)=cflux(i,j,ko) +
87 & ( (Flux_u-Flux_l)/(drF(ko)*hFacC(i,j,ko,bi,bj)) )
88 else
89 c if no layer below initial layer, remineralize in place
90 if (ko.eq.k+1) cflux(i,j,k)=cflux(i,j,k)
91 & +bioac(i,j,k)*(1.0-DOPfraction)*
92 & R_cp*rain_ratio(i,j,bi,bj)
93 endif
94 ENDDO
95 endif
96 ENDDO
97 ENDDO
98 ENDDO
99 c
100 #endif
101 #endif
102 RETURN
103 END

  ViewVC Help
Powered by ViewVC 1.1.22