File indexing completed on 2024-06-06 05:11:46 UTC
view on githubraw file Latest commit 6b4f212f on 2024-06-05 16:55:17 UTC
aef96ed361 Jean*0001 #include "PACKAGES_CONFIG.h"
905f660335 Alis*0002 #include "CPP_OPTIONS.h"
0003
aef96ed361 Jean*0004
0005
0006
905f660335 Alis*0007 SUBROUTINE INI_PSURF( myThid )
aef96ed361 Jean*0008
0009
0010
905f660335 Alis*0011
0012
aef96ed361 Jean*0013
905f660335 Alis*0014
0015
0016
0017
aef96ed361 Jean*0018
0019
905f660335 Alis*0020
aef96ed361 Jean*0021
0022 IMPLICIT NONE
905f660335 Alis*0023
0024 #include "SIZE.h"
0025 #include "EEPARAMS.h"
0026 #include "PARAMS.h"
0027 #include "GRID.h"
0028 #include "DYNVARS.h"
aef96ed361 Jean*0029 #include "SURFACE.h"
0030 #ifdef ALLOW_CD_CODE
0031 # include "CD_CODE_VARS.h"
0032 #endif
0033 #ifdef ALLOW_SHELFICE
0034 # include "SHELFICE.h"
0035 #endif
905f660335 Alis*0036
aef96ed361 Jean*0037
0038
905f660335 Alis*0039 INTEGER myThid
0040
aef96ed361 Jean*0041
0042
0043
905f660335 Alis*0044 INTEGER bi, bj
aef96ed361 Jean*0045 INTEGER i, j
0046 _RL omegaPrime, snFac, psFac
0047
905f660335 Alis*0048
0049
aef96ed361 Jean*0050 omegaPrime = 80. _d 0 / rSphere
0051
0052
6b4f212f67 Jean*0053 psfac = -(rSphere*rSphere)*omegaPrime
0054 & *( Omega + omegaPrime*0.5 _d 0 )
aef96ed361 Jean*0055 snFac = 1. _d 0 / (4. _d 0*Omega*Omega)
6b4f212f67 Jean*0056
0057
905f660335 Alis*0058 DO bj = myByLo(myThid), myByHi(myThid)
0059 DO bi = myBxLo(myThid), myBxHi(myThid)
aef96ed361 Jean*0060 DO j=1-OLy,sNy+OLy
0061 DO i=1-OLx,sNx+OLx
0062 etaN(i,j,bi,bj) = 0. _d 0
0063 & + psFac*( snFac*fCori(i,j,bi,bj)*fCori(i,j,bi,bj)
6b4f212f67 Jean*0064 & - 1. _d 0 / 3. _d 0 )*recip_Bo(i,j,bi,bj)
905f660335 Alis*0065 ENDDO
0066 ENDDO
0067 ENDDO
0068 ENDDO
0069
aef96ed361 Jean*0070 IF ( pSurfInitFile .NE. ' ' ) THEN
905f660335 Alis*0071 CALL READ_FLD_XY_RL( pSurfInitFile, ' ', etaN, 0, myThid )
aef96ed361 Jean*0072
0073 _EXCH_XY_RL(etaN, myThid)
905f660335 Alis*0074 ENDIF
0075
138482fdf6 Ed H*0076 #ifdef ALLOW_CD_CODE
aef96ed361 Jean*0077
905f660335 Alis*0078 DO bj=myByLo(myThid),myByHi(myThid)
0079 DO bi=myBxLo(myThid),myBxHi(myThid)
aef96ed361 Jean*0080 DO j=1-OLy,sNy+OLy
0081 DO i=1-OLx,sNx+OLx
0082 etaNm1(i,j,bi,bj) = etaN(i,j,bi,bj)
905f660335 Alis*0083 ENDDO
0084 ENDDO
0085 ENDDO
0086 ENDDO
0087 #endif
0088
aef96ed361 Jean*0089 #ifdef EXACT_CONSERV
0090
0091 DO bj=myByLo(myThid),myByHi(myThid)
0092 DO bi=myBxLo(myThid),myBxHi(myThid)
0093 DO j=1-OLy,sNy+OLy
0094 DO i=1-OLx,sNx+OLx
0095 etaH(i,j,bi,bj) = etaN(i,j,bi,bj)
0096 etaHnm1(i,j,bi,bj) = etaN(i,j,bi,bj)
0097 dEtaHdt(i,j,bi,bj) = 0. _d 0
0098 ENDDO
0099 ENDDO
0100 ENDDO
0101 ENDDO
0102 #endif /* EXACT_CONSERV */
0103
0104 #ifdef ALLOW_SHELFICE
0105 IF ( useShelfIce .AND. usingZCoords ) THEN
0106 DO bj=myByLo(myThid),myByHi(myThid)
0107 DO bi=myBxLo(myThid),myBxHi(myThid)
0108 DO j=1-OLy,sNy+OLy
0109 DO i=1-OLx,sNx+OLx
0110 phi0surf(i,j,bi,bj) = phi0surf(i,j,bi,bj)
0111 & + shelficeLoadAnomaly(i,j,bi,bj)*recip_rhoConst
0112 ENDDO
0113 ENDDO
0114 ENDDO
0115 ENDDO
0116 ENDIF
0117 #endif /* ALLOW_SHELFICE */
0118
905f660335 Alis*0119 RETURN
0120 END