File indexing completed on 2023-02-03 06:09:38 UTC
view on githubraw file Latest commit edb66560 on 2023-02-02 23:32:31 UTC
a2a20dcddc Jean*0001 #include "PACKAGES_CONFIG.h"
0002 #include "CPP_OPTIONS.h"
02d90fb24c Jean*0003
0004
0005
a2a20dcddc Jean*0006
0007
0008
0009
0010 SUBROUTINE UPDATE_SIGMA( etaHc, myTime, myIter, myThid )
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020 IMPLICIT NONE
0021
0022 #include "SIZE.h"
0023 #include "EEPARAMS.h"
0024 #include "PARAMS.h"
0025
0026 #include "GRID.h"
0027 #include "SURFACE.h"
02d90fb24c Jean*0028
0029
0030
a2a20dcddc Jean*0031
0032
0033
0034
0035
0036
0037
0038 _RL etaHc(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
0039 _RL myTime
0040 INTEGER myIter
0041 INTEGER myThid
0042
0043 #ifdef NONLIN_FRSURF
0044
0045
0046
0047
0048
0049
0050
0051
0052
0053 INTEGER bi, bj
0054 INTEGER i, j, k
0055 _RL rFullDepth
0056 _RL tmpFld(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
0057
0058
0059
0060
0061 rFullDepth = rF(1)-rF(Nr+1)
0062
0063 DO bj=myByLo(myThid), myByHi(myThid)
0064 DO bi=myBxLo(myThid), myBxHi(myThid)
0065
0066
edb6656069 Mart*0067
a2a20dcddc Jean*0068
0069
0070
0071
0072
0073
0074
0075
0076
0077
0078
0079
0080
0081
0082
02d90fb24c Jean*0083 DO j=1-OLy,sNy+OLy
0084 DO i=1-OLx,sNx+OLx
a2a20dcddc Jean*0085 IF ( kSurfC(i,j,bi,bj).LE.Nr ) THEN
0086 tmpFld(i,j) = etaHc(i,j,bi,bj)
0087 & + ( Ro_surf(i,j,bi,bj)-R_low(i,j,bi,bj) )
0088 ELSE
0089 tmpFld(i,j) = rFullDepth
0090 ENDIF
0091 ENDDO
0092 ENDDO
0093 DO k=1,Nr
02d90fb24c Jean*0094 DO j=1-OLy,sNy+OLy
0095 DO i=1-OLx,sNx+OLx
a2a20dcddc Jean*0096 hFacC(i,j,k,bi,bj) = maskC(i,j,k,bi,bj)
0097 & *( dAHybSigF(k)*rFullDepth
0098 & +dBHybSigF(k)*tmpFld(i,j)
0099 & )*recip_drF(k)
0100 recip_hFacC(i,j,k,bi,bj) = maskC(i,j,k,bi,bj)*drF(k)
0101 & /( dAHybSigF(k)*rFullDepth
0102 & +dBHybSigF(k)*tmpFld(i,j)
0103 & )
0104 ENDDO
0105 ENDDO
0106 ENDDO
0107
0108
02d90fb24c Jean*0109 DO j=1-OLy,sNy+OLy
0110 DO i=1-OLx,sNx+OLx
a2a20dcddc Jean*0111 IF ( kSurfW(i,j,bi,bj).LE.Nr ) THEN
0112 tmpFld(i,j) = etaHw(i,j,bi,bj)
0113 & + ( rSurfW(i,j,bi,bj)-rLowW(i,j,bi,bj) )
0114 ELSE
0115 tmpFld(i,j) = rFullDepth
0116 ENDIF
0117 ENDDO
0118 ENDDO
0119 DO k=1,Nr
02d90fb24c Jean*0120 DO j=1-OLy,sNy+OLy
0121 DO i=1-OLx,sNx+OLx
a2a20dcddc Jean*0122 hFacW(i,j,k,bi,bj) = maskW(i,j,k,bi,bj)
0123 & *( dAHybSigF(k)*rFullDepth
0124 & +dBHybSigF(k)*tmpFld(i,j)
0125 & )*recip_drF(k)
0126 recip_hFacW(i,j,k,bi,bj) = maskW(i,j,k,bi,bj)*drF(k)
0127 & /( dAHybSigF(k)*rFullDepth
0128 & +dBHybSigF(k)*tmpFld(i,j)
0129 & )
0130 ENDDO
0131 ENDDO
0132 ENDDO
0133
0134
02d90fb24c Jean*0135 DO j=1-OLy,sNy+OLy
0136 DO i=1-OLx,sNx+OLx
a2a20dcddc Jean*0137 IF ( kSurfS(i,j,bi,bj).LE.Nr ) THEN
0138 tmpFld(i,j) = etaHs(i,j,bi,bj)
0139 & + ( rSurfS(i,j,bi,bj)-rLowS(i,j,bi,bj) )
0140 ELSE
0141 tmpFld(i,j) = rFullDepth
0142 ENDIF
0143 ENDDO
0144 ENDDO
0145 DO k=1,Nr
02d90fb24c Jean*0146 DO j=1-OLy,sNy+OLy
0147 DO i=1-OLx,sNx+OLx
a2a20dcddc Jean*0148 hFacS(i,j,k,bi,bj) = maskS(i,j,k,bi,bj)
0149 & *( dAHybSigF(k)*rFullDepth
0150 & +dBHybSigF(k)*tmpFld(i,j)
0151 & )*recip_drF(k)
0152 recip_hFacS(i,j,k,bi,bj) = maskS(i,j,k,bi,bj)*drF(k)
0153 & /( dAHybSigF(k)*rFullDepth
0154 & +dBHybSigF(k)*tmpFld(i,j)
0155 & )
0156 ENDDO
0157 ENDDO
0158 ENDDO
0159
0160
0161
0162
0163 ENDDO
0164 ENDDO
0165
0166
0167
0168
0169
0170
0171
0172
0173 #endif /* NONLIN_FRSURF */
0174
0175 RETURN
0176 END