File indexing completed on 2023-01-03 06:09:46 UTC
view on githubraw file Latest commit 9293d3c6 on 2023-01-02 17:40:43 UTC
9293d3c672 Hajo*0001 #include "GGL90_OPTIONS.h"
0002
0003
0004
0005
0006
0007 SUBROUTINE GGL90_ADD_STOKESDRIFT(
0008 O uRes, vRes,
0009 I uFld, vFld,
0010 I k, bi, bj, myThid )
0011
0012
0013
0014
0015
0016 IMPLICIT NONE
0017
0018 #include "SIZE.h"
0019 #include "EEPARAMS.h"
0020 #include "PARAMS.h"
0021 #include "GRID.h"
0022 #include "FFIELDS.h"
0023 #include "GGL90.h"
0024
0025
0026
0027
0028
0029
0030
0031 _RL uRes (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
0032 _RL vRes (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
0033 _RL uFld (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
0034 _RL vFld (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
0035 INTEGER k, bi, bj
0036 INTEGER myThid
0037
0038 #ifdef ALLOW_GGL90_LANGMUIR
0039
0040
0041
0042 INTEGER i,j
0043 _RL uStar, vStar, recip_Lasq, depthFac
0044 _RL stokesU(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
0045 _RL stokesV(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
0046
0047
0048 IF ( useLANGMUIR ) THEN
0049
0050
0051
0052 recip_Lasq = 1. _d 0 / LC_num
0053 recip_Lasq = recip_Lasq * recip_Lasq
0054 depthFac = recip_Lasq*EXP( 4. _d 0 *PI/LC_lambda*rC(k) )
0055 DO j=1-OLy,sNy+OLy
0056 DO i=1-OLx,sNx+OLx
0057 uStar = SIGN( SQRT(ABS(surfaceForcingU(i,j,bi,bj))),
0058 & surfaceForcingU(i,j,bi,bj) )
0059 stokesU(i,j) = uStar * depthFac
0060 vStar = SIGN( SQRT(ABS(surfaceForcingV(i,j,bi,bj))),
0061 & surfaceForcingV(i,j,bi,bj) )
0062 stokesV(i,j) = vStar * depthFac
0063 ENDDO
0064 ENDDO
0065
0066
0067 DO j=1-OLy,sNy+OLy
0068 DO i=1-OLx,sNx+OLx
0069 uRes(i,j) = uFld(i,j) + stokesU(i,j)*maskW(i,j,k,bi,bj)
0070 vRes(i,j) = vFld(i,j) + stokesV(i,j)*maskS(i,j,k,bi,bj)
0071 ENDDO
0072 ENDDO
0073
0074 ENDIF
0075
0076 #endif /* ALLOW_GGL90_LANGMUIR */
0077
0078 RETURN
0079 END