Back to home page

MITgcm

 
 

    


File indexing completed on 2025-11-22 06:08:49 UTC

view on githubraw file Latest commit feb7fa5d on 2025-11-21 15:45:20 UTC
5ca83cd8f7 Dani*0001 C this needs changes
                0002 
                0003 #include "STREAMICE_OPTIONS.h"
96b006450c dngo*0004 #ifdef ALLOW_COST
                0005 # include "COST_OPTIONS.h"
                0006 #endif
5ca83cd8f7 Dani*0007 
                0008 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
                0009 CBOP 0
                0010       SUBROUTINE STREAMICE_READPARMS( myThid )
                0011 
                0012 C     !DESCRIPTION:
                0013 C     Initialize STREAMICE variables and constants.
                0014 
                0015 C     !USES:
                0016       IMPLICIT NONE
                0017 #include "SIZE.h"
                0018 #include "EEPARAMS.h"
                0019 #include "PARAMS.h"
                0020 #include "STREAMICE.h"
feb7fa5d1e dngo*0021 #include "STREAMICE_FP.h"
5ca83cd8f7 Dani*0022 #include "STREAMICE_BDRY.h"
07e785229e dngo*0023 c#ifdef ALLOW_STREAMICE_FLUX_CONTROL
                0024 c#include "STREAMICE_CTRL_FLUX.h"
                0025 c#endif
5ca83cd8f7 Dani*0026 
                0027 C     !INPUT PARAMETERS:
                0028       INTEGER myThid
                0029 CEOP
                0030 
                0031 #ifdef ALLOW_STREAMICE
                0032 C     !LOCAL VARIABLES:
                0033 C     msgBuf     :: Informational/error message buffer
                0034 C     iUnit      :: Work variable for IO unit number
                0035       CHARACTER*(MAX_LEN_MBUF) msgBuf
07e785229e dngo*0036       INTEGER iUnit
96b006450c dngo*0037 # ifdef ALLOW_STREAMICE_TC_COST
                0038       INTEGER iarr
                0039 # endif
                0040 
                0041 c      _RL streamice_bdot_depth_nomelt
                0042 c      _RL streamice_bdot_depth_maxmelt
                0043 c      _RL streamice_bdot_maxmelt
5ca83cd8f7 Dani*0044 
                0045       NAMELIST /STREAMICE_PARM01/
                0046      &     streamice_density, streamice_density_ocean_avg,
e4cfce0a6c Dani*0047      &     streamice_density_firn,
5ca83cd8f7 Dani*0048      &     B_glen_isothermal, n_glen, eps_glen_min, eps_u_min,
02e2d7ff52 Jean*0049      &     C_basal_fric_const, n_basal_friction,
5ca83cd8f7 Dani*0050      &     streamice_vel_update,streamice_cg_tol,streamice_nonlin_tol,
bbd6229661 Dani*0051      &     streamice_nonlin_tol_fp, streamice_err_norm,
5ca83cd8f7 Dani*0052      &     streamice_max_cg_iter, streamice_max_nl_iter,
d2cdb9260d Dani*0053      &     streamice_maxcgiter_cpl, streamice_maxnliter_cpl,
5ca83cd8f7 Dani*0054      &     STREAMICEthickInit,
                0055      &     STREAMICEsigcoordInit,
                0056      &     STREAMICEsigcoordFile,
                0057      &     STREAMICEthickFile,
                0058      &     STREAMICEcalveMaskFile,
                0059      &     STREAMICEcostMaskFile,
                0060      &     STREAMICE_dump_mdsio, STREAMICE_tave_mdsio,
                0061      &     STREAMICE_dump_mnc, STREAMICE_tave_mnc,
f3f31151db Dani*0062      &     STREAMICE_move_front,
5ca83cd8f7 Dani*0063      &     STREAMICE_calve_to_mask,
                0064      &     STREAMICE_diagnostic_only,
                0065      &     STREAMICE_lower_cg_tol,
                0066      &     streamice_CFL_factor,
                0067      &     streamice_adjDump,
                0068      &     streamice_bg_surf_slope_x, streamice_bg_surf_slope_y,
                0069      &     streamice_kx_b_init, streamice_ky_b_init,
                0070      &     STREAMICEbasalTracConfig,
