File indexing completed on 2025-07-08 05:11:09 UTC
view on githubraw file Latest commit 00c7090d on 2025-07-07 16:10:22 UTC
1d478690dc Patr*0001 #include "KPP_OPTIONS.h"
0002
c9c3d7103f Ed H*0003
0004
0005
0006
0007
1d478690dc Patr*0008 SUBROUTINE KPP_READPARMS( myThid )
0009
c9c3d7103f Ed H*0010
0011
0012
0013
0014 IMPLICIT NONE
1d478690dc Patr*0015 #include "SIZE.h"
0016 #include "EEPARAMS.h"
0017 #include "PARAMS.h"
0018 #include "KPP_PARAMS.h"
0019
c9c3d7103f Ed H*0020
1d478690dc Patr*0021 INTEGER myThid
c9c3d7103f Ed H*0022
1d478690dc Patr*0023
c9c3d7103f Ed H*0024
1d478690dc Patr*0025 #ifdef ALLOW_KPP
8ce97507dd Jean*0026
0027
0028
1d478690dc Patr*0029 CHARACTER*(MAX_LEN_MBUF) msgBuf
cee16b76ae Dimi*0030 INTEGER errIO, iUnit
8ce97507dd Jean*0031
0032
0033 INTEGER nRetired
0034 LOGICAL KPPmixingMaps
0035 INTEGER num_v_smooth_BV, num_z_smooth_sh, num_m_smooth_sh
1d478690dc Patr*0036
0037
0038 NAMELIST /KPP_PARM01/
0039 & kpp_freq, kpp_dumpFreq, kpp_taveFreq,
8ce97507dd Jean*0040 & KPPwriteState, KPP_ghatUseTotalDiffus,
00c7090dc0 Mart*0041 & KPPuseDoubleDiff, LimitHblStable, KPPuseSWfrac3D,
1d478690dc Patr*0042 & minKPPhbl,
0043 & epsln, phepsi, epsilon, vonk, dB_dz,
0044 & conc1, conam, concm, conc2, zetam,
0045 & conas, concs, conc3, zetas,
0046 & Ricr, cekman, cmonob, concv, hbf,
d6f292d8c0 Jean*0047 & zmin, zmax, umin, umax,
8ce97507dd Jean*0048 & num_v_smooth_Ri,
1d478690dc Patr*0049 & Riinfty, BVSQcon, difm0, difs0, dift0,
0050 & difmcon, difscon, diftcon,
ae4c29e0db Jean*0051 & Rrho0, dsfmax,
8ce97507dd Jean*0052 & cstar,
0053 & KPPmixingMaps,
0054 & num_v_smooth_BV, num_z_smooth_sh, num_m_smooth_sh
1d478690dc Patr*0055
ae4c29e0db Jean*0056
0057
0058 IF ( .NOT.useKPP ) THEN
0059
0060 _BEGIN_MASTER(myThid)
0061
0062
0063 CALL PACKAGES_UNUSED_MSG( 'useKPP', ' ', ' ' )
0064 _END_MASTER(myThid)
0065 RETURN
0066 ENDIF
0067
1d478690dc Patr*0068 _BEGIN_MASTER(myThid)
0069
8ce97507dd Jean*0070 WRITE(msgBuf,'(A)') ' KPP_READPARMS: opening data.kpp'
1d478690dc Patr*0071 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
8ce97507dd Jean*0072 & SQUEEZE_RIGHT, myThid )
93abbf4908 Jean*0073 errIO = 0
1d478690dc Patr*0074 CALL OPEN_COPY_DATA_FILE(
8ce97507dd Jean*0075 I 'data.kpp', 'KPP_READPARMS',
1d478690dc Patr*0076 O iUnit,
0077 I myThid )
0078
0079
e750a5e49e Mart*0080 kpp_freq = deltaTClock
0081 kpp_dumpFreq = dumpFreq
0082 kpp_taveFreq = taveFreq
0083 KPPwriteState = .FALSE.
0084 KPPuseDoubleDiff = .FALSE.
0085 LimitHblStable = .TRUE.
08300bd1e7 Jean*0086 KPP_ghatUseTotalDiffus = .FALSE.
00c7090dc0 Mart*0087 KPPuseSWfrac3D = .FALSE.
ee7edf0613 Davi*0088 minKPPhbl = UNSET_RL
1d478690dc Patr*0089
0090
0091
0092
0093
d6f292d8c0 Jean*0094
0095 epsln = 1. _d -20
0096 phepsi = 1. _d -10
0097 epsilon = 1. _d -1
0098 vonk = 0.4 _d 0
0099 dB_dz = 5.2 _d -5
0100 conc1 = 5. _d 0
0101 conam = 1.257 _d 0
0102 concm = 8.380 _d 0
0103 conc2 = 16. _d 0
0104 zetam = -0.2 _d 0
0105 conas = -28.86 _d 0
0106 concs = 98.96 _d 0
0107 conc3 = 16. _d 0
0108 zetas = -1. _d 0
0109
0110
0111
0112 Ricr = 0.3 _d 0
0113 cekman = 0.7 _d 0
0114 cmonob = 1. _d 0
0115 concv = 1.8 _d 0
0116 hbf = 1. _d 0
0117
0118
0119
0120
0121 zmin = -4. _d -7
0122 zmax = 0. _d 0
0123 umin = 0. _d 0
0124 umax = 4. _d -2
0125
0126
1d478690dc Patr*0127
0128 num_v_smooth_Ri = 0
d6f292d8c0 Jean*0129 Riinfty = 0.7 _d 0
0130 BVSQcon = -0.2 _d -4
1d478690dc Patr*0131
d6f292d8c0 Jean*0132 difm0 = 5. _d -3
0133 difs0 = 5. _d -3
0134 dift0 = 5. _d -3
1d478690dc Patr*0135
d6f292d8c0 Jean*0136 difmcon = 0.1 _d 0
0137 difscon = 0.1 _d 0
0138 diftcon = 0.1 _d 0
1d478690dc Patr*0139
e750a5e49e Mart*0140
0141
0142 Rrho0 = 1.9 _d 0
0143 dsfmax = 10. _d -3
0144
1d478690dc Patr*0145
0146
0147 cstar = 10.
0148
8ce97507dd Jean*0149
0150 nRetired = 0
0151 KPPmixingMaps = .FALSE.
0152 num_v_smooth_BV = UNSET_I
0153 num_z_smooth_sh = UNSET_I
0154 num_m_smooth_sh = UNSET_I
0155
1d478690dc Patr*0156
0157
0158
8ce97507dd Jean*0159 WRITE(msgBuf,'(A)') ' KPP_READPARMS ; starts to read KPP_PARM01'
0160 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0161 & SQUEEZE_RIGHT, myThid )
0162 READ( UNIT=iUnit, NML=KPP_PARM01 )
0163
0164
0165
0166
0167
1d478690dc Patr*0168 IF ( errIO .LT. 0 ) THEN
0169 WRITE(msgBuf,'(A)')
8ce97507dd Jean*0170 & 'S/R KPP_READPARMS: Error reading parameter file "data.kpp"'
0171 CALL PRINT_ERROR( msgBuf, myThid )
1d478690dc Patr*0172 WRITE(msgBuf,'(A)')
8ce97507dd Jean*0173 & 'S/R KPP_READPARMS: Problem in namelist KPP_PARM01'
0174 CALL PRINT_ERROR( msgBuf, myThid )
0175 STOP 'ABNORMAL END: S/R KPP_READPARMS'
0176 ELSE
0177 WRITE(msgBuf,'(A)') ' KPP_READPARMS ; read KPP_PARM01 : OK'
0178 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0179 & SQUEEZE_RIGHT, myThid )
1d478690dc Patr*0180 ENDIF
0181
7a77863887 Mart*0182 #ifdef SINGLE_DISK_IO
1d478690dc Patr*0183 CLOSE(iUnit)
7a77863887 Mart*0184 #else
0185 CLOSE(iUnit,STATUS='DELETE')
0186 #endif /* SINGLE_DISK_IO */
1d478690dc Patr*0187
8ce97507dd Jean*0188 WRITE(msgBuf,'(A)') ' KPP_READPARMS: finished reading data.kpp'
1d478690dc Patr*0189 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
8ce97507dd Jean*0190 & SQUEEZE_RIGHT, myThid )
0191
0192
0193 IF ( KPPmixingMaps ) THEN
0194 nRetired = nRetired + 1
0195 WRITE(msgBuf,'(2A)') 'S/R KPP_READPARMS: "KPPmixingMaps"',
0196 & ' no longer allowed in file "data.kpp"'
0197 CALL PRINT_ERROR( msgBuf, myThid )
0198 ENDIF
0199 IF ( num_v_smooth_BV .NE. UNSET_I ) THEN
0200 nRetired = nRetired + 1
0201 WRITE(msgBuf,'(2A)') 'S/R KPP_READPARMS: "num_v_smooth_BV"',
0202 & ' no longer allowed in file "data.kpp"'
0203 CALL PRINT_ERROR( msgBuf, myThid )
0204 ENDIF
0205 IF ( num_z_smooth_sh .NE. UNSET_I ) THEN
0206 nRetired = nRetired + 1
0207 WRITE(msgBuf,'(2A)') 'S/R KPP_READPARMS: "num_z_smooth_sh"',
0208 & ' no longer allowed in file "data.kpp"'
0209 CALL PRINT_ERROR( msgBuf, myThid )
0210 ENDIF
0211 IF ( num_m_smooth_sh .NE. UNSET_I ) THEN
0212 nRetired = nRetired + 1
0213 WRITE(msgBuf,'(2A)') 'S/R KPP_READPARMS: "num_m_smooth_sh"',
0214 & ' no longer allowed in file "data.kpp"'
0215 CALL PRINT_ERROR( msgBuf, myThid )
0216 ENDIF
0217
0218 IF ( nRetired .GT. 0 ) THEN
0219 WRITE(msgBuf,'(2A)') 'S/R KPP_READPARMS: ',
0220 & 'Error reading file "data.kpp":'
0221 CALL PRINT_ERROR( msgBuf, myThid )
0222 WRITE(msgBuf,'(I4,A)') nRetired,
0223 & ' out-of-date parameters were found in the namelist(s)'
0224 CALL PRINT_ERROR( msgBuf, myThid )
0225
0226 CALL ALL_PROC_DIE( 0 )
0227 STOP 'ABNORMAL END: S/R KPP_READPARMS'
0228 ENDIF
1d478690dc Patr*0229
0230 _END_MASTER(myThid)
0231
0232
0233 _BARRIER
0234
0235 #endif /* ALLOW_KPP */
0236
d6f292d8c0 Jean*0237 RETURN
0238 END