/[MITgcm]/MITgcm/pkg/streamice/streamice_readparms.F
ViewVC logotype

Annotation of /MITgcm/pkg/streamice/streamice_readparms.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.2 - (hide annotations) (download)
Mon Jun 24 20:53:06 2013 UTC (10 years, 11 months ago) by dgoldberg
Branch: MAIN
CVS Tags: checkpoint64o, checkpoint64q, checkpoint64p, checkpoint64s, checkpoint64r, checkpoint64u, checkpoint64t, checkpoint64v, checkpoint64n, checkpoint64k, checkpoint64j, checkpoint64m, checkpoint64l
Changes since 1.1: +5 -1 lines
specify melt rates through file

1 dgoldberg 1.2 C $Header: /u/gcmpack/MITgcm/pkg/streamice/streamice_readparms.F,v 1.1 2013/06/12 21:30:22 dgoldberg Exp $
2 dgoldberg 1.1 C $Name: $
3    
4    
5     C this needs changes
6    
7     #include "STREAMICE_OPTIONS.h"
8    
9     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
10     CBOP 0
11     SUBROUTINE STREAMICE_READPARMS( myThid )
12    
13     C !DESCRIPTION:
14     C Initialize STREAMICE variables and constants.
15    
16     C !USES:
17     IMPLICIT NONE
18     #include "SIZE.h"
19     #include "EEPARAMS.h"
20     #include "PARAMS.h"
21     #include "STREAMICE.h"
22     #include "STREAMICE_BDRY.h"
23     #ifdef ALLOW_STREAMICE_FLUX_CONTROL
24     #include "STREAMICE_CTRL_FLUX.h"
25     #endif
26    
27     C !INPUT PARAMETERS:
28     INTEGER myThid
29     CEOP
30    
31     #ifdef ALLOW_STREAMICE
32    
33     C !LOCAL VARIABLES:
34     C msgBuf :: Informational/error message buffer
35     C iUnit :: Work variable for IO unit number
36     CHARACTER*(MAX_LEN_MBUF) msgBuf
37     INTEGER iUnit, iarr, tarr
38    
39     NAMELIST /STREAMICE_PARM01/
40     & streamice_density, streamice_density_ocean_avg,
41     & B_glen_isothermal, n_glen, eps_glen_min, eps_u_min,
42     & C_basal_fric_const, n_basal_friction,
43     & streamice_vel_update,streamice_cg_tol,streamice_nonlin_tol,
44     & streamice_nonlin_tol_fp,
45     & streamice_max_cg_iter, streamice_max_nl_iter,
46     & STREAMICE_GL_regularize,
47     & STREAMICEthickInit,
48     & STREAMICEsigcoordInit,
49     & STREAMICEsigcoordFile,
50     & STREAMICEthickFile,
51     & STREAMICEcalveMaskFile,
52     & STREAMICEcostMaskFile,
53     & STREAMICEison,
54     & STREAMICE_dump_mdsio, STREAMICE_tave_mdsio,
55     & STREAMICE_dump_mnc, STREAMICE_tave_mnc,
56     & STREAMICE_GL_regularize, STREAMICE_move_front,
57     & STREAMICE_calve_to_mask,
58     & STREAMICE_diagnostic_only,
59     & STREAMICE_lower_cg_tol,
60     & streamice_CFL_factor,
61     & streamice_adjDump,
62     & streamice_bg_surf_slope_x, streamice_bg_surf_slope_y,
63     & streamice_kx_b_init, streamice_ky_b_init,
64     & STREAMICEbasalTracConfig,
65 dgoldberg 1.2 & STREAMICEBdotConfig,
66 dgoldberg 1.1 & STREAMICEbasalTracFile,
67 dgoldberg 1.2 & STREAMICEBdotFile,
68 dgoldberg 1.1 & STREAMICEvelOptimFile,
69     & STREAMICEtopogFile,
70     & STREAMICEhmaskFile,
71     & STREAMICEHBCyFile,
72     & STREAMICEHBCxFile,
73     & STREAMICEuFaceBdryFile,
74     & STREAMICEvFaceBdryFile,
75     & STREAMICEuDirichValsFile,
76     & STREAMICEvDirichValsFile,
77     & STREAMICEGlenConstFile, STREAMICEGlenConstConfig,
78     & STREAMICE_ppm_driving_stress,
79     & STREAMICE_h_ctrl_const_surf,
80     & streamice_wgt_drift,streamice_wgt_surf,streamice_wgt_vel,
81     & streamice_wgt_avthick, streamice_wgt_tikh,
82     & streamice_addl_backstress,
83     & streamice_smooth_gl_width,
84     & streamice_adot_uniform,
85     & STREAMICE_ADV_SCHEME
86    
87     #ifdef ALLOW_STREAMICE_2DTRACER
88     NAMELIST /STREAMICE_PARMTRACER/
89     & STREAMICETrac2DBCxFile,
90     & STREAMICETrac2DBCyFile,
91     & STREAMICETrac2DINITFile
92     #endif
93    
94     #ifdef ALLOW_PETSC
95     NAMELIST /STREAMICE_PARMPETSC/
96     & PETSC_PRECOND_TYPE, PETSC_SOLVER_TYPE
97     #endif
98    
99     #ifdef ALLOW_STREAMICE_FLUX_CONTROL
100     NAMELIST /STREAMICE_PARMFLUXCTRL/
101     & n_fluxes, n_epochs,
102     & streamice_ctrl_flux_id,
103     & streamice_ctrl_flux_scaleVel
104     #endif
105    
106    
107     NAMELIST /STREAMICE_PARM02/
108     & shelf_max_draft,
109     & shelf_min_draft,
110     & shelf_edge_pos,
111     & shelf_slope_scale,
112     & shelf_flat_width,
113     & flow_dir
114    
115     NAMELIST /STREAMICE_PARM03/
116     & min_x_noflow_NORTH, max_x_noflow_NORTH,
117     & min_x_noflow_SOUTH, max_x_noflow_SOUTH,
118     & min_y_noflow_WEST, max_y_noflow_WEST,
119     & min_y_noflow_EAST, max_y_noflow_EAST,
120     & min_x_noStress_NORTH, max_x_noStress_NORTH,
121     & min_x_noStress_SOUTH, max_x_noStress_SOUTH,
122     & min_y_noStress_WEST, max_y_noStress_WEST,
123     & min_y_noStress_EAST, max_y_noStress_EAST,
124     & min_x_FluxBdry_NORTH, max_x_FluxBdry_NORTH,
125     & min_x_FluxBdry_SOUTH, max_x_FluxBdry_SOUTH,
126     & min_y_FluxBdry_WEST, max_y_FluxBdry_WEST,
127     & min_y_FluxBdry_EAST, max_y_FluxBdry_EAST,
128     & min_x_Dirich_NORTH, max_x_Dirich_NORTH,
129     & min_x_Dirich_SOUTH, max_x_Dirich_SOUTH,
130     & min_y_Dirich_WEST, max_y_Dirich_WEST,
131     & min_y_Dirich_EAST, max_y_Dirich_EAST,
132     & min_x_CFBC_NORTH, max_x_CFBC_NORTH,
133     & min_x_CFBC_SOUTH, max_x_CFBC_SOUTH,
134     & min_y_CFBC_WEST, max_y_CFBC_WEST,
135     & min_y_CFBC_EAST, max_y_CFBC_EAST,
136     & flux_bdry_val_SOUTH, flux_bdry_val_NORTH,
137     & flux_bdry_val_WEST, flux_bdry_val_EAST,
138     & STREAMICE_NS_periodic, STREAMICE_EW_periodic
139    
140     _BEGIN_MASTER(myThid)
141    
142     C-- Default values for STREAMICE
143    
144     streamice_density = 917.
145     streamice_density_ocean_avg = 1024.
146     B_glen_isothermal = 9.461e-18 ! Pa (-1/3) a
147     n_glen = 3.
148     eps_glen_min = 1.0e-12
149     eps_u_min = 1.0e-6
150     C_basal_fric_const = 31.71 ! Pa (m/a)-1n
151     n_basal_friction = 1.
152     streamice_vel_update = 169200. ! seconds
153     streamice_cg_tol = 1e-6
154     streamice_nonlin_tol = 1e-6
155     streamice_nonlin_tol_fp = 1.e-14
156     streamice_max_cg_iter = 2000
157     streamice_max_nl_iter = 100
158     streamice_n_sub_regularize = 4
159     streamice_CFL_factor = .5
160     streamice_adjDump = 0.
161     streamice_bg_surf_slope_x = .0
162     streamice_bg_surf_slope_y = 0.
163     streamice_kx_b_init = 1.
164     streamice_ky_b_init = 1.
165     streamice_wgt_drift = 0.
166     streamice_wgt_tikh = 0.
167     streamice_wgt_surf = 0.
168     streamice_wgt_vel = 0.
169     streamice_wgt_avthick = 0.
170     streamice_addl_backstress = 0.0
171     streamice_smooth_gl_width = 0.0
172     streamice_adot_uniform = 0.0
173    
174     STREAMICEthickInit = 'FILE'
175     STREAMICEthickFile = ' '
176     STREAMICEcalveMaskFile = ' '
177     STREAMICEsigcoordInit = 'UNIFORM'
178     STREAMICEsigcoordFile = ' '
179     STREAMICEbasalTracConfig = 'UNIFORM'
180 dgoldberg 1.2 STREAMICEBdotConfig = ''
181     STREAMICEBdotFile = ''
182 dgoldberg 1.1 STREAMICEbasalTracFile = ' '
183     STREAMICEvelOptimFile = ''
184     STREAMICEtopogFile = ''
185     STREAMICEhmaskFile = ''
186     STREAMICEHBCyFile = ''
187     STREAMICEHBCxFile = ''
188     #ifdef ALLOW_STREAMICE_2DTRACER
189     STREAMICETrac2DBCxFile = ''
190     STREAMICETrac2DBCyFile = ''
191     STREAMICETrac2DInitFile = ''
192     #endif
193     STREAMICEuFaceBdryFile = ''
194     STREAMICEvFaceBdryFile = ''
195     STREAMICEuDirichValsFile = ''
196     STREAMICEvDirichValsFile = ''
197     STREAMICEGlenConstFile = ''
198     STREAMICEcostMaskFile = ''
199     STREAMICEGlenConstConfig = 'UNIFORM'
200     #ifdef ALLOW_PETSC
201     PETSC_PRECOND_TYPE = 'PCBJACOBI'
202     PETSC_SOLVER_TYPE = 'KSPCG'
203     #endif
204     STREAMICE_ADV_SCHEME = ''
205    
206     #ifdef ALLOW_STREAMICE_FLUX_CONTROL
207     n_fluxes = 0
208     n_epochs = 0
209     DO iarr=1,n_fluxes_max
210     streamice_ctrl_flux_id(iarr) = 0
211     DO tarr=1,n_epochs_max
212     streamice_ctrl_flux_scaleVel(iarr,tarr) = 0. _d 0
213     ENDDO
214     ENDDO
215     #endif
216    
217     STREAMICEison = .TRUE.
218     STREAMICE_tave_mdsio = .TRUE.
219     STREAMICE_dump_mdsio = .TRUE.
220     STREAMICE_dump_mnc = .FALSE.
221     STREAMICE_tave_mnc = .FALSE.
222     STREAMICE_GL_regularize = .FALSE.
223     STREAMICE_move_front = .FALSE.
224     STREAMICE_calve_to_mask = .FALSE.
225     ! STREAMICE_geom_file_setup = .FALSE.
226     ! STREAMICE_construct_matrix = .TRUE.
227     STREAMICE_lower_cg_tol = .FALSE.
228     STREAMICE_diagnostic_only = .FALSE.
229     STREAMICE_ppm_driving_stress = .FALSE.
230     STREAMICE_h_ctrl_const_surf = .FALSE.
231     ! STREAMICE_hybrid_stress= .FALSE.
232    
233     min_x_noflow_NORTH = 0.
234     max_x_noflow_NORTH = 0.
235     min_x_noflow_SOUTH = 0.
236     max_x_noflow_SOUTH = 0.
237     min_y_noflow_WEST = 0.
238     max_y_noflow_WEST = 0.
239     min_y_noflow_EAST = 0.
240     max_y_noflow_EAST = 0.
241     min_x_noStress_NORTH = 0.
242     max_x_noStress_NORTH = 0.
243     min_x_noStress_SOUTH = 0.
244     max_x_noStress_SOUTH = 0.
245     min_y_noStress_WEST = 0.
246     max_y_noStress_WEST = 0.
247     min_y_noStress_EAST = 0.
248     max_y_noStress_EAST = 0.
249     min_x_FluxBdry_NORTH = 0.
250     max_x_FluxBdry_NORTH = 0.
251     min_x_FluxBdry_SOUTH = 0.
252     max_x_FluxBdry_SOUTH = 0.
253     min_y_FluxBdry_WEST = 0.
254     max_y_FluxBdry_WEST = 0.
255     min_y_FluxBdry_EAST = 0.
256     max_y_FluxBdry_EAST = 0.
257     min_x_Dirich_NORTH = 0.
258     max_x_Dirich_NORTH = 0.
259     min_x_Dirich_SOUTH = 0.
260     max_x_Dirich_SOUTH = 0.
261     min_y_Dirich_WEST = 0.
262     max_y_Dirich_WEST = 0.
263     min_y_Dirich_EAST = 0.
264     max_y_Dirich_EAST = 0.
265     min_y_CFBC_WEST = 0.
266     max_y_CFBC_WEST = 0.
267     min_y_CFBC_EAST = 0.
268     max_y_CFBC_EAST = 0.
269     flux_bdry_val_SOUTH = 0.
270     flux_bdry_val_NORTH = 0.
271     flux_bdry_val_WEST = 0.
272     flux_bdry_val_EAST = 0.
273    
274     STREAMICE_NS_periodic = .FALSE.
275     STREAMICE_EW_periodic = .FALSE.
276    
277     WRITE(msgBuf,'(A)') 'STREAMICE_READPARMS: opening data.streamice'
278     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
279     & SQUEEZE_RIGHT , 1)
280     CALL OPEN_COPY_DATA_FILE(
281     I 'data.streamice', 'STREAMICE_READPARMS',
282     O iUnit,
283     I myThid )
284    
285     C Read parameters from open data file
286     READ(UNIT=iUnit,NML=STREAMICE_PARM01)
287     WRITE(msgBuf,'(A)')
288     & 'STREAMICE_READPARMS: read first param block'
289     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
290     & SQUEEZE_RIGHT , 1)
291    
292     IF (TRIM(STREAMICEthickInit) .eq. "PARAM") THEN
293     READ(UNIT=iUnit,NML=STREAMICE_PARM02)
294     WRITE(msgBuf,'(A)')
295     & 'STREAMICE_READPARMS: read second param block'
296     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
297     & SQUEEZE_RIGHT , 1)
298     ENDIF
299    
300     #ifdef ALLOW_STREAMICE_2DTRACER
301     READ(UNIT=iUnit,NML=STREAMICE_PARMTRACER)
302     WRITE(msgBuf,'(A)')
303     & 'STREAMICE_READPARMS: read tracer param block'
304     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
305     & SQUEEZE_RIGHT , 1)
306     #endif
307    
308     #ifdef ALLOW_PETSC
309     READ(UNIT=iUnit,NML=STREAMICE_PARMPETSC)
310     WRITE(msgBuf,'(A)')
311     & 'STREAMICE_READPARMS: read petsc param block'
312     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
313     & SQUEEZE_RIGHT , 1)
314     #endif
315    
316    
317     READ(UNIT=iUnit,NML=STREAMICE_PARM03)
318     WRITE(msgBuf,'(A)')
319     & 'STREAMICE_READPARMS: read third param block'
320     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
321     & SQUEEZE_RIGHT , 1)
322     CLOSE(iUnit)
323    
324    
325     #ifdef ALLOW_STREAMICE_FLUX_CONTROL
326    
327     CALL OPEN_COPY_DATA_FILE(
328     I 'data.strmctrlflux', 'STREAMICE_READPARMS',
329     O iUnit,
330     I myThid )
331    
332    
333     READ(UNIT=iUnit,NML=STREAMICE_PARMFLUXCTRL)
334     WRITE(msgBuf,'(A)')
335     & 'STREAMICE_READPARMS: read flux_ctrl param block'
336     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
337     & SQUEEZE_RIGHT , 1)
338     CLOSE(iUnit)
339     #endif
340    
341    
342    
343     streamice_nstep_velocity = NINT (streamice_vel_update / deltaT)
344    
345     C- Set Output type flags :
346    
347     #ifdef ALLOW_MNC
348     IF (useMNC) THEN
349     IF ( .NOT.outputTypesInclusive
350     & .AND. STREAMICE_tave_mnc ) STREAMICE_tave_mdsio = .FALSE.
351     IF ( .NOT.outputTypesInclusive
352     & .AND. STREAMICE_dump_mnc ) STREAMICE_dump_mdsio = .FALSE.
353     ENDIF
354     #endif
355    
356     _END_MASTER(myThid)
357    
358     C-- Everyone else must wait for the parameters to be loaded
359     _BARRIER
360    
361     #endif /* ALLOW_STREAMICE */
362    
363     RETURN
364     END

  ViewVC Help
Powered by ViewVC 1.1.22