0a8c8b23d7 Dani*0071      &     STREAMICEBdotConfig,
07e785229e dngo*0072      &     STREAMICEAdotConfig,
5ca83cd8f7 Dani*0073      &     STREAMICEbasalTracFile,
0a8c8b23d7 Dani*0074      &     STREAMICEBdotFile,
07e785229e dngo*0075      &     STREAMICEAdotFile,
52d1822301 Dani*0076      &     STREAMICEBdotTimeDepFile,
96b006450c dngo*0077      &     streamice_bdot_depth_nomelt,
                0078      &     streamice_bdot_depth_maxmelt,
                0079      &     streamice_bdot_maxmelt,
                0080      &     streamice_bdot_exp,
5ca83cd8f7 Dani*0081      &     STREAMICEtopogFile,
                0082      &     STREAMICEhmaskFile,
                0083      &     STREAMICEHBCyFile,
                0084      &     STREAMICEHBCxFile,
                0085      &     STREAMICEuFaceBdryFile,
                0086      &     STREAMICEvFaceBdryFile,
                0087      &     STREAMICEuDirichValsFile,
02e2d7ff52 Jean*0088      &     STREAMICEvDirichValsFile,
                0089      &     STREAMICEuMassFluxFile,
                0090      &     STREAMICEvMassFluxFile,
7924606b84 Dani*0091      &     STREAMICEuNormalStressFile,
                0092      &     STREAMICEvNormalStressFile,
                0093      &     STREAMICEuShearStressFile,
                0094      &     STREAMICEvShearStressFile,
52d1822301 Dani*0095      &     STREAMICEuNormalTimeDepFile,
                0096      &     STREAMICEvNormalTimeDepFile,
                0097      &     STREAMICEuShearTimeDepFile,
                0098      &     STREAMICEvShearTimeDepFile,
2a16ced2f5 Dani*0099      &     STREAMICEuFluxTimeDepFile, STREAMICEvFluxTimeDepFile,
96b006450c dngo*0100      &     bdotMaxmeltTimeDepFile,
                0101      &     bglenTimeDepFile,
                0102      &     cfricTimeDepFile,
5ca83cd8f7 Dani*0103      &     STREAMICEGlenConstFile, STREAMICEGlenConstConfig,
                0104      &     STREAMICE_ppm_driving_stress,
                0105      &     STREAMICE_h_ctrl_const_surf,
                0106      &     streamice_addl_backstress,
                0107      &     streamice_smooth_gl_width,
                0108      &     streamice_adot_uniform,
e4cfce0a6c Dani*0109      &     streamice_firn_correction,
                0110      &     STREAMICE_apply_firn_correction,
d2cdb9260d Dani*0111      &     STREAMICE_ADV_SCHEME, streamice_forcing_period,
                0112      &     STREAMICE_chkfixedptconvergence,
                0113      &     STREAMICE_chkresidconvergence,
29d9814714 Dani*0114      &     STREAMICE_alt_driving_stress,
07e785229e dngo*0115      &     STREAMICE_allow_reg_coulomb,
0fbff46b46 dngo*0116      &     STREAMICE_use_log_ctrl,
                0117      &     STREAMICE_vel_ext,
                0118      &     STREAMICE_vel_ext_cgrid,
                0119      &     STREAMICE_uvel_ext_file,
                0120      &     STREAMICE_vvel_ext_file,
96b006450c dngo*0121      &     STREAMICEBdotDepthFile,
                0122      &     STREAMICEBdotMaxMeltFile,
                0123      &      STREAMICE_shelf_dhdt_ctrl,
1cb54b8236 Dani*0124 #ifdef STREAMICE_FLOWLINE_BUTTRESS
                0125      &     streamice_buttr_width,
                0126      &     useStreamiceFlowlineButtr,
                0127 #endif
d2cdb9260d Dani*0128      &     STREAMICE_allow_cpl
d82c08285f Dani*0129 #ifdef ALLOW_OPENAD
                0130      &     ,streamice_smooth_thick_adjoint
                0131 #endif
