File indexing completed on 2018-03-02 18:41:35 UTC
view on githubraw file Latest commit add29e06 on 2018-01-31 20:35:05 UTC
7e819019d5 Dimi*0001 #include "KPP_OPTIONS.h"
0002
0003
0004
0005
0006 SUBROUTINE KPP_INIT_FIXED( myThid )
0007
0008
0009
0010
afaeb4fe62 Jean*0011
7e819019d5 Dimi*0012
0013
0014
0015
0016 IMPLICIT NONE
0017
0018
0019 #include "EEPARAMS.h"
0020 #include "SIZE.h"
0021 #include "PARAMS.h"
ee7edf0613 Davi*0022 #include "GRID.h"
0023 #include "KPP_PARAMS.h"
7e819019d5 Dimi*0024
0025
0026
0027
0028 INTEGER myThid
0029
0030
0031
0032
ee7edf0613 Davi*0033
0034
0035
afaeb4fe62 Jean*0036 INTEGER i, j, k
ee7edf0613 Davi*0037 _RL zehat
0038 _RL zeta
0039 _RL usta
0040 _RL p25, p33
0041
afaeb4fe62 Jean*0042
0043
0044 #ifdef ALLOW_MNC
0045 IF (useMNC) THEN
0046
0047 CALL MNC_CW_ADD_VNAME('KPPviscAz', 'Cen_xy_Hn__C__t',
0048 & 4,5, myThid)
0049 CALL MNC_CW_ADD_VATTR_TEXT('KPPviscAz','units','m^2/s',
0050 & myThid)
0051 CALL MNC_CW_ADD_VATTR_TEXT('KPPviscAz','long_name',
0052 & 'KPP_vertical_eddy_viscosity_coefficient', myThid)
0053 CALL MNC_CW_ADD_VATTR_TEXT('KPPviscAz',
0054 & 'coordinates','XC YC RC iter', myThid)
0055
0056 CALL MNC_CW_ADD_VNAME('KPPdiffKzS', 'Cen_xy_Hn__C__t',
0057 & 4,5, myThid)
0058 CALL MNC_CW_ADD_VATTR_TEXT('KPPdiffKzS','units','m^2/s',
0059 & myThid)
0060 CALL MNC_CW_ADD_VATTR_TEXT('KPPdiffKzS','long_name',
0061 & 'KPP_salt-tracer_vertical_diffusion_coefficient',
0062 & myThid)
0063 CALL MNC_CW_ADD_VATTR_TEXT('KPPdiffKzS',
0064 & 'coordinates','XC YC RC iter', myThid)
0065
0066 CALL MNC_CW_ADD_VNAME('KPPdiffKzT', 'Cen_xy_Hn__C__t',
0067 & 4,5, myThid)
0068 CALL MNC_CW_ADD_VATTR_TEXT('KPPdiffKzT','units','m^2/s',
0069 & myThid)
0070 CALL MNC_CW_ADD_VATTR_TEXT('KPPdiffKzT','long_name',
0071 & 'KPP_vertical_heat_diffusion_coefficient', myThid)
0072 CALL MNC_CW_ADD_VATTR_TEXT('KPPdiffKzT',
0073 & 'coordinates','XC YC RC iter', myThid)
0074
0075 CALL MNC_CW_ADD_VNAME('KPPGHAT', 'Cen_xy_Hn__C__t',
0076 & 4,5, myThid)
0077 CALL MNC_CW_ADD_VATTR_TEXT('KPPGHAT','units','s/m^2',
0078 & myThid)
0079 CALL MNC_CW_ADD_VATTR_TEXT('KPPGHAT','long_name',
0080 & 'KPP_nonlocal_transport_coefficient', myThid)
0081 CALL MNC_CW_ADD_VATTR_TEXT('KPPGHAT',
0082 & 'coordinates','XC YC RC iter', myThid)
0083
141e734c73 Jean*0084 CALL MNC_CW_ADD_VNAME('KPPghatKS', 'Cen_xy_Hn__L__t',
0085 & 4,5, myThid)
0086 CALL MNC_CW_ADD_VATTR_TEXT('KPPghatKS','units','0-1',
0087 & myThid)
0088 CALL MNC_CW_ADD_VATTR_TEXT('KPPghatKS','long_name',
0089 & 'ratio of KPP non-local (salt) flux relative to surface-flux',
0090 & myThid)
0091 CALL MNC_CW_ADD_VATTR_TEXT('KPPghatKS','coordinates',
0092 & 'XC YC RF iter', myThid)
0093
afaeb4fe62 Jean*0094 CALL MNC_CW_ADD_VNAME('KPPHBL', 'Cen_xy_Hn__-__t',
0095 & 3,4, myThid)
0096 CALL MNC_CW_ADD_VATTR_TEXT('KPPHBL','units','m',
0097 & myThid)
0098 CALL MNC_CW_ADD_VATTR_TEXT('KPPHBL','long_name',
0099 & 'KPP_boundary_layer_depth', myThid)
0100 CALL MNC_CW_ADD_VATTR_TEXT('KPPHBL',
0101 & 'coordinates','XC YC iter', myThid)
0102
0103 CALL MNC_CW_ADD_VNAME('KPPFRAC', 'Cen_xy_Hn__-__t',
0104 & 3,4, myThid)
0105 CALL MNC_CW_ADD_VATTR_TEXT('KPPFRAC','units','dimless',
0106 & myThid)
0107 CALL MNC_CW_ADD_VATTR_TEXT('KPPFRAC','long_name',
0108 & 'KPP_short-wave_fraction_penetrating_mixing_layer',
0109 & myThid)
0110 CALL MNC_CW_ADD_VATTR_TEXT('KPPFRAC',
0111 & 'coordinates','XC YC iter', myThid)
0112 ENDIF
0113 #endif /* ALLOW_MNC */
0114
ee7edf0613 Davi*0115
0116 _BEGIN_MASTER(myThid)
0117
0118 p25 = 0.25 _d 0
0119 p33 = 1. _d 0 / 3. _d 0
0120
0121
0122
0123
0124
0125 Vtc = concv * SQRT(0.2 _d 0 /concs/epsilon) / vonk**2 / Ricr
0126 cg = cstar * vonk * (concs * vonk * epsilon)**p33
0127
0128
0129
0130
0131
0132 deltaz = (zmax - zmin)/(nni + 1)
0133 deltau = (umax - umin)/(nnj + 1)
0134
0135 DO i = 0, nni + 1
0136 zehat = deltaz*i + zmin
0137 DO j = 0, nnj + 1
0138 usta = deltau*j + umin
0139 zeta = zehat / max(phepsi,usta**3)
0140 IF (zehat .GE. 0.) THEN
0141 wmt(i,j) = vonk*usta/(1. + conc1*zeta)
0142 wst(i,j) = wmt(i,j)
0143 ELSE
0144 IF (zeta .GT. zetam) THEN
0145 wmt(i,j) = vonk*usta*(1. - conc2*zeta)**p25
0146 ELSE
0147 wmt(i,j) = vonk*(conam*usta**3 - concm*zehat)**p33
0148 ENDIF
0149 IF (zeta .GT. zetas) THEN
0150 wst(i,j) = vonk*usta*SQRT(1. _d 0 - conc3*zeta)
0151 ELSE
0152 wst(i,j) = vonk*(conas*usta**3 - concs*zehat)**p33
0153 ENDIF
0154 ENDIF
0155 ENDDO
0156 ENDDO
0157
0158
0159
0160
0161
0162 IF (minKPPhbl .EQ. UNSET_RL) THEN
0163 minKPPhbl = -rC(1)
0164 ENDIF
0165 zgrid(0) = phepsi
0166 hwide(0) = phepsi
0167
0168
0169
0170
0171
0172
0173
0174 DO k = 1, Nr
0175 zgrid(k) = rC(k)
0176 hwide(k) = drF(k)
0177 ENDDO
0178
0179 zgrid(Nrp1) = zgrid(Nr) * 100.
0180
0181 hwide(Nrp1) = phepsi
0182
0183 _END_MASTER(myThid)
0184 _BARRIER
7e819019d5 Dimi*0185
0186 #ifdef ALLOW_DIAGNOSTICS
0187 IF ( useDiagnostics ) THEN
0188 CALL KPP_DIAGNOSTICS_INIT( myThid )
0189 ENDIF
0190 #endif
0191
0192 RETURN
0193 END