The TELEMAC-MASCARET system  trunk
lecdon_khione.f
Go to the documentation of this file.
1 ! ************************
2  SUBROUTINE lecdon_khione
3 ! ************************
4 !
5  & (file_desc,path,ncar)
6 !
7 !***********************************************************************
8 ! KHIONE V7P2 02/11/2016
9 !***********************************************************************
10 !
11 !brief READS THE STEERING FILE THROUGH A DAMOCLES CALL.
12 !
13 !history F. SOUILLE (EDF)
14 !+ 30/09/2019
15 !+ V8P0
16 !+ Updated variables and sections
17 !
18 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
19 !| FILE_DESC |-->| STORES THE FILES 'SUBMIT' ATTRIBUTES
20 !| | | IN DICTIONARIES. IT IS FILLED BY DAMOCLES.
21 !| NCAR |-->| LENGTH OF PATH
22 !| PATH |-->| NAME OF CURRENT DIRECTORY
23 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
24 !
27  USE meteo_telemac
29 !
30  IMPLICIT NONE
31 !
32 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
33 !
34  CHARACTER(LEN=PATH_LEN), INTENT(INOUT) :: FILE_DESC(4,maxkeyword)
35  INTEGER, INTENT(IN) :: NCAR
36  CHARACTER(LEN=PATH_LEN), INTENT(IN) :: PATH
37 !
38 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
39 !
40  CHARACTER(LEN=8) :: MNEMO(maxvar)
41  INTEGER :: K,I
42  DOUBLE PRECISION :: ANG
43  CHARACTER(LEN=2) CHAR2
44 !
45  CHARACTER(LEN=PATH_LEN) :: NOM_CAS
46  CHARACTER(LEN=PATH_LEN) :: NOM_DIC
47 !
48 !-----------------------------------------------------------------------
49 !
50 ! ARRAYS USED IN THE DAMOCLES CALL
51 !
52  INTEGER ADRESS(4,maxkeyword)
53  INTEGER DIMENS(4,maxkeyword)
54  DOUBLE PRECISION MOTREA(maxkeyword)
55  INTEGER MOTINT(maxkeyword)
56  LOGICAL MOTLOG(maxkeyword)
57  CHARACTER(LEN=PATH_LEN) MOTCAR(maxkeyword)
58  CHARACTER(LEN=72) MOTCLE(4,maxkeyword,2)
59  INTEGER TROUVE(4,maxkeyword)
60  LOGICAL DOC
61  INTEGER :: ID_DICO, ID_CAS
62 !
63 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
64 !
65  IF (lng.EQ.1) WRITE(lu,1)
66  IF (lng.EQ.2) WRITE(lu,2)
67 1 FORMAT(1x,/,19x, '********************************************',/,
68  & 19x, '* SOUS-PROGRAMME LECDON_KHIONE *',/,
69  & 19x, '* APPEL DE DAMOCLES *',/,
70  & 19x, '* VERIFICATION DES DONNEES LUES *',/,
71  & 19x, '* SUR LE FICHIER CAS *',/,
72  & 19x, '********************************************',/)
73 2 FORMAT(1x,/,19x, '********************************************',/,
74  & 19x, '* SUBROUTINE LECDON_KHIONE *',/,
75  & 19x, '* CALL OF DAMOCLES *',/,
76  & 19x, '* VERIFICATION OF READ DATA *',/,
77  & 19x, '* ON STEERING FILE *',/,
78  & 19x, '********************************************',/)
79 !
80 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
81 !
82 ! DAMOCLE CALL - PARSING DICO AND CAS FILES
83 !
84 ! __________________________________________________________________
85 ! INITIALISES THE VARIABLES FOR DAMOCLES CALL
86  DO k=1,maxkeyword
87 ! A FILENAME NOT GIVEN BY DAMOCLES WILL BE RECOGNIZED AS A WHITE SPACE
88 ! (IT MAY BE THAT NOT ALL COMPILERS WILL INITIALISE LIKE THAT)
89  motcar(k)(1:1)=' '
90 !
91  dimens(1,k) = 0
92  dimens(2,k) = 0
93  dimens(3,k) = 0
94  dimens(4,k) = 0
95  ENDDO
96 !
97 ! __________________________________________________________________
98 ! WRITES OUT INFO
99  doc = .false.
100 !
101 ! __________________________________________________________________
102 ! OPENS DICTIONNARY AND STEERING FILES
103 !
104  IF(ncar.GT.0) THEN
105 !
106  nom_dic=path(1:ncar)//'ICEDICO'
107  nom_cas=path(1:ncar)//'ICECAS'
108 !
109  ELSE
110 !
111  nom_dic='ICEDICO'
112  nom_cas='ICECAS'
113 !
114  ENDIF
115 !
116  CALL get_free_id(id_dico)
117  OPEN(id_dico,file=nom_dic,form='FORMATTED',action='READ')
118  CALL get_free_id(id_cas)
119  OPEN(id_cas,file=nom_cas,form='FORMATTED',action='READ')
120 !
121 ! __________________________________________________________________
122 ! CALL DAMOCLE
123  CALL damocle
124  &( adress, dimens, maxkeyword, doc, lng, lu, motint,
125  & motrea, motlog, motcar, motcle , trouve, id_dico, id_cas,
126  & .false.,file_desc)
127 !
128 ! __________________________________________________________________
129 ! CLOSES DICTIONNARY AND STEERING FILES
130  CLOSE(id_dico)
131  CLOSE(id_cas)
132 !
133 !
134 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
135 !
136 ! RETRIEVES FILE NUMBERS FROM KHIONE FORTRAN PARAMETERS
137 !
138 ! DECODES 'SUBMIT' CHAINS
139  CALL read_submit(ice_files,maxlu_ice,file_desc,maxkeyword)
140 !
141 ! AT THIS LEVEL LOGICAL UNITS ARE EQUAL TO THE FILE NUMBER
142  DO i=1,maxlu_ice
143  IF (ice_files(i)%TELNAME.EQ.'ICECLI') THEN
144  icecli=i
145  ELSEIF(ice_files(i)%TELNAME.EQ.'ICEGEO') THEN
146  icegeo=i
147  ELSEIF(ice_files(i)%TELNAME.EQ.'ICEREF') THEN
148  iceref=i
149  ELSEIF(ice_files(i)%TELNAME.EQ.'ICERES') THEN
150  iceres=i
151  ELSEIF(ice_files(i)%TELNAME.EQ.'ICECOV') THEN
152  icecov=i
153  ELSEIF(ice_files(i)%TELNAME.EQ.'ICEBLK') THEN
154  iceblk=i
155  ELSEIF(ice_files(i)%TELNAME.EQ.'CLGRFO') THEN
156  clgrfo=i
157  ENDIF
158  ENDDO
159 !
160 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
161 !
162 ! ALGORITHMIC DIFFERENTIATION
163 !
164  nadvar = motint( adress(1,13) )
165 !
166 ! NAMES OF DIFFERENTIATED VARIABLES
167  n_names_advar = dimens(4,13)
168  nadvar = max( nadvar,n_names_advar ) ! WARNING HERE ?
169  IF(nadvar.GT.0) THEN
170  DO i=1,nadvar
171  WRITE(char2,'(I2)') i
172  names_advar(i) = 'DERIVATIVE '//adjustl(char2)//' '
173  & // '?? '
174  ENDDO
175  ENDIF
176  IF(n_names_advar.GT.0) THEN
177  DO k=1,n_names_advar
178  names_advar(k) = motcar(adress(4,13)+k-1)(1:32)
179  ENDDO
180  ENDIF
181 !
182 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
183 !
184 ! LISTING AND GRAPHICAL OUTPUTS
185 ! __________________________________________________________________
186 ! TITLE OF THE STUDY
187  titicecas = motcar( adress(4, 3) )(1:72)
188 ! __________________________________________________________________
189 ! GRAPHIC PRINTOUT PERIOD
190  leoprd = motint( adress(1, 1) )
191 ! __________________________________________________________________
192 ! LISTING PRINTOUT PERIOD
193  lisprd = motint( adress(1, 2) )
194 ! __________________________________________________________________
195 ! FILES IN THE STEERING FILE
196 !
197  ice_files(icecli)%NAME=motcar( adress(4,4 ) )
198  ice_files(icegeo)%NAME=motcar( adress(4,5 ) )
199  ice_files(icegeo)%FMT=motcar( adress(4,35) )(1:8)
200  ice_files(iceref)%NAME=motcar( adress(4,6) )
201  ice_files(iceref)%FMT=motcar( adress(4,36) )(1:8)
202  ice_files(iceres)%NAME=motcar( adress(4,7 ) )
203  ice_files(iceres)%FMT=motcar( adress(4,37) )(1:8)
204  ! PREVIOUS ICE COVER FILE
205  ice_files(icecov)%NAME=motcar( adress(4,8) )
206  ice_files(icecov)%FMT=motcar( adress(4,14) )(1:8)
207  CALL majus(ice_files(icecov)%FMT)
208  ! PREVIOUS ICE BLOCKS FILE
209  ice_files(iceblk)%NAME=motcar( adress(4,15) )
210  ice_files(iceblk)%FMT=motcar( adress(4,16) )(1:8)
211  CALL majus(ice_files(icecov)%FMT)
212  ! CLOGGING RESULTS FILE
213  ice_files(clgrfo)%NAME=motcar( adress(4,25 ) )
214 ! __________________________________________________________________
215 ! UPDATE OF MNEMO AND NOMVARS
216  DO i=1,maxvar
217  mnemo(i) = ' '
218  ENDDO
220 ! __________________________________________________________________
221 ! GRAPHICAL OUTPUT VARIABLES
222  vardes = motcar( adress(4, 10) )(1:72)
223  CALL majus( vardes )
224  CALL sortie( vardes , mnemo , maxvar , sorleo )
225  varimp = motcar( adress(4, 11) )(1:72)
226  CALL majus( varimp )
227  CALL sortie( varimp , mnemo , maxvar , sorimp )
228 !
229 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
230 !
231 ! PHYSICAL PRPERTIES AND CONSTANTS RELATED KEYWORDS
232 ! __________________________________________________________________
233 ! WATER KINEMATIC VISCOSITY
234  xnu = motrea( adress(2,8) )
235 ! __________________________________________________________________
236 ! DENSITIES
237  ro0 = motrea( adress(2, 1) ) !WATER
238  rho_air = motrea( adress(2, 11) )
239  rho_ice = motrea( adress(2, 12) )
240 ! __________________________________________________________________
241 ! SPECIFIC AND LATENT HEATS
242  cp_eau = motrea( adress(2, 5) )
243  cp_ice = motrea( adress(2, 16) )
244  lh_ice = motrea( adress(2, 17) )
245 ! __________________________________________________________________
246 ! ICE ALBEDO
247  albe = motrea( adress(2,34) )
248 !
249 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
250 !
251 ! ATMOSPHERIC PROPERTY RELATED KEYWORDS (IN METEO_TELEMAC)
252 !
253  atmoexch = motint( adress(1,17) )
254 ! __________________________________________________________________
255 ! VERTICAL DATUM
256  windz = motrea( adress(2,22) )
257  modelz = motrea( adress(2,23) )
258 ! __________________________________________________________________
259 ! SUN RISE AND SUN SET ANGLES
260  alphsd = motrea( adress(2,25) ) !? sun exit angle
261  alphrd = motrea( adress(2,26) ) !? sun emission angle
262 ! __________________________________________________________________
263 ! SOLAR CONSTANT
264  sio = motrea( adress(2,33) ) !? solar constant
265 ! __________________________________________________________________
266 ! HEAT EXCHANGE CALIBRATION COEFFICIENTS
267 ! (ATMOSPHERE-WATER EXCHANGE MODEL=3)
268  lin_watair = motrea( adress(2, 18) ) ! replaces HWA
269  cst_watair = motrea( adress(2, 20) ) ! replaces ALPW
270  lin_iceair = motrea( adress(2, 19) ) ! replaces HIA
271  cst_iceair = motrea( adress(2, 21) ) ! replaces ALP
272 ! __________________________________________________________________
273 ! HEAT EXCHANGE CALIBRATION COEFFICIENTS
274  coef_phib = motrea( adress(2, 56) )
275  coef_phie = motrea( adress(2, 57) )
276  coef_phih = motrea( adress(2, 58) )
277  coef_phip = motrea( adress(2, 59) )
278 ! __________________________________________________________________
279 ! METEOROLOGY, IN CASE ABSENT FROM METEO FILES
280 ! CST_TAIR = MOTREA( ADRESS(2, 41) )
281  cst_tdew = motrea( adress(2, 42) )
282 ! CST_CLDC = MOTREA( ADRESS(2, 43) )
283  cst_visbi = motrea( adress(2, 45) )
284 ! CST_RAINFALL = MOTREA( ADRESS(2, 46) )
285 ! IF( DIMENS(2,47).EQ.2 ) THEN
286 ! CST_WINDS = MOTREA( ADRESS(2,47) + 0 )
287 ! CST_WINDD = MOTREA( ADRESS(2,47) + 1 )
288 ! DTRS4 = ATAN(1.D0) / 45.D0
289 ! CST_WINDX = - CST_WINDS * SIN( CST_WINDD*DTRS4 )
290 ! CST_WINDY = - CST_WINDS * COS( CST_WINDD*DTRS4 )
291 ! ENDIF
292 ! IF( DIMENS(2,48).EQ.2 ) THEN
293 ! CST_WINDX = MOTREA( ADRESS(2,48) + 0 )
294 ! CST_WINDY = MOTREA( ADRESS(2,48) + 1 )
295 ! ENDIF
296 ! CST_PATMOS = MOTREA( ADRESS(2, 49) )
297 !
298 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
299 !
300 ! WATER PROPERTY RELATED KEYWORDS
301 !
302 !
303 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
304 !
305 ! FREEZEUP RELATED KEYWORDS
306 !
307  de = motrea( adress(2,28) ) ! DIAMETER THICKNESS RATIO
308  nuss = motrea( adress(2,24) ) ! CONSTANT NUSSELT NUMBER
309  nussi = motint( adress(1, 9) ) ! MODEL FOR NUSSLET NUMBER COMPUTATION
310  ibuoy = motint( adress(1,10) ) ! MODEL FOR BUOYANCY VELOCITY
311  isnuc = motint( adress(1,12) ) ! MODEL FOR SECONDARY NUCLEATION
312  snnmax= motrea( adress(2,13) ) ! NMAX PARAM FOR SECONDARY NUCLEATION
313  ifloc = motint( adress(1,15) ) ! MODEL FOR FLOCULATION AND BREAKUP
314  afloc = motrea( adress(2,14) ) ! AFLOC PARAM FOR FLOCULATION
315  inrjb = motint( adress(1,18) ) ! ENERGY BALANCE VERSION
316  iseed = motint( adress(1,19) ) ! SEEDING MODEL
317  minnk = motint( adress(1,20) ) ! MINIMUM NUMBER OF FRAZIL PARTICLES PER UNIT VOLUME
318  seedr = motrea( adress(2,40) ) ! FRAZIL SEEDING RATE
319 !
320 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
321 !
322 ! ICE COVER PROPERTY RELATED KEYWORDS
323 !
324  ifrot = motint(adress(1,8)) ! ICE COVER FRICTION LAW
325  ifice = motint(adress(1,16)) ! LAW FOR FRICTION COEF
326  fice = motrea(adress(2,4)) ! ICE COVER FRICTION COEFFICIENT
327  fice_max = motrea(adress(2,52)) ! ICE COVER MAX FRICTION COEFFICIENT
328  thie = motrea( adress(2,75) ) ! EQUIVALENT SURFACE ICE THCIKNESS
329 !
330 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
331 !
332 ! STATIC BORDER ICE RELATED KEYWORDS
333 !
334 !
335  bch = motrea( adress(2,98) ) ! (15) CHANNEL WIDTH FOR THE COMPUTATION OF SURFACE WATER TEMPERATURE
336  tc = motrea( adress(2,71) ) ! (-1.1) CRITICAL WATER SURFACE TEMPERATURE FOR BORDER ICE FORMATION
337  vcrbor = motrea(adress(2,50)) ! (0.07) THRESHOLD VELOCITY FOR STATIC BORDER ICE
338 !
339 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
340 !
341 ! DYNAMIC BORDER ICE RELATED KEYWORDS
342 !
343  vcrbom = motrea(adress(2,73)) ! (0.4) THRESHOLD VELOCITY ABOVE WHICH DYNAMIC BORDER ICE WILL NOT FORM
344 !
345 !
346 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
347 !
348 ! ICE PROPERTY RELATED KEYWORDS
349 !
350 !*******************************
351 ! REAL KEYWORDS *
352 !*******************************
353 !
354  alsm = motrea( adress(2,30) ) ! standard longitude, in degrees
355  allm = motrea( adress(2,31) ) ! local longitude, in degrees
356  etadir = motrea( adress(2,32) ) ! - for west longitude, + for east longitude
357  af = motrea( adress(2,29) ) ! (1.) DEPOSITION COEFFICIENT OF FRAZIL ON THE BAR
358  surf_ef = motrea( adress(2,39) ) ! POROSITY OF SURFACE ICE
359  tc_wt = motrea( adress(2,44) ) ! => XKWP: (0.56594) WATER-ICE THERMAL CONDUCTIVITY
360 !
361  clog_ef = motrea( adress(2,37) )! POROSITY OF FRAZIL ICE
362  clog_theta = motrea( adress(2,36) )
363  IF( dimens(2,35).EQ.4 ) THEN
364  clog_tdist = motrea( adress(2,35) + 0 )
365  clog_tdiam = motrea( adress(2,35) + 1 )
366  clog_vdist = motrea( adress(2,35) + 2 )
367  clog_vdiam = motrea( adress(2,35) + 3 )
368  ENDIF
369 !
370  nfrclog = dimens(1,14)
371  IF(modulo(dimens(1,3),2).EQ.1) THEN
372  IF ( motint( adress(1,3) ).EQ.0 ) THEN
373  nseclog = 0
374  ELSE
375  WRITE(lu,*) ' '
376  WRITE(lu,*) 'LECDON_KHIONE'
377  WRITE(lu,*) 'CLOOGING SECTION WORKS BY PAIR'
378  WRITE(lu,*) 'PLEASE GIVE A MULTIPLE OF 2 NUMBER OF NODES'
379  CALL plante(1)
380  stop
381  ENDIF
382  ELSE
383  nseclog = dimens(1,3)/2
384  ENDIF
386  IF( motint( adress(1,14) ).EQ.0 ) nfrclog = 0
387  IF( ntotclog.GT.0 ) THEN
388 !
389  ALLOCATE( lines%CELLS(ntotclog) )
390  lines%NVAL = ntotclog
391  IF(nfrclog.GT.0) ALLOCATE(numclog(nfrclog))
392  IF(nseclog.GT.0) ALLOCATE(seclog(dimens(1,3)))
393  IF(nseclog.GT.0) ALLOCATE(un1(nseclog))
394  IF(nseclog.GT.0) ALLOCATE(un2(nseclog))
395  ALLOCATE(clog_tlgth(ntotclog))
396  ALLOCATE(clog_twdth(ntotclog))
397  ALLOCATE(clog_vlgth(ntotclog))
398  ALLOCATE(clog_vwdth(ntotclog))
399  ALLOCATE(clog_volum(ntotclog))
400 !
401 ! ACUMULATION ANGLE
402  ang = 4.d0*atan(1.d0) * clog_theta / 180.0
403  DO k = 1,nfrclog
404  numclog(k) = motint( adress(1,14) + k-1 )
405  ENDDO
406  DO k = 1,nseclog*2
407  seclog(k) = motint( adress(1,3) + k-1 )
408  ENDDO
409  DO k = 1,ntotclog
410  lines%CELLS(k)%NVAL = 0
411  clog_tlgth(k) = 0.d0
412  clog_twdth(k) = 2.0*clog_tdiam*cos(ang)*sin(ang)
413  clog_vlgth(k) = 0.d0
414  clog_vwdth(k) = 2.0*clog_vdiam*cos(ang)*sin(ang)
415  clog_volum(k) = 0.d0
416  ENDDO
417 !
418  ENDIF
419 !
420 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
421 !
422 ! ICE PROCESS
423 !
424  cwi1 = motrea( adress(2,62) ) ! CONSTANT FOR HEAT TRANSFER BETWEEN TURBULENT WATER AND ICE
425  ciw1 = motrea( adress(2,63) ) ! CONSTANT FOR HEAT TRANSFER FOR SUPERCOOLED TURBULENT FLOW
426  ata = motrea( adress(2,64) ) ! NUSSELT NUMBER FOR HEAT TRANSFER BETWEEN LAMINAR WATER AND ICE
427  iturb = motint( adress(1,4) ) ! TURBULENCE MODEL FOR K AND EPSILON APPROXIMATION
428  tc_bi = motrea( adress(2,65) ) ! THERMAL CONDUCTIVITY OF BLACK ICE (W/M/OC) => XKI
429 !
430  tc_s = motrea( adress(2,67) ) ! THERMAL CONDUCTIVITY OF SNOW(W/M/OC) => XKS
431  sgma = motrea( adress(2,69) ) ! BOLTZMANN CONSTANT (WM-2K-4)
432  cst_tmelt = motrea( adress(2,70) ) ! FREEZING POINT OF WATER
433 !
434  anfem0 = motrea( adress(2,74) ) ! (1.) MAXIMUM CONCENTRATION FOR BORDER ICE FORMATION
435 !
436 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
437 !
438 ! FREEZEUP PARAMETERS INIT
439 !
440  ALLOCATE(rk_frzl(nc_fra))
441  ALLOCATE(ek_frzl(nc_fra))
442  ALLOCATE(vk_frzl(nc_fra))
443  ALLOCATE(nusst(nc_fra))
444  ALLOCATE(vbk(nc_fra))
445 !
446  IF(nc_fra.GT.0) THEN
447  DO k=1,nc_fra
448  IF(dimens(2, 27).GE.k) THEN
449  rk_frzl(k) = motrea( adress(2, 27) + k-1 )
450  ELSE
451  IF(k.EQ.1) THEN
452  rk_frzl(k) = 1.0e-4
453  ELSE
454  rk_frzl(k) = rk_frzl(1) + (k-1)*1.0e-4
455  ENDIF
456  WRITE(lu,*) 'WARNING: THE VALUE OF FRAZIL CRISTAL RADIUS ',k
457  WRITE(lu,*) ' IS NOT GIVEN, RADIUS IS SET TO ', rk_frzl(k)
458  ENDIF
459  nusst(k) = nuss
460  pi = 4.d0*atan(1.d0)
461  ek_frzl(k) = 2.d0*rk_frzl(k)/de
462  vk_frzl(k) = 2.d0*pi*rk_frzl(k)**3/de
463  vbk(k) = buoyancy_velocity(rk_frzl(k), ek_frzl(k))
464  ENDDO
465  ENDIF
466 !
467 !-----------------------------------------------------------------------
468 !
469  RETURN
470  END SUBROUTINE
double precision clog_vdist
double precision fice_max
double precision cst_watair
double precision, dimension(:), allocatable clog_volum
double precision, dimension(:), allocatable un1
type(str_line_type) lines
double precision coef_phib
double precision etadir
double precision clog_vdiam
double precision, dimension(:), allocatable vbk
double precision snnmax
double precision coef_phip
double precision cst_iceair
double precision coef_phie
subroutine nomvar_khione(TEXTE, TEXTPR, MNEMO, NADVAR, NAMES_ADVAR)
Definition: nomvar_khione.f:7
double precision clog_tdist
integer, dimension(:), allocatable seclog
double precision clog_tdiam
double precision, dimension(:), allocatable nusst
double precision function, public buoyancy_velocity(RADIUS, THICKNESS)
subroutine read_submit(FILES, NFILES, SUBMIT, NMOT)
Definition: read_submit.f:7
double precision cp_ice
double precision surf_ef
double precision, dimension(:), allocatable clog_vlgth
character(len=72) titicecas
double precision coef_phih
double precision, dimension(:), allocatable ek_frzl
double precision nussi
double precision lh_ice
integer, parameter maxkeyword
integer, dimension(:), allocatable numclog
character(len=72) varimp
double precision, dimension(:), allocatable clog_tlgth
character(len=32), dimension(maxvar) textpr
character(len=72) vardes
double precision, dimension(:), allocatable vk_frzl
double precision tc_wt
double precision vcrbom
double precision cp_eau
double precision rho_air
character(len=32), dimension(maxvar) texte
double precision vcrbor
double precision, dimension(:), allocatable rk_frzl
double precision lin_iceair
double precision, public alphsd
type(bief_file), dimension(maxlu_ice) ice_files
double precision, dimension(:), allocatable clog_twdth
double precision seedr
subroutine sortie(CHAINE, MNEMO, NBRE, SORLEO)
Definition: sortie.f:7
logical, dimension(maxvar) sorleo
subroutine damocle(ADRESS, DIMENS, NMAX, DOC, LLNG, LLU, MOTINT, MOTREA, MOTLOG, MOTCAR, MOTCLE, TROUVE, NFICMO, NFICDA, GESTD, MOTATT)
Definition: damocle.f:9
double precision, public cst_tdew
Definition: meteo_telemac.f:62
double precision, public cst_visbi
Definition: meteo_telemac.f:99
subroutine lecdon_khione(FILE_DESC, PATH, NCAR)
Definition: lecdon_khione.f:7
double precision, dimension(:), allocatable clog_vwdth
double precision clog_theta
double precision lin_watair
integer, parameter maxlu_ice
double precision, public alphrd
double precision, dimension(:), allocatable un2
character(len=32), dimension(maxvar) names_advar
double precision afloc
double precision, public modelz
double precision rho_ice
double precision clog_ef
double precision anfem0
double precision cst_tmelt
subroutine majus(CHAINE)
Definition: majus.f:7
double precision, public windz
double precision tc_bi
logical, dimension(maxvar) sorimp
integer, parameter maxvar