5ca83cd8f7 Dani*0132 
                0133 #ifdef ALLOW_STREAMICE_2DTRACER
                0134       NAMELIST /STREAMICE_PARMTRACER/
                0135      &     STREAMICETrac2DBCxFile,
                0136      &     STREAMICETrac2DBCyFile,
                0137      &     STREAMICETrac2DINITFile
                0138 #endif
                0139 
                0140 #ifdef ALLOW_PETSC
                0141       NAMELIST /STREAMICE_PARMPETSC/
07e785229e dngo*0142      &     PETSC_PRECOND_TYPE, PETSC_SOLVER_TYPE,
                0143      &     streamice_use_petsc, streamice_maxnliter_petsc,
                0144      &     streamice_petsc_pcfactorlevels
5ca83cd8f7 Dani*0145 #endif
                0146 
feb7fa5d1e dngo*0147 #ifdef ALLOW_STREAMICE_FP_ADJ
07e785229e dngo*0148       NAMELIST /STREAMICE_PARMOAD/
0fbff46b46 dngo*0149      &     streamice_nonlin_tol_adjoint,
                0150      &     streamice_nonlin_tol_adjoint_rl
729bb43bca Dani*0151 #ifdef ALLOW_PETSC
07e785229e dngo*0152      &     ,STREAMICE_OAD_petsc_reuse,
729bb43bca Dani*0153      &     PETSC_PRECOND_OAD
                0154 #endif
                0155 #endif
                0156 
96b006450c dngo*0157 #ifdef ALLOW_COST_STREAMICE
                0158       NAMELIST /STREAMICE_COST/
                0159      &     STREAMICEvelOptimSnapBasename,
                0160      &     STREAMICEvelOptimTCBasename,
                0161      &     STREAMICEsurfOptimTCBasename,
                0162      &     STREAMICEBglenCostMaskFile,
                0163      &     streamice_wgt_drift,
                0164      &     streamice_wgt_vel,
                0165      &     streamice_wgt_vel_norm,
                0166      &     streamice_wgt_surf,
                0167      &     streamice_wgt_tikh_beta,
                0168      &     streamice_wgt_tikh_bglen,
                0169      &     streamice_wgt_tikh_gen,
                0170      &     streamice_wgt_prior_bglen,
                0171      &     streamice_wgt_prior_gen,
                0172      &     STREAMICE_do_snapshot_cost,
                0173      &     STREAMICE_do_timedep_cost,
                0174      &     STREAMICE_do_verification_cost,
                0175      &     STREAMICE_do_vaf_cost
                0176 #ifdef ALLOW_STREAMICE_TC_COST
                0177      &     ,streamice_vel_cost_timesteps,
                0178      &     streamice_surf_cost_timesteps
                0179 #endif
                0180 #endif
                0181 
07e785229e dngo*0182 c#ifdef ALLOW_STREAMICE_FLUX_CONTROL
                0183 c      NAMELIST /STREAMICE_PARMFLUXCTRL/
                0184 c     &     n_fluxes, n_epochs,
                0185 c     &     streamice_ctrl_flux_id,
                0186 c     &     streamice_ctrl_flux_scaleVel
                0187 c#endif
5ca83cd8f7 Dani*0188 
                0189       NAMELIST /STREAMICE_PARM02/
                0190      &     shelf_max_draft,
                0191      &     shelf_min_draft,
                0192      &     shelf_edge_pos,
                0193      &     shelf_slope_scale,
                0194      &     shelf_flat_width,
                0195      &     flow_dir
                0196 
                0197       NAMELIST /STREAMICE_PARM03/
                0198      &     min_x_noflow_NORTH, max_x_noflow_NORTH,
                0199      &     min_x_noflow_SOUTH, max_x_noflow_SOUTH,
                0200      &     min_y_noflow_WEST, max_y_noflow_WEST,
                0201      &     min_y_noflow_EAST, max_y_noflow_EAST,
                0202      &     min_x_noStress_NORTH, max_x_noStress_NORTH,
                0203      &     min_x_noStress_SOUTH, max_x_noStress_SOUTH,
                0204      &     min_y_noStress_WEST, max_y_noStress_WEST,
                0205      &     min_y_noStress_EAST, max_y_noStress_EAST,
                0206      &     min_x_FluxBdry_NORTH, max_x_FluxBdry_NORTH,
                0207      &     min_x_FluxBdry_SOUTH, max_x_FluxBdry_SOUTH,
                0208      &     min_y_FluxBdry_WEST, max_y_FluxBdry_WEST,
                0209      &     min_y_FluxBdry_EAST, max_y_FluxBdry_EAST,
                0210      &     min_x_Dirich_NORTH, max_x_Dirich_NORTH,
                0211      &     min_x_Dirich_SOUTH, max_x_Dirich_SOUTH,
                0212      &     min_y_Dirich_WEST, max_y_Dirich_WEST,
                0213      &     min_y_Dirich_EAST, max_y_Dirich_EAST,
                0214      &     min_x_CFBC_NORTH, max_x_CFBC_NORTH,
                0215      &     min_x_CFBC_SOUTH, max_x_CFBC_SOUTH,
                0216      &     min_y_CFBC_WEST, max_y_CFBC_WEST,
                0217      &     min_y_CFBC_EAST, max_y_CFBC_EAST,
                0218      &     flux_bdry_val_SOUTH, flux_bdry_val_NORTH,
                0219      &     flux_bdry_val_WEST, flux_bdry_val_EAST,
                0220      &     STREAMICE_NS_periodic, STREAMICE_EW_periodic
                0221 
