#include "DIC_OPTIONS.h"
#include "GCHEM_OPTIONS.h"
CBOP
C !ROUTINE: BIO_EXPORT
C !INTERFACE: ==========================================================
SUBROUTINE BIO_EXPORT( PTR_PO4 ,
#ifdef ALLOW_FE
I PTR_FE,
#endif
I bioac,
I bi,bj,imin,imax,jmin,jmax,
I myIter,myTime,myThid)
c !DESCRIPTION:
C Calculate biological activity and export
C !USES: ===============================================================
IMPLICIT NONE
#include "SIZE.h"
#include "DYNVARS.h"
#include "EEPARAMS.h"
#include "PARAMS.h"
#include "GRID.h"
#include "DIC_ABIOTIC.h"
#include "DIC_BIOTIC.h"
C !INPUT PARAMETERS: ===================================================
C myThid :: thread number
C myIter :: current timestep
C myTime :: current time
C PTR_PO4 :: phosphate tracer field
C PTR_FE :: iron tracer field
INTEGER myIter
_RL myTime
INTEGER myThid
_RL PTR_PO4(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
#ifdef ALLOW_FE
_RL PTR_FE(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
#endif
INTEGER imin, imax, jmin, jmax, bi, bj
C !OUTPUT PARAMETERS: ==================================================
C bioac :: biological productivity (will be split
C between export and dissolved pool)
_RL bioac(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR)
#ifdef ALLOW_PTRACERS
#ifdef DIC_BIOTIC
C !LOCAL VARIABLES: ====================================================
C i,j,k :: loop indices
INTEGER I,J,k
_RL sfac(1-OLy:sNy+OLy)
_RL lit, atten
CEOP
call INSOL(myTime,sfac,bj)
DO j=1-OLy,sNy+OLy
DO i=1-OLx,sNx+OLx
C Fortran-90
CRG C$TAF INIT bio_export = static, nlev
C FORTRAN-77 dynamic memory uses adstore adresto
CRG C$TAF INIT bio_export = memory
C FORTRAN-77 with know max of nlev
C$TAF INIT bio_export = static, 10
lit=sfac(j)
DO k=1,nlev
C$TAF STORE lit = bio_export
atten=(k0*drF(k)*.5)
if (k.gt.1) atten=atten+(k0*drF(k-1)*.5)
lit=lit*exp(-atten)*(1.d0-Fice(i,j,bi,bj))
if (lit.lt.0.d0.or.lit.gt.150) then
print*,'QQ lit', lit
endif
bioac(i,j,k)=alpha(i,j,bi,bj)*
& lit/(lit+lit0)*maskC(i,j,k,bi,bj)*
#ifdef ALLOW_FE
& min(PTR_PO4(i,j,k)/(PTR_PO4(i,j,k)+KPO4),
& PTR_FE(i,j,k)/(PTR_FE(i,j,k)+KFE) )
#else
& PTR_PO4(i,j,k)/(PTR_PO4(i,j,k)+KPO4)
#endif
ENDDO
ENDDO
ENDDO
c
#endif
#endif
RETURN
END