File indexing completed on 2018-03-02 18:45:17 UTC
view on githubraw file Latest commit add29e06 on 2018-01-31 20:35:05 UTC
5273e7d26a Alis*0001 #include "CPP_OPTIONS.h"
0002
46fb26357b Jean*0003
0004
0005
0006 SUBROUTINE INI_SALT( myThid )
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
5273e7d26a Alis*0023
46fb26357b Jean*0024
0025 IMPLICIT NONE
5273e7d26a Alis*0026
0027 #include "SIZE.h"
0028 #include "EEPARAMS.h"
0029 #include "PARAMS.h"
0030 #include "GRID.h"
0031 #include "DYNVARS.h"
0032
46fb26357b Jean*0033
5273e7d26a Alis*0034
46fb26357b Jean*0035
5273e7d26a Alis*0036 INTEGER myThid
0037
46fb26357b Jean*0038
5273e7d26a Alis*0039
46fb26357b Jean*0040
0041
0042
5273e7d26a Alis*0043 INTEGER bi, bj
46fb26357b Jean*0044 INTEGER i, j, k, localWarnings
0045 _RL rD
5273e7d26a Alis*0046 CHARACTER*(MAX_LEN_MBUF) msgBuf
46fb26357b Jean*0047
5273e7d26a Alis*0048
0049
0050 DO bj = myByLo(myThid), myByHi(myThid)
0051 DO bi = myBxLo(myThid), myBxHi(myThid)
46fb26357b Jean*0052 DO k=1,Nr
0053 DO j=1-Oly,sNy+Oly
0054 DO i=1-Olx,sNx+Olx
0055 salt(i,j,k,bi,bj) = sRef(k)
0056 ENDDO
0057 ENDDO
0058
0059
0060 DO j=1-Oly,sNy+Oly
0061 DO i=1-Olx,sNx+Olx
0062 rD = SQRT( ( xC(i,j,bi,bj) - 40. _d 3 )**2
0063 & +( yC(i,j,bi,bj) - 40. _d 3 )**2
0064 & +( rC(k) + 50. _d 3 )**2
0065 & )
0066 IF ( rD.LE.60. _d 3 ) salt(i,j,k,bi,bj) = sRef(k)+1. _d 0
5273e7d26a Alis*0067 ENDDO
0068 ENDDO
46fb26357b Jean*0069
5273e7d26a Alis*0070 ENDDO
0071 ENDDO
0072 ENDDO
a8bea676dd Jean*0073
0074 _EXCH_XYZ_RL( salt, myThid )
0075
5273e7d26a Alis*0076
0077 IF ( hydrogSaltFile .NE. ' ' ) THEN
46fb26357b Jean*0078 CALL READ_FLD_XYZ_RL( hydrogSaltFile, ' ', salt, 0, myThid )
0079 _EXCH_XYZ_RL( salt, myThid )
5273e7d26a Alis*0080 ENDIF
0081
46fb26357b Jean*0082
5273e7d26a Alis*0083 localWarnings=0
0084 DO bj = myByLo(myThid), myByHi(myThid)
0085 DO bi = myBxLo(myThid), myBxHi(myThid)
46fb26357b Jean*0086 DO k=1,Nr
0087 IF ( maskIniSalt ) THEN
0088 DO j=1-Oly,sNy+Oly
0089 DO i=1-Olx,sNx+Olx
0090 IF (maskC(i,j,k,bi,bj).EQ.0.) salt(i,j,k,bi,bj) = 0.
0091 ENDDO
0092 ENDDO
0093 ENDIF
0094 IF ( sRef(k).NE.0. ) THEN
0095 DO j=1,sNy
0096 DO i=1,sNx
0097 IF ( maskC(i,j,k,bi,bj).NE.0.
0098 & .AND. salt(i,j,k,bi,bj).EQ.0. ) THEN
0099 localWarnings=localWarnings+1
5273e7d26a Alis*0100 ENDIF
46fb26357b Jean*0101 ENDDO
5273e7d26a Alis*0102 ENDDO
46fb26357b Jean*0103 ENDIF
5273e7d26a Alis*0104 ENDDO
0105 ENDDO
0106 ENDDO
46fb26357b Jean*0107 IF ( localWarnings.NE.0 ) THEN
0108 IF ( checkIniSalt ) THEN
0109 WRITE(msgBuf,'(A,I10,A)')
0110 & ' INI_SALT: found', localWarnings,
0111 & ' wet grid-pts with salt=0 identically.'
0112 CALL PRINT_ERROR( msgBuf , myThid)
0113 WRITE(msgBuf,'(A,A)')
0114 & ' If this is intentional, you need to',
0115 & ' set checkIniSalt=.false. in "data", namelist PARM05'
0116 CALL PRINT_ERROR( msgBuf , myThid)
0117 STOP 'ABNORMAL END: S/R INI_SALT'
0118 ELSE
0119 WRITE(msgBuf,'(A,I10,A)')
0120 & '** WARNINGS ** INI_SALT: found', localWarnings,
0121 & ' wet grid-pts with salt=0 identically.'
0122 CALL PRINT_MESSAGE( msgBuf, errorMessageUnit,
0123 & SQUEEZE_RIGHT, myThid )
0124 ENDIF
5273e7d26a Alis*0125 ENDIF
0126
a8bea676dd Jean*0127 IF ( debugLevel.GE.debLevC ) THEN
46fb26357b Jean*0128 CALL PLOT_FIELD_XYZRL( salt, 'Initial Salinity',
0129 & Nr, 1, myThid )
0130 ENDIF
5273e7d26a Alis*0131
0132 RETURN
0133 END