02e2d7ff52 Jean*0222 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
                0223 
                0224       IF ( .NOT.useStreamIce ) THEN
                0225 C-    pkg STREAMICE is not used
                0226         _BEGIN_MASTER(myThid)
                0227 C-    Track pkg activation status:
                0228          STREAMICEisOn = .FALSE.
                0229 C     print a (weak) warning if data.streamice is found
                0230          CALL PACKAGES_UNUSED_MSG( 'useStreamIce', ' ', ' ' )
                0231         _END_MASTER(myThid)
                0232         RETURN
                0233       ENDIF
                0234 
5ca83cd8f7 Dani*0235       _BEGIN_MASTER(myThid)
                0236 
02e2d7ff52 Jean*0237 C This routine has been called by the main model so we set our
                0238 C internal flag to indicate we are in business
                0239       STREAMICEisOn = .TRUE.
                0240 
5ca83cd8f7 Dani*0241 C--   Default values for STREAMICE
                0242 
02e2d7ff52 Jean*0243       streamice_density = 917.
5ca83cd8f7 Dani*0244       streamice_density_ocean_avg = 1024.
07e785229e dngo*0245       streamice_density_firn = streamice_density
5ca83cd8f7 Dani*0246       B_glen_isothermal = 9.461e-18   !  Pa (-1/3) a
                0247       n_glen = 3.
                0248       eps_glen_min = 1.0e-12
                0249       eps_u_min = 1.0e-6
                0250       C_basal_fric_const = 31.71 ! Pa (m/a)-1n
07e785229e dngo*0251       n_basal_friction = -1.
d2cdb9260d Dani*0252       streamice_vel_update = deltaT ! seconds
5ca83cd8f7 Dani*0253       streamice_cg_tol = 1e-6
                0254       streamice_nonlin_tol = 1e-6
                0255       streamice_nonlin_tol_fp = 1.e-14
bbd6229661 Dani*0256       streamice_err_norm = 0.
feb7fa5d1e dngo*0257 #ifdef ALLOW_STREAMICE_FP_ADJ
95afe7199b Dani*0258       streamice_nonlin_tol_adjoint = 1.e-14
0fbff46b46 dngo*0259       streamice_nonlin_tol_adjoint_rl = 1.e-14
729bb43bca Dani*0260 #ifdef ALLOW_PETSC
                0261       PETSC_PRECOND_OAD = 'MUMPS'
                0262       STREAMICE_OAD_petsc_reuse =.false.
                0263 #endif
95afe7199b Dani*0264 #endif
5ca83cd8f7 Dani*0265       streamice_max_cg_iter = 2000
                0266       streamice_max_nl_iter = 100
07e785229e dngo*0267       streamice_maxnliter_petsc = -1
d2cdb9260d Dani*0268       streamice_maxcgiter_cpl = 0
                0269       streamice_maxnliter_cpl = 0
07e785229e dngo*0270       streamice_petsc_pcfactorlevels = 0
d82c08285f Dani*0271 #ifdef ALLOW_OPENAD
                0272       streamice_smooth_thick_adjoint = 0
                0273 #endif
