File indexing completed on 2023-02-04 06:09:50 UTC
view on githubraw file Latest commit 2e3e8c33 on 2023-02-03 17:26:01 UTC
6d54cf9ca1 Ed H*0001 #include "DIC_OPTIONS.h"
daab022f42 Step*0002
08536d17ba Step*0003
0004
0005
0006
ac331e4517 Davi*0007 SUBROUTINE PHOS_FLUX( BIOac, pflux, exportflux,
daab022f42 Step*0008 I bi,bj,imin,imax,jmin,jmax,
2e3e8c330d Jona*0009 I myTime, myIter, myThid )
daab022f42 Step*0010
08536d17ba Step*0011
0012
daab022f42 Step*0013
08536d17ba Step*0014
0015 IMPLICIT NONE
daab022f42 Step*0016 #include "SIZE.h"
0017 #include "DYNVARS.h"
0018 #include "EEPARAMS.h"
0019 #include "PARAMS.h"
0020 #include "GRID.h"
2ef8966791 Davi*0021 #include "DIC_VARS.h"
daab022f42 Step*0022
08536d17ba Step*0023
ac331e4517 Davi*0024
2e3e8c330d Jona*0025
0026
0027
ac331e4517 Davi*0028 _RL BIOac(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
0029 INTEGER imin, imax, jmin, jmax, bi, bj
2e3e8c330d Jona*0030 _RL myTime
0031 INTEGER myIter
0032 INTEGER myThid
08536d17ba Step*0033
0034
ac331e4517 Davi*0035
22bb60bade Mart*0036 _RL pflux (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
65132eb687 Step*0037 _RL exportflux(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
daab022f42 Step*0038
c2a4adfccc Mart*0039 #if (defined ALLOW_PTRACERS && defined DIC_BIOTIC)
08536d17ba Step*0040
0041
0042
0043
ac331e4517 Davi*0044
08536d17ba Step*0045
c2a4adfccc Mart*0046
ac331e4517 Davi*0047
2c1f2f5f32 Mart*0048
ac331e4517 Davi*0049
2e3e8c330d Jona*0050 INTEGER i,j,k, ko, kop1
c2a4adfccc Mart*0051 _RL zbase
0052 _RL bexport(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
2c1f2f5f32 Mart*0053 _RL reminFac
c2a4adfccc Mart*0054 _RL depth_l
0055 _RL flux_u (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
0056 _RL flux_l
08536d17ba Step*0057
0058
ac331e4517 Davi*0059
c2a4adfccc Mart*0060 DO k=1,nlev
51c3bf0077 Step*0061 DO j=jmin,jmax
0062 DO i=imin,imax
c2a4adfccc Mart*0063 bexport(i,j) = 0. _d 0
22bb60bade Mart*0064 IF ( _hFacC(i,j,k,bi,bj).gt.0. _d 0 ) THEN
c2a4adfccc Mart*0065
0066
0067 IF (k.EQ.Nr) THEN
2e3e8c330d Jona*0068 pflux(i,j,k)=pflux(i,j,k)+BIOac(i,j,k)*(1. _d 0-DOPfraction)
c2a4adfccc Mart*0069 ELSEIF (hFacC(i,j,k+1,bi,bj).EQ.0. _d 0) THEN
0070 pflux(i,j,k)=pflux(i,j,k)+BIOac(i,j,k)*(1. _d 0-DOPfraction)
0071 ELSE
ac331e4517 Davi*0072
c2a4adfccc Mart*0073 bexport(i,j)=BIOac(i,j,k)*(1. _d 0-DOPfraction)
0074 & *drF(k) * _hFacC(i,j,k,bi,bj)
0075 ENDIF
0076 ENDIF
0077 ENDDO
0078 ENDDO
0079
0080
0081 zbase=-rF(k+1)
0082
0083 DO j=jmin,jmax
0084 DO i=imin,imax
0085 flux_u(i,j) = bexport(i,j)
0086 ENDDO
0087 ENDDO
22bb60bade Mart*0088
0089
0090
0091 DO ko=k+1,Nr-1
c2a4adfccc Mart*0092 kop1 = MIN(Nr,ko+1)
376d422ed2 Mart*0093 #ifndef NONLIN_FRSURF
2c1f2f5f32 Mart*0094
0095
2e3e8c330d Jona*0096
2c1f2f5f32 Mart*0097
0098 depth_l = -rF(ko) + drF(ko)
3e096c4163 Mart*0099
2e3e8c330d Jona*0100
3e096c4163 Mart*0101 reminFac = exp(-Kremin*log(depth_l/zbase))
2c1f2f5f32 Mart*0102 #endif
c2a4adfccc Mart*0103 DO j=jmin,jmax
0104 DO i=imin,imax
0105 IF ( bexport(i,j) .NE. 0. _d 0 ) THEN
0106
376d422ed2 Mart*0107 #ifdef NONLIN_FRSURF
2c1f2f5f32 Mart*0108 depth_l = -rF(ko) + drF(ko) * _hFacC(i,j,ko,bi,bj)
3e096c4163 Mart*0109
2e3e8c330d Jona*0110
3e096c4163 Mart*0111 reminFac = exp(-Kremin*log(depth_l/zbase))
2c1f2f5f32 Mart*0112 #endif
0113 flux_l = bexport(i,j)*reminFac
22bb60bade Mart*0114 & *maskC(i,j,kop1,bi,bj)
2e3e8c330d Jona*0115
c2a4adfccc Mart*0116 pflux(i,j,ko)=pflux(i,j,ko) + (flux_u(i,j)-flux_l)
22bb60bade Mart*0117 & *recip_drF(ko) * _recip_hFacC(i,j,ko,bi,bj)
c2a4adfccc Mart*0118 exportflux(i,j,ko)=exportflux(i,j,ko)+flux_u(i,j)
0119
0120 flux_u(i,j) = flux_l
0121
ac331e4517 Davi*0122 ENDIF
c2a4adfccc Mart*0123
951926fb9b Jean*0124 ENDDO
daab022f42 Step*0125 ENDDO
c2a4adfccc Mart*0126
daab022f42 Step*0127 ENDDO
22bb60bade Mart*0128
0129 ko = Nr
0130 flux_l = 0. _d 0
0131 DO j=jmin,jmax
0132 DO i=imin,imax
0133 pflux(i,j,ko)=pflux(i,j,ko) + (flux_u(i,j)-flux_l)
0134 & *recip_drF(ko) * _recip_hFacC(i,j,ko,bi,bj)
0135 exportflux(i,j,ko)=exportflux(i,j,ko)+flux_u(i,j)
0136 ENDDO
0137 ENDDO
c2a4adfccc Mart*0138
0139 ENDDO
daab022f42 Step*0140
c2a4adfccc Mart*0141 #endif /* defined ALLOW_PTRACERS && defined DIC_BIOTIC */
0142 RETURN
0143 END