The TELEMAC-MASCARET system  trunk
declarations_khione.f
Go to the documentation of this file.
1 ! **************************
3 ! **************************
4 !
5 !***********************************************************************
6 ! KHIONE V8P0 02/11/2016
7 !***********************************************************************
8 !
9 !brief DECLARATION OF PRINCIPAL KHIONE VARIABLES
10 !
11 !history F.SOUILLE (EDF)
12 !+ 30/09/2019
13 !+ V8P0
14 !+ Added new variables
15 !
16 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
17 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
18 !
19  USE bief_def
20 !
21 ! NOTE: THIS MODULE IS ORGANIZED IN 6 PARTS
22 !
23 ! (1) VECTORS (WILL BE DECLARED AS BIEF_OBJ STRUCTURES)
24 ! (2) INTEGERS
25 ! (3) LOGICAL VALUES
26 ! (4) REALS
27 ! (5) STRINGS
28 ! (6) ALIASES (IF NECESSARY)
29 !
30 !
31 !=======================================================================
32 !
33 ! STRUCTURE USED FOR WRITTING OUT THE TIME SERIES FILE
34 !
35 !-----------------------------------------------------------------------
36 !
37  TYPE str_cell_type
38  INTEGER :: nval
39  CHARACTER(LEN=24), ALLOCATABLE :: txt(:)
40  CHARACTER(LEN=24), ALLOCATABLE :: unt(:)
41  CHARACTER(LEN=24), ALLOCATABLE :: val(:)
42  END TYPE str_cell_type
43 !
44  TYPE str_line_type
45  INTEGER :: nval
46  CHARACTER(LEN=24) :: htxt
47  CHARACTER(LEN=24) :: hunt
48  CHARACTER(LEN=24) :: hval
49  type(str_cell_type), ALLOCATABLE :: cells(:)
50  END TYPE str_line_type
51 !
52 !=======================================================================
53 !
54 ! 0) PARAMETERS
55 !
56 !-----------------------------------------------------------------------
57 !
58 ! MAXIMUM NUMBER OF VALUES OF KEY-WORDS OF ONE KIND
59 ! (INTEGER, LOGICAL, ETC.)
60 !
61  INTEGER, PARAMETER :: maxkey = 300
62 !
63 !
64 !=======================================================================
65 !
66 ! 1) OUTPUTS
67 !
68 !-----------------------------------------------------------------------
69 !
70 ! VARIABLES FOR GRAPHIC PRINTOUT
71 !
72  CHARACTER(LEN=72) vardes,varimp
73 !
74 ! GRAPHIC PRINTOUT PERIOD KHIONE
75 !
76  INTEGER leoprd
77 !
78 ! LISTING PRINTOUT PERIOD KHIONE
79 !
80  INTEGER lisprd
81 ! MAXIMUM NUMBER OF OUTPUT VARIABLES
82 !
83  INTEGER, PARAMETER :: maxvar = 50
84 !
85 ! TO KNOW IF A VARIABLE WILL BE EXITED ON FILE, ON LISTING
86 !
87  LOGICAL sorleo(maxvar),sorimp(maxvar)
88 !
89 ! BLOCK OF VARIABLES FOR OUTPUT
90 !
91  TYPE(bief_obj), TARGET :: varsor
92 !
93 ! NAMES AND UNITS OF VARIABLES
94 ! ( THESE TWO ARE SET IN LECDON_, THROUGH A CALL TO NOMVAR_ )
95  CHARACTER(LEN=32) texte(maxvar),textpr(maxvar)
96 !
97 ! VARSOR FILTER FOR CONTINUED COMPUTATION
98 !
99  INTEGER :: alire(maxvar)
100 ! BE ABSOLUTLY SURE THAT ALIRE IS SIZE MAXVAR
101  parameter( alire = (/
102 ! 1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,
103  & 0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
104  & 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /) )
105 !
106 ! TITLE OF STUDY
107 !
108  CHARACTER(LEN=72) titicecas
109 !
110 ! FOR TIME SERIES OUTPUT
111 !
112  type(str_line_type) :: lines
113 !
114 !=======================================================================
115 !
116 ! 2) FILES
117 !
118 !-----------------------------------------------------------------------
119 !
120 !
121 ! MAXIMUM RANK OF LOGICAL UNITS (OPENING FILES) AS DECLARED IN
122 ! SUBMIT STRINGS IN THE DICTIONARY
123 !
124  INTEGER, PARAMETER :: maxlu_ice = 14
125 !
126 ! TELEMAC-2D FILES
127 !
128  TYPE(bief_file) :: ice_files(maxlu_ice)
129 !
130 ! KHIONE RESULT FILE NUMBER
131 !
132  INTEGER iceres
133 !
134 ! KHIONE BOUNDARY CONDIITON FILE NUMBER
135 !
136  INTEGER icecli
137 !
138 ! KHIONE GEOMETRY FILE NUMBER
139 !
140  INTEGER icegeo
141 !
142 ! KHIONE STEERING FILE NUMBER
143 !
144  INTEGER icecas
145 !
146 ! KHIONE REFERENCE FILE NUMBER
147 !
148  INTEGER iceref
149 !
150 ! KHIONE PREVIOUS ICE COVER FILE NUMBER (EULERIAN)
151 !
152  INTEGER icecov
153 !
154 ! KHIONE PREVIOUS ICE PACKS FILE NUMBER (LAGRANGIAN)
155 !
156  INTEGER iceblk
157 !
158 ! KHIONE CLOGGING ICE RESULTS FILE NUMBER
159 !
160  INTEGER clgrfo
161 !
162 !=======================================================================
163 !
164 ! 3) DICTIONARY
165 !
166 !-----------------------------------------------------------------------
167 !
168 ! COPY OF SUBMIT STRINGS IN THE DICTIONARY
169 !
170  CHARACTER(LEN=PATH_LEN) submit(4,300)
171 !
172 !
173 !=======================================================================
174 !
175 ! 4) ALGORITHMIC DIFFERENTIATION
176 !
177 !-----------------------------------------------------------------------
178 !
179 !
180 ! NUMBER OF DIFFERENTIATING ARRAYS, AND THOSE WITH A GIVEN NAME
181 !
182  INTEGER nadvar,n_names_advar
183 !
184 ! NAMES OF DIFFERENTING ARRAYS (GIVEN BY USER)
185 !
186  CHARACTER(LEN=32) names_advar(maxvar)
187 !
188 ! BLOCK OF DIFFERENTIATED VECTORS
189 !
190  TYPE(bief_obj), TARGET :: advar
191 !
192 !
193 !=======================================================================
194 !
195 ! 5) SWITCHES AND OPTIONS
196 !
197 !-----------------------------------------------------------------------
198 !
199 ! NUMBER OF DIFFERENTIATING ARRAYS, AND THOSE WITH A GIVEN NAME
200 !
201  INTEGER nicvar,n_names_icvar
202 !
203 ! DEBUGGER
204  INTEGER debug
205 !
206 ! FRAZIL CONCENTRATION
207  INTEGER ind_fra
208 !
209 ! WATER TEMPERATURE (DUPLICATED INDEX)
210  INTEGER ind_t
211 !
212 ! SALINITY (DUPLICATED INDEX)
213  INTEGER ind_s
214 !
215 ! FRAZIL PRECIPITATION (DUPLICATED INDEX)
216  INTEGER ind_pre,ind_thi
217 !
218 !=======================================================================
219 !
220 ! 1) HEAT FLUXES
221 !
222 !-----------------------------------------------------------------------
223 !
224 ! THERMAL BUDGET: NET SUM OF THERMAL FLUXES BETWEEN ATMO AND WATER
225  TYPE(bief_obj), TARGET :: sumph
226 !
227 ! THERMAL BUDGET: NET SUM OF THERMAL FLUXES BETWEEN ATMO AND ICE
228  TYPE(bief_obj), TARGET :: sumph_ice
229 !
230 ! THERMAL BUDGET: SOLAR RADIATION UNDER CLEAR SKY
231  TYPE(bief_obj), TARGET :: phcl
232 !
233 ! THERMAL BUDGET: SOLAR RADIATION UNDER CLOUDY SKY
234  TYPE(bief_obj), TARGET :: phri
235 !
236 ! THERMAL BUDGET: NET SOLAR RADIATION AFTER REFLECTION
237  TYPE(bief_obj), TARGET :: phps
238 !
239 ! THERMAL BUDGET: EFFECTIVE BACK RADIATION
240  TYPE(bief_obj), TARGET :: phib
241 !
242 ! THERMAL BUDGET: EVAPORATION HEAT FLUX
243  TYPE(bief_obj), TARGET :: phie
244 !
245 ! THERMAL BUDGET: CONDUCTIVITY HEAT FLUX
246  TYPE(bief_obj), TARGET :: phih
247 !
248 ! THERMAL BUDGET: PRECIPITATION
249  TYPE(bief_obj), TARGET :: phip
250 !
251 ! THERMAL BUDGET: HEAT TRANSFER BETWEEN WATER AND ICE
252  TYPE(bief_obj), TARGET :: phiw
253 !
254 ! WATER TEMPERATURE
255 ! TYPE(BIEF_OBJ), TARGET :: TW
256 !
257 ! HEAT TRANSFER COEFFICIENT BETWEEN SURFACE ICE AND WATER
258 ! TYPE(BIEF_OBJ), TARGET :: HWIN
259 ! DOUBLE PRECISION HWIN
260 !
261 !
262 !
263 !=======================================================================
264 !
265 ! 2) PHYSICAL PROPERTIES AND CONSTANTS
266 !
267 !-----------------------------------------------------------------------
268 !
269 ! ICE EXPANDS UPON FREEZING, WHICH IS THE OPPOSITE OF MOST OTHER
270 ! SUBSTANCES. AT 0[oC] IT HAS A DENSITY OF 916.8[kg/m3] AS
271 ! COMPARED TO A DENSITY OF 999.8[kg/m3] FOR WATER AT THE SAME
272 ! TEMPERATURE. AS A RESULT, ICE FLOATS IN WATER.
273 ! NOTE: THE MAXIMUM WATER DENSITY IS 1000[kg/m3] AT 4[oC]
274 !
275 ! ICE DENSITY ( DEFAULT = 916.8 kg/m3 )
276  DOUBLE PRECISION rho_ice
277 !
278 ! AIR DENSITY ( DEFAULT = 1.225 kg/m3 )
279  DOUBLE PRECISION rho_air
280 !
281 ! WATER DENSITY
282  DOUBLE PRECISION ro0
283 !
284 ! SPECIFIC HEAT OF WATER (DEFAULT = 4.1855 kJ/kgK )
285  DOUBLE PRECISION cp_eau
286 !
287 ! SPECIFIC HEAT OF ICE (DEFAULT = 2.04 kJ/kgK )
288  DOUBLE PRECISION cp_ice
289 !
290 ! LATENT HEAT OF FREEZING (DEFAULT = 334. kJ/kgK )
291  DOUBLE PRECISION lh_ice
292 !
293 ! CONSTANT, COEFFICIENT FOR LINEARIZED HEAT FLUX EXCHANGES
294 ! .. BETWEEN WATER AND AIR
295  DOUBLE PRECISION cst_watair,lin_watair
296 !
297 ! .. BETWEEN ICE AND AIR
298  DOUBLE PRECISION cst_iceair,lin_iceair
299 !
300 ! COEFFICIENT FOR BACK RADIATION HEAT FLUX
301  DOUBLE PRECISION coef_phib
302 !
303 ! COEFFICIENT FOR EVAPORATION HEAT FLUX
304  DOUBLE PRECISION coef_phie
305 !
306 ! COEFFICIENT FOR CONDUCTIVE HEAT FLUX
307  DOUBLE PRECISION coef_phih
308 !
309 ! COEFFICIENT FOR PRECIPITATION HEAT FLUX
310  DOUBLE PRECISION coef_phip
311 !
312 ! SOLAR CONSTANT (W/M^2)
313  DOUBLE PRECISION sio
314 !
315 ! ALBEDO OF ICE
316  DOUBLE PRECISION albe
317 !
318 !
319 !=======================================================================
320 !
321 ! ?) GEOGRAPHICAL CONSIDERATIONS
322 !
323 ! TODO: TO BE REPLACED BY A COMPUTATION FROM PHI0 (AND LAMBD0)
324 !
325 ! STANDARD LONGITUDE, IN DEG REES
326  DOUBLE PRECISION alsm
327 !
328 ! LOCAL LONGITUDE, IN DEGREES
329  DOUBLE PRECISION allm
330 !
331 ! -1, FOR WEST LONGITUDE; + FOR EAST LONGITUDE
332  DOUBLE PRECISION etadir
334 !
335 !
336 !=======================================================================
337 !
338 ! ?) FREEZE-UP RELATED PARAMETERS
339 !
340 !
341 ! NUMBER OF CLASSES FOR FRAZIL ICE
342 !
343  INTEGER nc_fra
344 !
345 ! FRAZIL CRYSTAL RADIUS [ M ]
346  DOUBLE PRECISION, ALLOCATABLE :: rk_frzl(:)
347 !
348 ! FRAZIL CRYSTAL THICKNESS [ M ]
349  DOUBLE PRECISION, ALLOCATABLE :: ek_frzl(:)
350 !
351 ! FRAZIL CRYSTAL VOLUME [ M3 ]
352  DOUBLE PRECISION, ALLOCATABLE :: vk_frzl(:)
353 !
354 ! NUSSELT NUMBER
355  DOUBLE PRECISION nuss
356 !
357 ! MODEL FOR COMPUTATION OF THE NUSSELT NUMBER
358  DOUBLE PRECISION nussi
359 !
360 ! TURBULENT NUSSELT NUMBER
361  DOUBLE PRECISION, ALLOCATABLE :: nusst(:)
362 !
363 ! TURBULENT MODEL TO ESTIMATE K-EPS
364  INTEGER iturb
365 !
366 ! MODEL FOR THE COMPUTATION OF THE BUOYANCY VELOCITY
367  INTEGER ibuoy
368 !
369 ! FRAZIL PARTICLE BUOYANCY VELOCITY
370  DOUBLE PRECISION, ALLOCATABLE :: vbk(:)
371 !
372 ! FRAZIL CRYSTAL DIAMETER THICKNESS RATIO [ - ]
373  DOUBLE PRECISION de
374 !
375 ! WATER-FRAZIL THERMAL CONDUCTIVITY [ W/M/oC ]
376  DOUBLE PRECISION tc_wt ! => REPLACES XKWP
378 ! THERMAL CONDUCTIVITY OF BLACK ICE ( W/M/oC )
379  DOUBLE PRECISION tc_bi ! => REPLACES XKI
381 ! THERMAL CONDUCTIVITY OF SNOW ( W/M/oC )
382  DOUBLE PRECISION tc_s ! => REPLACES XKS
383 !
384 ! SETTLING COEFFICIENT OF FRAZIL ON BARS
385  DOUBLE PRECISION af
386 !
387 ! POROSITY OF SURFACE ICE
388  DOUBLE PRECISION surf_ef
389 !
390 ! SECONDARY NUCLEATION MODEL
391  INTEGER isnuc
392 !
393 ! SEEDDING MODEL
394  INTEGER iseed
395 !
396 ! MINIMUM NUMBER OF FRAZIL PARTICLES PER UNIT VOLUME
397 ! (FOR SEEDING MODEL EQ 1)
398  INTEGER minnk
399 !
400 ! FRAZIL ICE SEEDING RATE
401 ! (FOR SEEDING MODEL EQ 2)
402  DOUBLE PRECISION seedr
403 !
404 ! SECONDARY NUCLEATION NMAX PARAMETER
405 ! FOR SVENSSON AND OMSTEDT COLLISION MODEL
406  DOUBLE PRECISION snnmax
407 !
408 ! FLOCULATION - BREAKUP MODEL
409  INTEGER ifloc
410 !
411 ! PARAMETER FOR NET EFFECT OF FLOCULATION - BREAKUP
412 ! RATIO OF PARTICLES THAT MOVE FROM CLASS I TO I+1
413  DOUBLE PRECISION afloc
414 !
415 ! MEAN TURBULENT KINETIC ENERGY FOR FRAZIL THERMAL GROWTH
416  TYPE(bief_obj), TARGET :: kgm
417 !
418 ! MEAN TURBULENT DISSIPATION RATE FOR FRAZIL THERMAL GROWTH
419  TYPE(bief_obj), TARGET :: epsgm
420 !
421 ! TURBULENT INTENSITY FOR FRAZIL THERMAL GROWTH
422  TYPE(bief_obj), TARGET :: alpgm
423 !
424 ! TURBULENT VISCOSITY FOR FRAZIL THERMAL GROWTH
425  TYPE(bief_obj), TARGET :: nutgm
426 !
427 ! FRAZIL ICE SEEDING RATE
428  TYPE(bief_obj), TARGET :: seed
429 !
430 ! PROBABILITY OF DEPOSITION OF FRAZIL PARTICLES REACHING THE
431 ! SURFACE LAYER - OPEN WATER
432  TYPE(bief_obj), TARGET :: theta0
433 !
434 ! PROBABILITY OF DEPOSITION OF FRAZIL PARTICLES REACHING THE
435 ! SURFACE LAYER - ICE
436  TYPE(bief_obj), TARGET :: theta1
437 !
438 ! COEFFICIENT QUANTIFYING THE RATE OF REENTRAINMENT OF SURFACE
439 ! ICE PER UNIT AREA
440  TYPE(bief_obj), TARGET :: beta1
441 !
442 ! AVERAGE RISING VELOCITY OF FRAZIL ICE IN THE TURBULENT RIVER FLOW
443  TYPE(bief_obj), TARGET :: vbb
444 !
445 ! ICE CONCENTRATION AS COMPUTED FROM SURFACE ICE PARTICLES
446 ! (ALSO USED TO DEFINE OPEN WATER VS. UNDER ICE COVER)
447  TYPE(bief_obj), TARGET :: anfem
448 !
449 ! TOTAL ICE THICKNESS
450  TYPE(bief_obj), TARGET :: thifem
451 !
452 ! SOLID ICE THICKNESS
453  TYPE(bief_obj), TARGET :: thifems
454 !
455 ! FRAZIL ICE THICKNESS
456  TYPE(bief_obj), TARGET :: thifemf
457 !
458 ! UNDERCOVER ICE THICKNESS
459  TYPE(bief_obj), TARGET :: hun
460 !
461 ! FREEZING POINT OF WATER ( 0.oC BY DEFAULT )
462  DOUBLE PRECISION cst_tmelt
463  TYPE(bief_obj), TARGET :: tmelt
465 ! TOTAL NUMBER OF FRAZIL PARTICLE
466  TYPE(bief_obj), TARGET :: ntot
468 ! TOTAL NUMBER OF FRAZIL PARTICLE
469  TYPE(bief_obj), TARGET :: ctot
470 !
471 ! FRAZIL CONCENTRATION
472  TYPE(bief_obj), TARGET :: frzl
473 !
474 ! FRAZIL NUMBER OF PARTICLE
475  TYPE(bief_obj), TARGET :: nbp
476 !
477 ! WATER TEMPERATURE
478  TYPE(bief_obj), TARGET :: temp
479 !
480 ! WATER SALINITY
481  TYPE(bief_obj), TARGET :: sal
482 !
483 !=======================================================================
484 !
485 ! ?) ICE COVER RELATED PARAMETERS
486 !
487 ! ICE FRICTION
488  TYPE(bief_obj), TARGET :: icestr
490 ! TURBULENT INTENSITY
491  TYPE(bief_obj), TARGET :: vz
492 !
493 ! CRITICAL WATER TEMPERATURE FOR BORDER ICE
494  TYPE(bief_obj), TARGET :: tcr
495 !
496 ! CRITICAL VELOCITY ABOVE WHICH STATIC BORDER ICE WILL NOT FORM
497  DOUBLE PRECISION vcrbor
498 !
499 ! CRITICAL VELOCITY ABOVE WHICH DYNAMIC BORDER ICE WILL NOT FORM
500  DOUBLE PRECISION vcrbom
501 !
502 ! INITIAL CONCENTRATION FOR BORDER / SKIM ICE FORMATION
503  DOUBLE PRECISION anfem0 ! REPLACES ANMAXBORDER AND ANMAXSKIM
504 !
505 ! LAW OF FRICTION ON UNDER ICE COVER
506  INTEGER ifrot
507 !
508 ! LAW FOR FRICTION COEFFICIENT
509  INTEGER ifice
510 !
511 ! FRICTION COEFFICIENT OF THE UNDER ICE COVER
512  DOUBLE PRECISION fice
514 ! MAX FRICTION COEFFICIENT OF THE UNDER ICE COVER
515  DOUBLE PRECISION fice_max
516 !
517 ! EQUIVALENT SURFACE ICE THCIKNESS (LAW FOR FRICTION COEFFICIENT=1)
518  DOUBLE PRECISION thie
519 !
520 !
521 !=======================================================================
522 !
523 ! ?) CLOGGING RELATED PARAMETERS
524 !
525 ! POROSITY OF ACCUMULATED ICE
526  DOUBLE PRECISION clog_ef
527 !
528 ! ANGLE OF ACCUMULATED ICE
529  DOUBLE PRECISION clog_theta
530 !
531 ! PHYSICAL CHARACTERISTICS OF THE INTAKE RACK
532  DOUBLE PRECISION clog_vdist,clog_vdiam,clog_tdist,clog_tdiam
533 !
534 ! CLOGGED BOUNDARY NUMBERS
535  INTEGER nfrclog,nseclog,ntotclog
536  INTEGER, ALLOCATABLE :: numclog(:),seclog(:)
537  INTEGER, ALLOCATABLE :: nseg_fs(:),liste_fs(:,:,:)
538  DOUBLE PRECISION, ALLOCATABLE :: un1(:),un2(:)
539 !
540 ! GROWTH THICKNESS OF THE VERTICAL AND HORIZONTAL ACCRECION
541  DOUBLE PRECISION, ALLOCATABLE :: clog_vwdth(:),clog_twdth(:)
542 !
543 ! PHYSICAL SIZE OF LENGTHS OF THE VERTICAL AND HORIZONTAL BARS
544  DOUBLE PRECISION, ALLOCATABLE :: clog_vlgth(:),clog_tlgth(:)
545 !
546 ! TOTAL VOLUM OF ACCRECION
547  DOUBLE PRECISION, ALLOCATABLE :: clog_volum(:)
548 !
549 ! CLOGGING SECTIONS
550  TYPE(bief_obj), TARGET :: msksec
551 !
552 !=======================================================================
553 !
554 ! ?) ICE CHARACTERISATION
555 !
556 ! REPLACEMENT OF:
557 ! ICE ISLAND INDEX: TYPE(BIEF_OBJ), TARGET :: JAMFEM
558 ! ICE TYPE INDEX: TYPE(BIEF_OBJ), TARGET :: ICEREGION
559 ! ICETYPE IS:
560 ! 1 - OPEN WATER
561 ! 2 - STATIC BORDER ICE, FULLY WITHIN THE BORDER ICE COVER
562 ! 3 - STATIC BORDER ICE THAT HAS GROWN A SUFFICIENTLY THICK COVER
563 ! ICELOC IS:
564 ! 1 - OPEN WATER
565 ! 2 - BOUNDARY NODE
566 ! 3 - EDGE NODE
567  TYPE(bief_obj), TARGET :: icetype
568  TYPE(bief_obj), TARGET :: icetypep
569  TYPE(bief_obj), TARGET :: iceloc
570 !
571 ! INTEGERS WORKING ARRAYS
572  TYPE(bief_obj), TARGET :: it1,it2
573 !
574 !-----------------------------------------------------------------------
575 !
576 ! IMAGE ELEMENT
577  INTEGER, ALLOCATABLE :: imgelm(:,:)
579  !PARCEL'S NUMBER OF BOOM IMAGE
580  INTEGER, ALLOCATABLE ::naphabm(:,:)
582 ! TRASH RACK CROSS SECTION NODES
583  INTEGER, ALLOCATABLE :: ncgno(:),nfzno(:)
584 !
585  INTEGER ntwbc
586 !
587 ! NUMBER OF INTAKES
588  INTEGER nitk
590 ! SWTICH FOR FRAZIL CLOGGING
591  INTEGER nclog
593  INTEGER, PARAMETER :: maxfro = 50
595 ! MAXIMUM TOTAL NEIGHBORING PARCEL NUMBER
596  INTEGER maxkrn
598 ! NUNBER OF ICE BOOM
599  INTEGER nbm
601 ! MAXIMUM NUNBER OF ICE BOOM
602  INTEGER maxbm
604 ! NUMBER OF ICE BOOM SPANS
605  INTEGER nbmsp
607 ! ICE BOOM TYPES
608  INTEGER bmtype
610 ! NUMBER OF SLOT TO ISSUE ICE
611  INTEGER itbdf
613 ! NUMBER OF BREAKUP REACHES
614  INTEGER ncov
616 ! NUMBER OF SOLID BOUNDARY
617  INTEGER nmlbn
619 ! NUMBER OF OPEN BOUNDARY
620  INTEGER nmobn
622 ! NUMBER OF UNDERCOVER BOUNDARY
623  INTEGER nuqsec
625 ! TYEP OF UNDERCOVER BOUDNARY CONDITION
626  INTEGER iuqbc
628 ! COUNTER FOR UNDERCOVER BOUNDARY CONDITION
629  INTEGER iundt
631  INTEGER itmax
632  ! TO KNOW IF A VARIABLE WILL BE EXITED ON FILE, ON LISTING
633 ! NUMBER OF ICE BOUNDARY
634  INTEGER msbd
636 ! ICE CONCENTRATION BE SPECIFIED
637  INTEGER iqbjb
639 ! NUMBER OF SOLID BOUNDARY
640  INTEGER nlb
642 ! NUMBER OF OPEN BOUNDARY
643  INTEGER nob
645 ! NUMBER OF TIMESTEP FOR UNDERCOVER
646  INTEGER iund
648  INTEGER ntbn,nhbn,nqbn,n0bn,nhtn,nfbn,nqb1,nq0,nq01,
650 
651 ! NUMBER OF PARCEL IN THE DOMAIN
652  INTEGER nparin
654 ! NUMBER OF PARCEL MOVING OUT OF THE DOMAIN
655  INTEGER nparout
657 ! DELETE THE BAD PARCELS
658  INTEGER nbadparcels
660 ! TOTAL NUMBER OF PARCELS
661  INTEGER ntotalparcels
663 ! FILE NUMBER FOR UNDERCOVER BOUNDARY FILE
664  INTEGER iudc
666 ! FILE NUMBER FOR ICE BOOM FILE
667  INTEGER inbm
669 ! FILE NUMBER FOR ICE BOOM FORCE FILE
670  INTEGER ibmf
672 ! FILE NUMBER FOR BREAK UP FILE
673  INTEGER ibrk
675 ! FILE NUMBER FOR ICE CONDITION ON FEM NODE FILE
676  INTEGER ihdw0
678 ! FILE NUMBER FOR FRAZIL DEPOSITION AND ENTRAINMENT
679  INTEGER ifrz
681 ! FILE NUMBER FOR TRASH TRACK AND CROSS SECTIONS
682  INTEGER icsg
684 ! ICE FLUX TIME FRAME
685  INTEGER kflxi
687  INTEGER kprt
688  INTEGER kdmph
689  INTEGER kdmpi
690  INTEGER kdmphi
692  INTEGER kwnd
693  INTEGER kelv,kflx,
695 ! ! UPDATE BOUNDARY AND OUTPUT
696  & jobflx,nsec,ndisc,nelev,istrt,
697  & ihdw,ihot0,ihot,istr0,istr,ilnk,
698  & ipro,iplt,iclg,iqbd
699 
700 ! NUMBER OF ICE PARCELS
701  INTEGER knp
703 ! STEPS TO CHECK BREAKUP
704  INTEGER nbkdtm
706 ! NUMBER OF REACHES FOR BREAKUP
707  INTEGER nrch
709 ! ATMOSPHERE-WATER EXCHANGE MODEL
710 !
711  INTEGER atmoexch
712 !
713 ! ! INDEX FOR DISCHARGE USED FOR FRAZIL ACCRETION
714 ! INTEGER, PARAMETER :: KCGQ = 1
715 !
716 !
717 !
718 !
719 !-----------------------------------------------------------------------
720 !
721 ! 3) LOGICAL
722 !
723 ! WITH ICEDYNAMICS CALCULATION
724  LOGICAL icedynamics
725 !
726 ! IF YES, MASS-BALANCE
727  LOGICAL icebilmas
728 !
729 ! IF YES, VALIDATION
730  LOGICAL icevalid
731 !
732 ! STEADY HYDRODYNAMICS
733  LOGICAL perma
734 !
735 ! IF TEMPERATURE IS VARIABLE
736  LOGICAL yatemp
738 ! IF YES, TECPLOT OUTPUT
739  LOGICAL ioutput
741 ! IF YES, ICE INPUT
742  LOGICAL iciput
743 !
744 ! HEAT EXCHANGES
745  LOGICAL thermal_budget
746 !
747 ! ICE COVER IMPACT ON HYDRO
748  LOGICAL icover_impact
749 !
750 ! CLOGGING
751  LOGICAL clogging
752 !
753 ! BORDER_ICE
754  LOGICAL bd_ice
755 !
756 ! SALINITY
757  LOGICAL salinity
758 !
759 ! FRZAIL PRECIPITATION
760  LOGICAL prec
761 !
762 ! SCHEME OPTION FOR THERMAL GROWTH
763  INTEGER itgm
764 !
765 ! ENERGY BALANCE VERSION
766  INTEGER inrjb
767 !
768 !-----------------------------------------------------------------------
769 !
770 ! 4) REALS
771 !
772 !-----------------------------------------------------------------------
773 
774  DOUBLE PRECISION roi
775 ! ICE LATENT HEAT
776 ! DOUBLE PRECISION XLATEN ! => MOVED TO KHIONE UNDER LH_ICE
777 
778  ! CLOUDINESS
779  DOUBLE PRECISION cc
781 ! HEIGHT THE WIND DATA IS MEASUR ED(M)
782  DOUBLE PRECISION z1
784 ! ELEVATION MEASURED FROM SEA LEVEL(M)
785  DOUBLE PRECISION zh
787 !--------------------------------------------------------------
788 ! GROUP FOR SIMULATING WATER TEMPERATURE AND THERMAL GROWTH AND DECAY OF ICE
789 
790 ! COEFFICIENT FOR LINEARIZED HEAT FLUX CALCULATION ON WATER-AIR SURFACE
791  DOUBLE PRECISION hwa
793 ! COEFFICIENT FOR LINEARIZED HEAT FLUX CALCULATION ON ICE-AIR SURFACE
794  DOUBLE PRECISION hia
796 ! COEFFICIENT FOR LINEARIZED HEAT FLUX CALCULATION ON ICE-AIR SURFACE
797  DOUBLE PRECISION alp
799 ! COEFFICIENT FOR LINEARIZED HEAT FLUX CALCULATION ON WATER-AIR SURFACE
800  DOUBLE PRECISION alpw
801 !
802 ! CONSTANT FOR CALCULATING HEAT TRANSFER COEFFICIENT BETWEEN RIVER WATER AND ICE FOR TURBULENT FLOW
803  DOUBLE PRECISION cwi1
804 !
805 ! CONSTANT FOR CALCULATING HEAT TRANSFER COEFFICIENT BETWEEN RIVER WATER AND ICE FOR SUPERCOOLED TURBULENT FLOW
806  DOUBLE PRECISION ciw1
807 !
808 ! NUSSELT NUMBER FOR CALCULATING HEAT TRANSFER COEFFICIENT BETWEEN RIVER WATER AND ICE FOR LAMINAR FLOW
809  DOUBLE PRECISION ata
811 ! HEAT TRANSFER COEFFICIENT FROM WATER TO ICE
812  DOUBLE PRECISION cwi
813 !
814 ! KINEMATIC VISCOSITY OF WATER
815  DOUBLE PRECISION xnu
817 !------------------------------------------------------------------------
818 ! GROUP FOR SIMULATING BORDER ICE FORMATION
819 !
820 ! CRITICAL WATER SURFACE TEMPERATURE FOR BORDER ICE FORMATION
821  DOUBLE PRECISION tc
822 !
823 ! CHANNEL WIDTH FOR THE COMPUTATION OF SURFACE WATER TEMPERATURE
824  DOUBLE PRECISION bch
825 !
826 ! MAXIMUM CONCENTRATION FOR BORDER ICE FORMATION
827 ! DOUBLE PRECISION ANMAXBORDER
828 !
829 !----------------------------------------------------------------------------
830 ! GROUP FOR SKIM ICE SIMULATION
831 !
832 ! MAXIMUM CONCENTRATION FOR SKIM ICE RUN
833 ! DOUBLE PRECISION ANMAXSKIM => REPLACED BY ANFEM0
834 !
835 !--------------------------------------------------------------------------
836 ! GROUP FOR MASS EXCHANGE BETWEEN SUSPENDED LAYER, SURFACE LAYER AND ANCHOR ICE
837 
838 ! POROSITY OF SURFACE ICE
839  DOUBLE PRECISION ef
841 ! POROSITY OF FRAZIL ICE
842  DOUBLE PRECISION ef0
844 ! VERTICAL BAR LENGTH
845  DOUBLE PRECISION hbar
846 !
847 !-------------------------------------------------------------------------------
848 ! GROUP FOR ICE COVER FORMATION
849 !
850 ! INITIAL AND CURRENT WIDTH FOR VERTICAL BARS
851  DOUBLE PRECISION wfv0,wfv1
852 !
853 ! INITIAL AND CURRENT WIDTH FOR TRANSVERSE BARS
854  DOUBLE PRECISION wft0,wft1
855 !
856 ! INITIAL AND CURRENT WIDTH FOR VERTICAL BARS
857  DOUBLE PRECISION wfv0dw,wfv1dw
858 !
859 ! INITIAL AND CURRENT WIDTH FOR TRANSVERSE BARS
860  DOUBLE PRECISION wft0dw,wft1dw
861 !
862 !
863  DOUBLE PRECISION time,corio,pi,sqpi
864  DOUBLE PRECISION rho,rhoi,raddig
866 ! GEOMETRY MAX & MIN
867  DOUBLE PRECISION xmin,ymin,xmax,ymax,xgmin,ygmin
869 ! INITIAL ICE PARCEL CONCENTRATION
870  DOUBLE PRECISION an0
872 ! INITIAL FRAZIL ICE THICKNESS
873  DOUBLE PRECISION thi0f
875 ! INITIAL SIZE OF ICE PARCEL
876  DOUBLE PRECISION hpi0
877 !
878 ! A MINIMUM VALUE
879  DOUBLE PRECISION vsm
880 !
881 ! NUMBER OF ICE PARCELS
882 ! DOUBLE PRECISION KNP
883 !
884 ! ICE PARCEL MASS
885  DOUBLE PRECISION pm1
886 !
887  DOUBLE PRECISION angle ! MAY NOT NEED; WIND ANGLE
888 !
889  DOUBLE PRECISION refel ! MAY NOT NEED; REFERENCE LEVEL FOR HYDRO
890 !
891  DOUBLE PRECISION optim ! MAY NOT NEED; OPTIMAL TIME STEP FOR HYDRO
892 !
893 ! ICE MASS DENSITY AND ICE MASS AT TN
894  DOUBLE PRECISION umi0,pmi0,pmi0f
896 ! FRICTION COEFFICIENT BETWEEN ICE-RIVERBANK; ICE-RIVERBED
897  DOUBLE PRECISION fric1,fric2
898 !
899 ! AIR-ICE DRAG COEFFICIENT
900  DOUBLE PRECISION wdca
902 ! ICE INTERNAL FRICTION ANGLE
903  DOUBLE PRECISION phi
904 !
905 ! EMPIRICAL CONSTANT
906  DOUBLE PRECISION pj
907 !
908 ! MAX WATER-ICE DRAG COEFFICIENT
909  DOUBLE PRECISION cwmax
911 ! BOLTZMANN CONSTANT (WM-2K-4)
912  DOUBLE PRECISION sgma
914 ! SPECIFIC HEAT OF WATER
915  DOUBLE PRECISION cp
917 ! TIME FOR ICE DYNAMICS
918  DOUBLE PRECISION timice0
919  DOUBLE PRECISION tmn
920  DOUBLE PRECISION endtime
922 ! UNDERCOVER TIME STEP
923  DOUBLE PRECISION undt
925 ! STARTING TIME OF ICE DYNAMICS
926  DOUBLE PRECISION ticebg
928 ! BOOM CURTAIN DEPTH
929  DOUBLE PRECISION dwall
931  ! WEATHER TIME
932  DOUBLE PRECISION tima0,tima1,tair0,tair1
934 
935 ! VARIABLES FOR BOUNDARY CONDITIONS AND NODAL INFORMATION FOR
936 ! HYDRODYNAMICS MAY NOT BE NEEDED
937  DOUBLE PRECISION sinbn,cosbn,hb,
941 
942 ! ICE BOOM COORDINATE
943  DOUBLE PRECISION, ALLOCATABLE :: xbm(:,:),ybm(:,:)
945 ! ICE BOOM SPAN COORDINATE
946  DOUBLE PRECISION, ALLOCATABLE :: xbmsp(:,:),ybmsp(:,:)
948 ! FORCE PER UNIT LENGTH IN SPAN J
949  DOUBLE PRECISION, ALLOCATABLE :: asignp(:)
951 ! ICE BOOM FLOAT OR SUBMERGE
952  DOUBLE PRECISION, ALLOCATABLE :: frnum1(:)
954 ! ICE THICKNESS AT THE ICE BOOM J
955  DOUBLE PRECISION, ALLOCATABLE :: thisp(:)
957 ! CRITICAL SUBMERGENCE LINE LOAD OF BOOM
958  DOUBLE PRECISION, ALLOCATABLE :: bmlineld(:)
960 ! CRITICAL ICE THICKNESS ABOVE SUBMERGED BOOM FOR RE-EMERGENCE
961  DOUBLE PRECISION, ALLOCATABLE :: thiemerg(:)
963 ! BOTTOM ELEVATION OF THE GATE
964  DOUBLE PRECISION, ALLOCATABLE :: gate(:)
966 ! BUOYANT FORCE OF THE ICE BOOM WHEN IT IS SUBMERGED
967  DOUBLE PRECISION, ALLOCATABLE :: bmbuoy(:)
969 ! FRICTION COEFFICIENT BETWEEN THE ICE BOOM AND THE BOTTOM OF THE ICE
970  DOUBLE PRECISION, ALLOCATABLE :: bmfric(:)
972 ! DIRECTION OF THE SOLID BOUNDARY
973  DOUBLE PRECISION, ALLOCATABLE :: papha1(:),papha2(:)
975 ! DISTANCE BETWEEN ICE PARCEL AND SOLID BOUNDARY
976  DOUBLE PRECISION, ALLOCATABLE :: pardis(:)
978 ! DIRECTION OF THE ICE BOOM
979  DOUBLE PRECISION, ALLOCATABLE :: paphabm1(:),paphabm2(:)
981 ! DISTANCE BETWEEN ICE APARCEL AND ICE BOOM
982  DOUBLE PRECISION, ALLOCATABLE :: pardisbm(:)
984 !! DIRECTION OF THE ICE BOOM (SIN,COS)
985 ! DOUBLE PRECISION, ALLOCATABLE :: ALPHA11(:),ALPHA12(:)
986 
987 !! DISTANCE BETWEEN ICE PARCEL AND ICE BOOM
988 ! DOUBLE PRECISION, ALLOCATABLE :: PARDS1(:)
989 
990 ! TIME FOR ICE COVER BREAKUP
991  DOUBLE PRECISION, ALLOCATABLE :: brktim(:)
993 ! CRITICAL VALUE OF WATER SURFACE ELEVATION AT REFERENCE NODE
994  DOUBLE PRECISION, ALLOCATABLE :: brkwse(:)
996 ! CRITICAL VALUE OF WATER SURFACE ELEVATION INCREASE AT REFERENCE NODE
997  DOUBLE PRECISION, ALLOCATABLE :: brkdwse(:)
999 ! WATER SURFACE ELEVATON RECORD FOR BREAKUP
1000  DOUBLE PRECISION, ALLOCATABLE :: wserd(:,:)
1002 ! INITIAL ICE COVER THICKNESS
1003  DOUBLE PRECISION, ALLOCATABLE :: covti(:)
1005 ! FINITE ELEMENT ORIENTATION AND HEIGHT
1006  DOUBLE PRECISION, ALLOCATABLE :: alafae(:),elmht(:)
1008 ! FINITE ELEMENT MAX EDGE IN X,Y
1009  DOUBLE PRECISION, ALLOCATABLE :: xmaxh(:),ymaxh(:)
1011 ! FINITE ELEMENT INFORMAITON
1012  DOUBLE PRECISION, ALLOCATABLE :: a1(:),a2(:),a3(:)
1013  DOUBLE PRECISION, ALLOCATABLE :: b1(:),b2(:),b3(:)
1014  DOUBLE PRECISION, ALLOCATABLE :: c1(:),c2(:),c3(:)
1015  DOUBLE PRECISION, ALLOCATABLE :: clmp(:)
1017 !-----------------------------------------------------------------------
1018 ! LINK FILE
1019  CHARACTER(LEN=50) lnkfile
1021 ! ICE BOUNDARY FILE
1022  CHARACTER(LEN=50) iqbfile
1024 ! ICE BOOM FILE AND BOOM FORCE FILE
1025  CHARACTER(LEN=50) bmfile,bffile
1027 ! BREAKUP FILE
1028  CHARACTER(LEN=50) bkfile
1030 ! UNDERCOVER TRANSPORT FILE
1031  CHARACTER(LEN=50) udfile
1033 ! FRAZIL COEFFICIENTS FILE
1034  CHARACTER(LEN=50) fzfile
1036 ! TRASH RACK CROSS SECTION FILE
1037  CHARACTER(LEN=50) trfile
1039 ! FRAZIL CLOGGING OUTPUT FILE
1040  CHARACTER(LEN=50) clgfile
1042 ! EXISTING ICE CONDITION FILE
1043  CHARACTER(LEN=50) ht0file,st0file,hd0file
1045  CHARACTER(LEN=50) casename,geofile,timfile,prtfile,
1052 
1053  INTEGER, PARAMETER :: max_ice_file = 1000
1055 ! TYPE(BIEF_FILE) :: PLTFILE(MAX_ICE_FILE)
1056 
1057  CHARACTER(LEN=50) pltfile(max_ice_file)
1059  CHARACTER(LEN=50) hdwfile(max_ice_file)
1061  CHARACTER(LEN=50) hotfile(max_ice_file)
1063  CHARACTER(LEN=50) strfile(max_ice_file)
1065 !=======================================================================
1066 !
1067 ! 5) BLOCKS
1068 !
1069 !-----------------------------------------------------------------------
1070 !
1071 ! BLOCK OF ICE VARIABLES
1072 !
1073  TYPE(bief_obj), TARGET :: icvar
1075 !
1076 ! BLOCK OF WORKING ARRAYS
1077 !
1078  TYPE(bief_obj), TARGET :: tb
1080 !=======================================================================
1081 !
1082 ! X) POINTERS
1083 !
1084 !-----------------------------------------------------------------------
1085 !
1086 ! DECLARATION OF POINTERS FOR ALIASES TO WORKING VECTORS IN TB
1087 ! TARGETS ARE DEFINED IN POINT_KHIONE.
1088 !
1089  TYPE(bief_obj),POINTER :: t1,t2,t3,t4,t5,t6
1091 !=======================================================================
1092 !
1093 ! X) WORKING MATRIX AND ARRAY
1094 !
1095 !-----------------------------------------------------------------------
1096 !
1097  TYPE(bief_obj),TARGET :: bm1,bm2
1098  TYPE(bief_obj),TARGET :: cv1,cv2,cv3,cv4
1100 !=======================================================================
1101 !
1102  SAVE
1103 
1104  END MODULE declarations_khione
1105 
1106 
double precision clog_vdist
double precision timice0
type(bief_obj), target epsgm
type(bief_obj), target bm1
double precision, dimension(:,:), allocatable xbm
double precision cwmax
character(len=50) profile
double precision fice_max
double precision cst_watair
double precision, dimension(:), allocatable clog_volum
character(len=50) elvloc
type(bief_obj), pointer t2
character(len=50), dimension(max_ice_file) pltfile
character(len=50), dimension(max_ice_file) hotfile
character(len=50) bkfile
integer, dimension(:), allocatable nseg_fs
type(bief_obj), target sumph_ice
double precision, dimension(:), allocatable c1
type(bief_obj), target phib
double precision wft0dw
type(bief_obj), target phcl
double precision, dimension(:), allocatable un1
type(str_line_type) lines
double precision coef_phib
double precision etadir
double precision, dimension(:), allocatable pardisbm
character(len=50) clgfile
type(bief_obj), pointer t5
double precision endtime
double precision, dimension(:), allocatable covti
double precision clog_vdiam
double precision, dimension(:), allocatable vbk
type(bief_obj), target alpgm
double precision snnmax
double precision coef_phip
double precision cst_iceair
double precision ygmin
integer, dimension(:), allocatable nfzno
double precision coef_phie
double precision tima1
double precision clog_tdist
character(len=50) geofile
double precision, dimension(:,:), allocatable xbmsp
double precision optim
character(len=50) st0file
double precision tima0
type(bief_obj), target cv1
character(len=50) delfile
double precision, dimension(:), allocatable thisp
integer, dimension(:), allocatable seclog
double precision clog_tdiam
type(bief_obj), target cv3
type(bief_obj), target phih
double precision, dimension(:), allocatable nusst
type(bief_obj), target theta0
double precision cp_ice
type(bief_obj), target phip
type(bief_obj), target bm2
type(bief_obj), target tmelt
double precision wfv0dw
double precision, dimension(:), allocatable b1
type(bief_obj), target temp
double precision surf_ef
type(bief_obj), target ntot
double precision, dimension(:), allocatable clog_vlgth
character(len=72) titicecas
double precision cosbn
type(bief_obj), target nutgm
type(bief_obj), target iceloc
integer, dimension(maxvar) alire
double precision coef_phih
type(bief_obj), target sal
double precision, dimension(:), allocatable ek_frzl
double precision nussi
double precision, dimension(:), allocatable frnum1
integer, dimension(:,:), allocatable naphabm
integer, parameter maxfro
character(len=50) clgdwfile
character(len=50) ht0file
double precision lh_ice
double precision fric1
character(len=50) thrfile
integer, dimension(:), allocatable numclog
character(len=50) fzfile
double precision dischu
character(len=72) varimp
double precision, dimension(:), allocatable clog_tlgth
double precision refel
double precision xgmin
character(len=50) dbmfile
character(len=50) icevolumefile
character(len=50) prtfile
character(len=50) dscfile
character(len=50) iqbfile
double precision, dimension(:), allocatable brktim
type(bief_obj), target nbp
type(bief_obj), pointer t6
character(len=32), dimension(maxvar) textpr
type(bief_obj), target hun
double precision, dimension(:), allocatable b2
double precision, dimension(:), allocatable pardis
character(len=72) vardes
double precision wndtime
double precision, dimension(:), allocatable b3
double precision, dimension(:), allocatable vk_frzl
double precision disch
double precision tc_wt
double precision vcrbom
double precision cp_eau
character(len=50) dsciloc
character(len=50) ho0file
double precision, dimension(:), allocatable ymaxh
type(bief_obj), target icetype
double precision rho_air
character(len=50) linkefile
double precision prttime
double precision wft1dw
character(len=32), dimension(maxvar) texte
integer, dimension(:,:), allocatable imgelm
double precision, dimension(:), allocatable papha2
double precision, dimension(:), allocatable asignp
double precision stemp
integer, parameter max_ice_file
double precision thi0f
type(bief_obj), target theta1
type(bief_obj), target kgm
double precision vcrbor
double precision, dimension(:), allocatable rk_frzl
double precision lin_iceair
type(bief_obj), target msksec
character(len=50) elvfile
type(bief_obj), target cv2
type(bief_file), dimension(maxlu_ice) ice_files
double precision, dimension(:), allocatable c2
double precision ctemp
type(bief_obj), target it2
double precision, dimension(:), allocatable a3
double precision dmptimi
double precision wfv1dw
double precision dwall
double precision, dimension(:,:), allocatable ybm
type(bief_obj), target cv4
type(bief_obj), target icvar
integer, dimension(:,:,:), allocatable liste_fs
character(len=50) dscloc
character(len=50) flxfile
double precision raddig
character(len=50) nbmfile
double precision dmptimh
integer, dimension(:), allocatable ncgno
type(bief_obj), target ctot
double precision, dimension(:), allocatable clog_twdth
double precision, dimension(:), allocatable c3
double precision seedr
type(bief_obj), pointer t1
type(bief_obj), target icetypep
logical, dimension(maxvar) sorleo
double precision angle
double precision tair0
character(len=50) trfile
character(len=50) weafile
character(len=50) state
character(len=50) bmfile
double precision sinbn
character(len=50) swifile
character(len=50) covfile
double precision, dimension(:), allocatable paphabm1
double precision, dimension(:), allocatable bmlineld
character(len=50) qnwfile
character(len=50) udfile
character(len=50) timfile
double precision, dimension(:), allocatable papha1
double precision, dimension(:), allocatable brkwse
double precision, dimension(:), allocatable clog_vwdth
double precision, dimension(:), allocatable clmp
type(bief_obj), target seed
type(bief_obj), target sumph
type(bief_obj), target it1
character(len=50) lelfile
character(len=50) wndfile
integer, parameter maxkey
double precision clog_theta
double precision tair1
double precision, dimension(:), allocatable paphabm2
double precision lin_watair
character(len=50), dimension(max_ice_file) strfile
double precision, dimension(:), allocatable gate
type(bief_obj), target vbb
type(bief_obj), target vz
integer, parameter maxlu_ice
double precision, dimension(:), allocatable brkdwse
type(bief_obj), target phiw
double precision, dimension(:), allocatable un2
character(len=32), dimension(maxvar) names_advar
type(bief_obj), target tb
character(len=50) bffile
type(bief_obj), target phri
double precision, dimension(:), allocatable thiemerg
character(len=50) casename
double precision, dimension(:), allocatable elmht
double precision, dimension(:), allocatable alafae
character(len=50) lnkfile
double precision, dimension(:), allocatable a2
character(len=path_len), dimension(4, 300) submit
type(bief_obj), target anfem
character(len=50) errfile
character(len=50), dimension(max_ice_file) hdwfile
type(bief_obj), target beta1
double precision afloc
double precision rho_ice
double precision, dimension(:), allocatable bmfric
double precision clog_ef
double precision, dimension(:,:), allocatable ybmsp
double precision anfem0
character(len=50) mcrfile
type(bief_obj), target phie
type(bief_obj), target advar
double precision ticebg
double precision cst_tmelt
double precision, dimension(:,:), allocatable wserd
type(bief_obj), target varsor
double precision, dimension(:), allocatable bmbuoy
type(bief_obj), pointer t4
type(bief_obj), pointer t3
character(len=50) netfile
double precision, dimension(:), allocatable xmaxh
type(bief_obj), target thifemf
type(bief_obj), target icestr
type(bief_obj), target frzl
double precision, dimension(:), allocatable a1
character(len=50) ptmfile
double precision corio
type(bief_obj), target tcr
double precision tc_bi
double precision fric2
character(len=50) hd0file
type(bief_obj), target thifems
type(bief_obj), target phps
double precision pmi0f
character(len=50) tbcfile
character(len=50) qnifile
logical, dimension(maxvar) sorimp
character(len=50) parfile
integer, parameter maxvar
type(bief_obj), target thifem