07e785229e dngo*0274 c      streamice_n_sub_regularize = 4
5ca83cd8f7 Dani*0275       streamice_CFL_factor = .5
                0276       streamice_adjDump = 0.
                0277       streamice_bg_surf_slope_x = .0
                0278       streamice_bg_surf_slope_y = 0.
                0279       streamice_kx_b_init = 1.
                0280       streamice_ky_b_init = 1.
                0281       streamice_addl_backstress = 0.0
                0282       streamice_smooth_gl_width = 0.0
                0283       streamice_adot_uniform = 0.0
52d1822301 Dani*0284       streamice_forcing_period = 0
e4cfce0a6c Dani*0285       streamice_firn_correction = 0.
96b006450c dngo*0286       streamice_bdot_depth_nomelt = 0.
                0287       streamice_bdot_depth_maxmelt = 0.
                0288       streamice_bdot_maxmelt = 0.
                0289       streamice_bdot_exp = 1.
                0290 
1cb54b8236 Dani*0291 #ifdef STREAMICE_FLOWLINE_BUTTRESS
                0292       streamice_buttr_width = 1000000000.
                0293 #endif
e4cfce0a6c Dani*0294       STREAMICE_apply_firn_correction = .false.
07e785229e dngo*0295 
5ca83cd8f7 Dani*0296       STREAMICEthickInit = 'FILE'
                0297       STREAMICEthickFile = ' '
                0298       STREAMICEcalveMaskFile = ' '
                0299       STREAMICEsigcoordInit = 'UNIFORM'
                0300       STREAMICEsigcoordFile = ' '
                0301       STREAMICEbasalTracConfig = 'UNIFORM'
0a8c8b23d7 Dani*0302       STREAMICEBdotConfig = ''
07e785229e dngo*0303       STREAMICEAdotConfig = ''
0a8c8b23d7 Dani*0304       STREAMICEBdotFile = ''
07e785229e dngo*0305       STREAMICEAdotFile = ''
52d1822301 Dani*0306       STREAMICEBdotTimeDepFile = ' '
5ca83cd8f7 Dani*0307       STREAMICEbasalTracFile = ' '
                0308       STREAMICEtopogFile = ''
                0309       STREAMICEhmaskFile = ''
                0310       STREAMICEHBCyFile = ''
                0311       STREAMICEHBCxFile = ''
7924606b84 Dani*0312       STREAMICEuNormalStressFile = ''
                0313       STREAMICEvNormalStressFile = ''
                0314       STREAMICEuShearStressFile = ''
                0315       STREAMICEvShearStressFile = ''
52d1822301 Dani*0316       STREAMICEuNormalTimeDepFile = ' '
                0317       STREAMICEvNormalTimeDepFile = ' '
                0318       STREAMICEuShearTimeDepFile = ' '
                0319       STREAMICEvShearTimeDepFile = ' '
2a16ced2f5 Dani*0320       STREAMICEuFluxTimeDepFile = ' '
                0321       STREAMICEvFluxTimeDepFile = ' '
0fbff46b46 dngo*0322       STREAMICE_vvel_ext_file = ' '
                0323       STREAMICE_uvel_ext_file = ' '
96b006450c dngo*0324       bdotMaxmeltTimeDepFile = ' '
                0325       bglenTimeDepFile = ' '
                0326       cfricTimeDepFile = ' '
7924606b84 Dani*0327 
5ca83cd8f7 Dani*0328 #ifdef ALLOW_STREAMICE_2DTRACER
                0329       STREAMICETrac2DBCxFile = ''
                0330       STREAMICETrac2DBCyFile = ''
                0331       STREAMICETrac2DInitFile = ''
                0332 #endif
                0333       STREAMICEuFaceBdryFile = ''
                0334       STREAMICEvFaceBdryFile = ''
                0335       STREAMICEuDirichValsFile = ''
                0336       STREAMICEvDirichValsFile = ''
7924606b84 Dani*0337       STREAMICEuMassFluxFile = ''
                0338       STREAMICEvMassFluxFile = ''
5ca83cd8f7 Dani*0339       STREAMICEGlenConstFile = ''
                0340       STREAMICEcostMaskFile = ''
                0341       STREAMICEGlenConstConfig = 'UNIFORM'
                0342 #ifdef ALLOW_PETSC
                0343       PETSC_PRECOND_TYPE = 'PCBJACOBI'
                0344       PETSC_SOLVER_TYPE = 'KSPCG'
