C $Header: /home/ubuntu/mnt/e9_copy/MITgcm/pkg/kpp/kpp_readparms.F,v 1.13 2004/12/01 20:35:31 edhill Exp $ C $Name: $ #include "KPP_OPTIONS.h" C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| CBOP 0 C !ROUTINE: KPP_READPARMS C !INTERFACE: SUBROUTINE KPP_READPARMS( myThid ) C !DESCRIPTION: C Routine to read in file data.kpp C !USES: IMPLICIT NONE #include "SIZE.h" #include "EEPARAMS.h" #include "PARAMS.h" #include "GRID.h" #include "KPP_PARAMS.h" C !INPUT PARAMETERS: INTEGER myThid CEOP C !LOCAL VARIABLES: #ifdef ALLOW_KPP C msgBuf - Informational/error meesage buffer C errIO - IO error flag C iUnit - Work variable for IO unit number CHARACTER*(MAX_LEN_MBUF) msgBuf INTEGER errIO, iUnit C-- KPP vertical mixing parameters NAMELIST /KPP_PARM01/ & kpp_freq, kpp_dumpFreq, kpp_taveFreq, & KPPmixingMaps, KPPwriteState, KPP_ghatUseTotalDiffus, & minKPPhbl, & epsln, phepsi, epsilon, vonk, dB_dz, & conc1, conam, concm, conc2, zetam, & conas, concs, conc3, zetas, & Ricr, cekman, cmonob, concv, hbf, & zmin, zmax, umin, umax, & num_v_smooth_Ri, num_v_smooth_BV, & num_z_smooth_sh, num_m_smooth_sh, & Riinfty, BVSQcon, difm0, difs0, dift0, & difmcon, difscon, diftcon, & cstar _BEGIN_MASTER(myThid) WRITE(msgBuf,'(A)') ' KPP_INIT: opening data.kpp' CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, & SQUEEZE_RIGHT , 1) CALL OPEN_COPY_DATA_FILE( I 'data.kpp', 'KPP_INIT', O iUnit, I myThid ) C-- set default KPP vertical mixing parameters kpp_freq = deltaTClock kpp_dumpFreq = dumpFreq kpp_taveFreq = taveFreq KPPmixingMaps = .FALSE. KPPwriteState = .FALSE. KPP_ghatUseTotalDiffus = .FALSE. IF ( setCenterDr ) THEN minKPPhbl = delRc(1) ELSE minKPPhbl = delR(1)*0.5 ENDIF C----------------------------------------------------------------------- C define some non-dimensional constants and C the vertical mixing coefficients in m-k-s units C----------------------------------------------------------------------- epsln = 1.e-20 phepsi = 1.e-10 epsilon = 0.1 vonk = 0.40 dB_dz = 5.2e-5 conc1 = 5.0 conam = 1.257 concm = 8.380 conc2 = 16.0 zetam = -0.2 conas = -28.86 concs = 98.96 conc3 = 16.0 zetas = -1.0 c parameters for subroutine "bldepth" Ricr = 0.30 cekman = 0.7 cmonob = 1.0 concv = 1.8 hbf = 1.0 c parameters and common arrays for subroutines c "kmixinit" and "wscale" zmin = -4.e-7 zmax = 0.0 umin = 0.0 umax = .04 c parameters for subroutine "Ri_iwmix" num_v_smooth_Ri = 0 num_v_smooth_BV = 0 num_z_smooth_sh = 0 num_m_smooth_sh = 0 Riinfty = 0.7 BVSQcon = -0.2e-4 difm0 = 0.005 difs0 = 0.005 dift0 = 0.005 difmcon = 0.1 difscon = 0.1 diftcon = 0.1 C parameters for subroutine "blmix" cstar = 10. C----------------------------------------------------------------------- C-- Read settings from model parameter file "data.kpp". READ(UNIT=iUnit,NML=KPP_PARM01,IOSTAT=errIO) IF ( errIO .LT. 0 ) THEN WRITE(msgBuf,'(A)') & 'S/R INI_PARMS' CALL PRINT_ERROR( msgBuf , 1) WRITE(msgBuf,'(A)') & 'Error reading numerical model ' CALL PRINT_ERROR( msgBuf , 1) WRITE(msgBuf,'(A)') & 'parameter file "data.kpp"' CALL PRINT_ERROR( msgBuf , 1) WRITE(msgBuf,'(A)') & 'Problem in namelist KPP_PARM01' CALL PRINT_ERROR( msgBuf , 1) C CALL MODELDATA_EXAMPLE( myThid ) STOP 'ABNORMAL END: S/R KPP_INIT' ENDIF CLOSE(iUnit) WRITE(msgBuf,'(A)') ' KPP_INIT: finished reading data.kpp' CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, & SQUEEZE_RIGHT , 1) _END_MASTER(myThid) #ifdef ALLOW_MNC IF (useMNC) THEN C Define grid types for KPP variables CALL MNC_CW_ADD_VNAME('KPPviscAz', 'Cen_xy_Hn__C__t', & 4,5, myThid) CALL MNC_CW_ADD_VATTR_TEXT('KPPviscAz','units','m^2/s', & myThid) CALL MNC_CW_ADD_VATTR_TEXT('KPPviscAz','long_name', & 'KPP_vertical_eddy_viscosity_coefficient', myThid) CALL MNC_CW_ADD_VATTR_TEXT('KPPviscAz', & 'coordinates','XC YC RC iter', myThid) CALL MNC_CW_ADD_VNAME('KPPdiffKzS', 'Cen_xy_Hn__C__t', & 4,5, myThid) CALL MNC_CW_ADD_VATTR_TEXT('KPPdiffKzS','units','m^2/s', & myThid) CALL MNC_CW_ADD_VATTR_TEXT('KPPdiffKzS','long_name', & 'KPP_salt-tracer_vertical_diffusion_coefficient', & myThid) CALL MNC_CW_ADD_VATTR_TEXT('KPPdiffKzS', & 'coordinates','XC YC RC iter', myThid) CALL MNC_CW_ADD_VNAME('KPPdiffKzT', 'Cen_xy_Hn__C__t', & 4,5, myThid) CALL MNC_CW_ADD_VATTR_TEXT('KPPdiffKzT','units','m^2/s', & myThid) CALL MNC_CW_ADD_VATTR_TEXT('KPPdiffKzT','long_name', & 'KPP_vertical_heat_diffusion_coefficient', myThid) CALL MNC_CW_ADD_VATTR_TEXT('KPPdiffKzT', & 'coordinates','XC YC RC iter', myThid) CALL MNC_CW_ADD_VNAME('KPPghat', 'Cen_xy_Hn__C__t', & 4,5, myThid) CALL MNC_CW_ADD_VATTR_TEXT('KPPghat','units','s/m^2', & myThid) CALL MNC_CW_ADD_VATTR_TEXT('KPPghat','long_name', & 'KPP_nonlocal_transport_coefficient', myThid) CALL MNC_CW_ADD_VATTR_TEXT('KPPghat', & 'coordinates','XC YC RC iter', myThid) CALL MNC_CW_ADD_VNAME('KPPhbl', 'Cen_xy_Hn__-__t', & 3,4, myThid) CALL MNC_CW_ADD_VATTR_TEXT('KPPhbl','units','m', & myThid) CALL MNC_CW_ADD_VATTR_TEXT('KPPhbl','long_name', & 'KPP_boundary_layer_depth', myThid) CALL MNC_CW_ADD_VATTR_TEXT('KPPhbl', & 'coordinates','XC YC iter', myThid) CALL MNC_CW_ADD_VNAME('KPPfrac', 'Cen_xy_Hn__-__t', & 3,4, myThid) CALL MNC_CW_ADD_VATTR_TEXT('KPPfrac','units','dimless', & myThid) CALL MNC_CW_ADD_VATTR_TEXT('KPPfrac','long_name', & 'KPP_short-wave_fraction_penetrating_mixing_layer', & myThid) CALL MNC_CW_ADD_VATTR_TEXT('KPPfrac', & 'coordinates','XC YC iter', myThid) ENDIF #endif /* ALLOW_MNC */ C-- Everyone else must wait for the parameters to be loaded _BARRIER #endif /* ALLOW_KPP */ return end