File indexing completed on 2023-02-04 06:09:48 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
e18333c42b Davi*0007 SUBROUTINE CAR_FLUX( CAR_S, cflux,
daab022f42 Step*0008 I bi,bj,imin,imax,jmin,jmax,
2e3e8c330d Jona*0009 I myTime, myIter, myThid )
daab022f42 Step*0010
08536d17ba Step*0011
ac331e4517 Davi*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
e18333c42b Davi*0024
2e3e8c330d Jona*0025
0026
0027
e18333c42b Davi*0028 _RL CAR_S(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
ac331e4517 Davi*0029 INTEGER imin, imax, jmin, jmax, bi, bj
2e3e8c330d Jona*0030 _RL myTime
0031 INTEGER myIter
0032 INTEGER myThid
daab022f42 Step*0033
08536d17ba Step*0034
ac331e4517 Davi*0035
0036 _RL cflux(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
08536d17ba Step*0037
c2a4adfccc Mart*0038 #if (defined ALLOW_PTRACERS && defined DIC_BIOTIC)
08536d17ba Step*0039
0040
0041
0042
ac331e4517 Davi*0043
08536d17ba Step*0044
c2a4adfccc Mart*0045
ac331e4517 Davi*0046
2c1f2f5f32 Mart*0047
ac331e4517 Davi*0048
2e3e8c330d Jona*0049 INTEGER i,j,k, ko, kop1
c2a4adfccc Mart*0050 _RL zbase
0051 _RL caexport(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
2c1f2f5f32 Mart*0052 _RL reminFac
c2a4adfccc Mart*0053 _RL depth_l
0054 _RL flux_u (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
0055 _RL flux_l
08536d17ba Step*0056
0057
ac331e4517 Davi*0058
c2a4adfccc Mart*0059 DO k=1,nlev
51c3bf0077 Step*0060 DO j=jmin,jmax
0061 DO i=imin,imax
c2a4adfccc Mart*0062 caexport(i,j) = 0. _d 0
0063 IF (hFacC(i,j,k,bi,bj).GT.0. _d 0) THEN
0064
0065
0066 IF (k.EQ.Nr) THEN
2e3e8c330d Jona*0067 cflux(i,j,k)=cflux(i,j,k) + CAR_S(i,j,k)
22bb60bade Mart*0068 ELSEIF ( _hFacC(i,j,k+1,bi,bj).EQ.0. _d 0 ) THEN
2e3e8c330d Jona*0069 cflux(i,j,k)=cflux(i,j,k) + CAR_S(i,j,k)
c2a4adfccc Mart*0070 ELSE
ac331e4517 Davi*0071
2e3e8c330d Jona*0072 caexport(i,j) = CAR_S(i,j,k)*drF(k) * _hFacC(i,j,k,bi,bj)
c2a4adfccc Mart*0073 ENDIF
0074 ENDIF
0075 ENDDO
0076 ENDDO
0077
0078
0079 zbase=-rF(k+1)
0080
0081 DO j=jmin,jmax
0082 DO i=imin,imax
0083 flux_u(i,j) = caexport(i,j)
0084 ENDDO
0085 ENDDO
22bb60bade Mart*0086
0087
0088
0089 DO ko=k+1,Nr-1
c2a4adfccc Mart*0090 kop1 = MIN(Nr,ko+1)
05f9b34a51 Mart*0091 #ifndef NONLIN_FRSURF
2c1f2f5f32 Mart*0092
0093
2e3e8c330d Jona*0094
2c1f2f5f32 Mart*0095
0096 depth_l = -rF(ko) + drF(ko)
0097 reminFac = exp(-(depth_l-zbase)/zca)
05f9b34a51 Mart*0098 #endif /* NONLIN_FRSURF */
c2a4adfccc Mart*0099 DO j=jmin,jmax
0100 DO i=imin,imax
0101 IF ( caexport(i,j) .NE. 0. _d 0 ) THEN
0102
05f9b34a51 Mart*0103 #ifdef NONLIN_FRSURF
2c1f2f5f32 Mart*0104 depth_l = -rF(ko) + drF(ko) * _hFacC(i,j,ko,bi,bj)
0105 reminFac = exp(-(depth_l-zbase)/zca)
05f9b34a51 Mart*0106 #endif /* NONLIN_FRSURF */
2c1f2f5f32 Mart*0107 flux_l = caexport(i,j)*reminFac
22bb60bade Mart*0108 & *maskC(i,j,kop1,bi,bj)
2e3e8c330d Jona*0109
c2a4adfccc Mart*0110 cflux(i,j,ko)=cflux(i,j,ko) + (flux_u(i,j)-flux_l)
22bb60bade Mart*0111 & *recip_drF(ko) * _recip_hFacC(i,j,ko,bi,bj)
c2a4adfccc Mart*0112
0113 flux_u(i,j) = flux_l
0114
ac331e4517 Davi*0115 ENDIF
c2a4adfccc Mart*0116
daab022f42 Step*0117 ENDDO
951926fb9b Jean*0118 ENDDO
c2a4adfccc Mart*0119
daab022f42 Step*0120 ENDDO
22bb60bade Mart*0121
0122 ko = Nr
0123 flux_l = 0. _d 0
0124 DO j=jmin,jmax
0125 DO i=imin,imax
0126 cflux(i,j,ko)=cflux(i,j,ko) + (flux_u(i,j)-flux_l)
0127 & *recip_drF(ko) * _recip_hFacC(i,j,ko,bi,bj)
0128 ENDDO
0129 ENDDO
c2a4adfccc Mart*0130
0131 ENDDO
daab022f42 Step*0132
c2a4adfccc Mart*0133 #endif /* defined ALLOW_PTRACERS && defined DIC_BIOTIC */
0134 RETURN
0135 END