8a34959769 dngo*0345       streamice_use_petsc = .false.
5ca83cd8f7 Dani*0346 #endif
                0347       STREAMICE_ADV_SCHEME = ''
96b006450c dngo*0348       STREAMICEBdotDepthFile = ''
                0349       STREAMICEBdotMaxMeltFile = ''
5ca83cd8f7 Dani*0350 
07e785229e dngo*0351 c#ifdef ALLOW_STREAMICE_FLUX_CONTROL
                0352 c      n_fluxes = 0
                0353 c      n_epochs = 0
                0354 c      DO iarr=1,n_fluxes_max
                0355 c       streamice_ctrl_flux_id(iarr) = 0
                0356 c       DO tarr=1,n_epochs_max
                0357 c        streamice_ctrl_flux_scaleVel(iarr,tarr) = 0. _d 0
                0358 c       ENDDO
                0359 c      ENDDO
                0360 c#endif
5ca83cd8f7 Dani*0361 
                0362       STREAMICE_tave_mdsio = .TRUE.
                0363       STREAMICE_dump_mdsio = .TRUE.
02e2d7ff52 Jean*0364       STREAMICE_dump_mnc = .FALSE.
5ca83cd8f7 Dani*0365       STREAMICE_tave_mnc = .FALSE.
07e785229e dngo*0366 c      STREAMICE_GL_regularize = .FALSE.
5ca83cd8f7 Dani*0367       STREAMICE_move_front = .FALSE.
                0368       STREAMICE_calve_to_mask = .FALSE.
07e785229e dngo*0369 c       STREAMICE_geom_file_setup = .FALSE.
                0370 c      STREAMICE_construct_matrix = .TRUE.
5ca83cd8f7 Dani*0371       STREAMICE_lower_cg_tol = .FALSE.
                0372       STREAMICE_diagnostic_only = .FALSE.
1cb54b8236 Dani*0373 #ifdef STREAMICE_FLOWLINE_BUTTRESS
                0374       useStreamiceFlowlineButtr=.FALSE.
                0375 #endif
5ca83cd8f7 Dani*0376       STREAMICE_ppm_driving_stress = .FALSE.
d2cdb9260d Dani*0377       STREAMICE_chkfixedptconvergence = .true.
                0378       STREAMICE_chkresidconvergence = .true.
29d9814714 Dani*0379       STREAMICE_alt_driving_stress = .FALSE.
07e785229e dngo*0380       STREAMICE_allow_reg_coulomb = .FALSE.
5ca83cd8f7 Dani*0381       STREAMICE_h_ctrl_const_surf = .FALSE.
96b006450c dngo*0382       STREAMICE_shelf_dhdt_ctrl = .FALSE.
d2cdb9260d Dani*0383       STREAMICE_allow_cpl = .false.
0fbff46b46 dngo*0384       STREAMICE_use_log_ctrl = .false.
                0385       STREAMICE_vel_ext = .FALSE.
                0386       STREAMICE_vel_ext_cgrid = .FALSE.
07e785229e dngo*0387 c       STREAMICE_hybrid_stress= .FALSE.
5ca83cd8f7 Dani*0388 
96b006450c dngo*0389       STREAMICEvelOptimSnapBasename = ''
                0390       STREAMICEvelOptimTCBasename = ''
                0391       STREAMICEsurfOptimTCBasename = ''
                0392       STREAMICEBglenCostMaskFile = ''
                0393       streamice_wgt_drift = 0.
                0394       streamice_wgt_tikh_beta = 0.
                0395       streamice_wgt_vel_norm = 0.
                0396       streamice_wgt_tikh_bglen = 0.
                0397       streamice_wgt_tikh_gen = 0.
                0398       streamice_wgt_prior_bglen = 0.
                0399       streamice_wgt_prior_gen = 0.
                0400       STREAMICE_do_snapshot_cost = .false.
                0401       STREAMICE_do_timedep_cost = .false.
                0402       STREAMICE_do_verification_cost = .false.
                0403       STREAMICE_do_vaf_cost = .false.
                0404 #ifdef ALLOW_STREAMICE_TC_COST
                0405       do iarr = 1, streamiceMaxCostLevel
                0406        streamice_vel_cost_timesteps(iarr) = -1
                0407        streamice_surf_cost_timesteps(iarr) = -1
                0408       enddo
                0409 #endif
                0410 
5ca83cd8f7 Dani*0411       min_x_noflow_NORTH = 0.
                0412       max_x_noflow_NORTH = 0.
                0413       min_x_noflow_SOUTH = 0.
                0414       max_x_noflow_SOUTH = 0.
                0415       min_y_noflow_WEST = 0.
                0416       max_y_noflow_WEST = 0.
                0417       min_y_noflow_EAST = 0.
                0418       max_y_noflow_EAST = 0.
                0419       min_x_noStress_NORTH = 0.
                0420       max_x_noStress_NORTH = 0.
                0421       min_x_noStress_SOUTH = 0.
                0422       max_x_noStress_SOUTH = 0.
                0423       min_y_noStress_WEST = 0.
                0424       max_y_noStress_WEST = 0.
                0425       min_y_noStress_EAST = 0.
                0426       max_y_noStress_EAST = 0.
                0427       min_x_FluxBdry_NORTH = 0.
                0428       max_x_FluxBdry_NORTH = 0.
                0429       min_x_FluxBdry_SOUTH = 0.
                0430       max_x_FluxBdry_SOUTH = 0.
                0431       min_y_FluxBdry_WEST = 0.
                0432       max_y_FluxBdry_WEST = 0.
                0433       min_y_FluxBdry_EAST = 0.
                0434       max_y_FluxBdry_EAST = 0.
                0435       min_x_Dirich_NORTH = 0.
                0436       max_x_Dirich_NORTH = 0.
                0437       min_x_Dirich_SOUTH = 0.
                0438       max_x_Dirich_SOUTH = 0.
                0439       min_y_Dirich_WEST = 0.
                0440       max_y_Dirich_WEST = 0.
                0441       min_y_Dirich_EAST = 0.
                0442       max_y_Dirich_EAST = 0.
                0443       min_y_CFBC_WEST = 0.
                0444       max_y_CFBC_WEST = 0.
                0445       min_y_CFBC_EAST = 0.
                0446       max_y_CFBC_EAST = 0.
                0447       flux_bdry_val_SOUTH = 0.
                0448       flux_bdry_val_NORTH = 0.
                0449       flux_bdry_val_WEST = 0.
                0450       flux_bdry_val_EAST = 0.
                0451 
                0452       STREAMICE_NS_periodic = .FALSE.
02e2d7ff52 Jean*0453       STREAMICE_EW_periodic = .FALSE.
5ca83cd8f7 Dani*0454 
                0455       WRITE(msgBuf,'(A)') 'STREAMICE_READPARMS: opening data.streamice'
                0456       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0457      &                    SQUEEZE_RIGHT , 1)
                0458       CALL OPEN_COPY_DATA_FILE(
                0459      I                     'data.streamice', 'STREAMICE_READPARMS',
                0460      O                     iUnit,
                0461      I                     myThid )
                0462 
                0463 C     Read parameters from open data file
                0464       READ(UNIT=iUnit,NML=STREAMICE_PARM01)
                0465       WRITE(msgBuf,'(A)')
                0466      &    'STREAMICE_READPARMS: read first param block'
                0467       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0468      &    SQUEEZE_RIGHT , 1)
                0469 
                0470       IF (TRIM(STREAMICEthickInit) .eq. "PARAM") THEN
                0471        READ(UNIT=iUnit,NML=STREAMICE_PARM02)
                0472         WRITE(msgBuf,'(A)')
                0473      &    'STREAMICE_READPARMS: read second param block'
                0474        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0475      &    SQUEEZE_RIGHT , 1)
                0476       ENDIF
                0477 
                0478 #ifdef ALLOW_STREAMICE_2DTRACER
                0479       READ(UNIT=iUnit,NML=STREAMICE_PARMTRACER)
                0480       WRITE(msgBuf,'(A)')
                0481      &    'STREAMICE_READPARMS: read tracer param block'
                0482       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0483      &    SQUEEZE_RIGHT , 1)
                0484 #endif
                0485 
                0486 #ifdef ALLOW_PETSC
                0487       READ(UNIT=iUnit,NML=STREAMICE_PARMPETSC)
                0488       WRITE(msgBuf,'(A)')
                0489      &    'STREAMICE_READPARMS: read petsc param block'
                0490       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0491      &    SQUEEZE_RIGHT , 1)
                0492 #endif
                0493 
feb7fa5d1e dngo*0494 #ifdef ALLOW_STREAMICE_FP_ADJ
729bb43bca Dani*0495       READ(UNIT=iUnit,NML=STREAMICE_PARMOAD)
                0496       WRITE(msgBuf,'(A)')
                0497      &    'STREAMICE_READPARMS: read oad parm block'
                0498       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0499      &    SQUEEZE_RIGHT , 1)
                0500 #endif
                0501 
96b006450c dngo*0502 #if (defined (ALLOW_COST_STREAMICE))
                0503 
                0504       READ(UNIT=iUnit,NML=STREAMICE_COST)
                0505       WRITE(msgBuf,'(A)')
                0506      &    'STREAMICE_READPARMS: read cost param block'
                0507       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0508      &    SQUEEZE_RIGHT , 1)
                0509 #endif
                0510 
                0511 #ifndef STREAMICE_GEOM_FILE_SETUP
5ca83cd8f7 Dani*0512       READ(UNIT=iUnit,NML=STREAMICE_PARM03)
                0513       WRITE(msgBuf,'(A)')
96b006450c dngo*0514      &    'STREAMICE_READPARMS: read bound condn block'
5ca83cd8f7 Dani*0515       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0516      &    SQUEEZE_RIGHT , 1)
96b006450c dngo*0517 #endif
7a77863887 Mart*0518 #ifdef SINGLE_DISK_IO
5ca83cd8f7 Dani*0519       CLOSE(iUnit)
7a77863887 Mart*0520 #else
                0521       CLOSE(iUnit,STATUS='DELETE')
                0522 #endif /* SINGLE_DISK_IO */
5ca83cd8f7 Dani*0523 
07e785229e dngo*0524 c#ifdef ALLOW_STREAMICE_FLUX_CONTROL
                0525 c
                0526 c      CALL OPEN_COPY_DATA_FILE(
                0527 c     I                     'data.strmctrlflux', 'STREAMICE_READPARMS',
                0528 c     O                     iUnit,
                0529 c     I                     myThid )
                0530 c
                0531 c      READ(UNIT=iUnit,NML=STREAMICE_PARMFLUXCTRL)
                0532 c      WRITE(msgBuf,'(A)')
                0533 c     &    'STREAMICE_READPARMS: read flux_ctrl param block'
                0534 c      CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0535 c     &    SQUEEZE_RIGHT , 1)
                0536 c#ifdef SINGLE_DISK_IO
                0537 c      CLOSE(iUnit)
                0538 c#else
                0539 c      CLOSE(iUnit,STATUS='DELETE')
                0540 c#endif /* SINGLE_DISK_IO */
                0541 c#endif
5ca83cd8f7 Dani*0542 
                0543       streamice_nstep_velocity = NINT (streamice_vel_update / deltaT)
                0544 
                0545 C-    Set Output type flags :
02e2d7ff52 Jean*0546 
5ca83cd8f7 Dani*0547 #ifdef ALLOW_MNC
                0548       IF (useMNC) THEN
                0549         IF ( .NOT.outputTypesInclusive
                0550      &       .AND. STREAMICE_tave_mnc ) STREAMICE_tave_mdsio = .FALSE.
                0551         IF ( .NOT.outputTypesInclusive
                0552      &       .AND. STREAMICE_dump_mnc ) STREAMICE_dump_mdsio = .FALSE.
                0553       ENDIF
                0554 #endif
                0555 
07e785229e dngo*0556 #ifdef ALLOW_PETSC
                0557       IF (streamice_maxnliter_petsc.eq.-1) then
                0558        streamice_maxnliter_petsc = streamice_max_nl_iter
                0559       ENDIF
                0560 #endif
                0561 
5ca83cd8f7 Dani*0562       _END_MASTER(myThid)
                0563 
                0564 C--   Everyone else must wait for the parameters to be loaded
                0565       _BARRIER
                0566 
                0567 #endif /* ALLOW_STREAMICE */
                0568 
                0569       RETURN
                0570       END