MFIX  2016-1
set_flags.f
Go to the documentation of this file.
1 !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvC
2 ! C
3 ! Subroutine: SET_FLAGS C
4 ! Purpose: This module assigns a flag to a cell to identify its type. C
5 ! C
6 ! Author: M. Syamlal Date: 29-JAN-92 C
7 ! Reviewer: P. Nicoletti, W. Rogers, S. Venkatesan Date: 31-JAN-92 C
8 ! C
9 ! Revision Number: 1 C
10 ! Purpose: In cylindrical geometry, set the b.c at X=0 to free-slip C
11 ! Author: M. Syamlal Date: 09-APR-92 C
12 ! C
13 ! Revision Number: 2 C
14 ! Purpose: Initialize FLAG_E, FLAG_N, FLAG_T for IS specifications. C
15 ! Change definition of Flags. C
16 ! Author: M. Syamlal Date: 21-OCT-92 C
17 ! Reviewer: M. Syamlal Date: 11-DEC-92 C
18 ! C
19 ! Revision Number: 3 C
20 ! Purpose: Define FLAG using info from ICBC_FLAG C
21 ! Author: M. Syamlal Date: 21-APR-93 C
22 ! C
23 ! Literature/Document References: C
24 ! C
25 ! Variables referenced: IMAX2, JMAX2, KMAX2, BC_DEFINED, BC_TYPE, C
26 ! BC_K_b, BC_K_t, BC_J_s, BC_J_n, BC_I_w, C
27 ! IS_K_b, IS_K_t, IS_J_s, IS_J_n, IS_I_w, C
28 ! BC_I_e, NO_I, NO_J, NO_K C
29 ! Variables modified: FLAG, FLAG_E, FLAG_N, FLAG_T C
30 ! C
31 ! Local variables: I, J, K, IJK, L, FLAGX C
32 ! C
33 !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^C
34 
35  SUBROUTINE set_flags
36 
37 !-----------------------------------------------
38 ! Modules
39 !-----------------------------------------------
40  USE bc
41  USE compar
42  USE exit, only: mfix_exit
43  USE fldvar
44  USE function3
45  USE functions
46  USE funits
47  USE geometry
48  USE indices
49  USE is
50  USE parallel
51  USE param
52  USE param1
53  USE physprop
54  USE sendrecv
55  USE sendrecv3
56  use mpi_utility
57  IMPLICIT NONE
58 !-----------------------------------------------
59 ! Local variables
60 !-----------------------------------------------
61 ! Indices
62  INTEGER :: I, J, K, IJK, IJK1
63 ! Local DO loop index for b.c. specification
64  INTEGER :: L
65 ! Temporary storage for FLAG value
66  INTEGER :: FLAGX
67  integer, allocatable :: arr1(:)
68 !-----------------------------------------------
69 
70 ! Cell flag definitions
71 ! FLAG ICBC_FLAG BC_TYPE Cell type
72 ! ----- --------- ------- ---------
73 ! 1 . - Cell containing gas or solids or both
74 ! 10 p P_INFLOW Specified pressure inflow cell
75 ! 11 P P_OUTFLOW Specified pressure outflow cell
76 ! 20 I MASS_INFLOW Specified mass flux inflow cell
77 ! 21 O MASS_OUTFLOW Specified mass flux outflow cell
78 ! 31 o OUTFLOW outflow cell
79 ! 100 W NO_SLIP_WALL Internal/external wall with no-slip b.c.
80 ! 101 S FREE_SLIP_WALL Internal/external wall with free-slip
81 ! 102 s PAR_SLIP_WALL Internal/external wall with partial-slip b.c.
82 ! 106 c CYCLIC Cyclic b.c.
83 ! 107 C CYCLIC_PD Cyclic b.c. with pressure drop
84 ! Flag values greater than 100 are considered to be wall cells
85 ! (see function.inc).
86 
87 ! make the wall cells adjacent to flow boundaries free-slip wall to
88 ! avoid unphysical strain rates in fluid cells adjacent to the flow
89 ! boundary
90 ! ---------------------------------------------------------------->>>
91 !!$omp parallel do private( IJK) &
92 !!$omp schedule(static)
93  DO i = istart4, iend4
94  DO j = jstart4, jend4
95  DO k = kstart4, kend4
96 
97  ijk = funijk(i, j, k)
98  SELECT CASE (trim(icbc_flag(ijk)(1:1)))
99  CASE ('p', 'P', 'I', 'O', 'o')
100 
101  ijk1 = bound_funijk(i+1, j, k)
102  IF(trim(icbc_flag(ijk1)(1:1)) == 'W')icbc_flag(ijk1)(1:1)='S'
103 
104  ijk1 = bound_funijk(i-1, j, k)
105  IF(trim(icbc_flag(ijk1)(1:1)) == 'W')icbc_flag(ijk1)(1:1)='S'
106 
107  ijk1 = bound_funijk(i, j+1, k)
108  IF(trim(icbc_flag(ijk1)(1:1)) == 'W')icbc_flag(ijk1)(1:1)='S'
109 
110  ijk1 = bound_funijk(i, j-1, k)
111  IF(trim(icbc_flag(ijk1)(1:1)) == 'W')icbc_flag(ijk1)(1:1)='S'
112 
113  ijk1 = bound_funijk(i, j, k+1)
114  IF(trim(icbc_flag(ijk1)(1:1)) == 'W')icbc_flag(ijk1)(1:1)='S'
115 
116  ijk1 = bound_funijk(i, j, k-1)
117  IF(trim(icbc_flag(ijk1)(1:1)) == 'W')icbc_flag(ijk1)(1:1)='S'
118  END SELECT
119  ENDDO
120  ENDDO
121  ENDDO
122 ! ----------------------------------------------------------------<<<
123 
124 ! Define the numerical value of the variable flag for all cells based
125 ! on the corresponding character value of icbc_flag. By this point the
126 ! icbc_flag has been defined in all cells (see check_data_06 and
127 ! check_data07 -> get_flow_bc and get_wall_bc)
128 ! ---------------------------------------------------------------->>>
129 !!$omp parallel do private( IJK) &
130 !!$omp& schedule(static)
131  DO ijk = ijkstart3, ijkend3
132  SELECT CASE (trim(icbc_flag(ijk)(1:1)))
133  CASE ('.')
134  flag(ijk) = 1
135  CASE ('p')
136  flag(ijk) = 10
137  CASE ('P')
138  flag(ijk) = 11
139  CASE ('I')
140  flag(ijk) = 20
141  CASE ('O')
142  flag(ijk) = 21
143  CASE ('o')
144  flag(ijk) = 31
145  CASE ('W')
146  flag(ijk) = 100
147  CASE ('S')
148  flag(ijk) = 101
149  CASE ('s')
150  flag(ijk) = 102
151  CASE ('c')
152  flag(ijk) = 106
153  CASE ('C')
154  flag(ijk) = 107
155  CASE DEFAULT
156 
157 ! Access to only one thread at a time
158 !!$omp critical
159  IF(dmp_log)WRITE (unit_log, 1000) ijk, icbc_flag(ijk)
160  call mfix_exit(mype)
161 !!$omp end critical
162  END SELECT
163 ! ----------------------------------------------------------------<<<
164 
165 ! Initialize cell face flags. UNDEFINED_I should be a large +ve value.
166  flag_e(ijk) = undefined_i
167  flag_n(ijk) = undefined_i
168  flag_t(ijk) = undefined_i
169  ENDDO
170 
171 
172 
173 ! Setting up flags for the higher-order implementation.
174 ! ---------------------------------------------------------------->>>
175  call send_recv(flag)
176 
177  DO i = istart3, iend3
178  DO j = jstart3, jend3
179  DO k = kstart3, kend3
180  flag3(funijk3(i,j,k)) = flag(funijk(i,j,k))
181  ENDDO
182  ENDDO
183  ENDDO
184 
185  DO i = istart4, iend4
186  DO j = jstart4, jend4
187  DO k = kstart4, kend4
188  If(i.eq.istart4.and.istart4.ne.istart3) then
189  flag3(funijk3(i,j,k)) = flag3(funijk3(i+1,j,k))
190  endif
191 
192  If(j.eq.jstart4.and.kstart4.ne.kstart3) then
193  flag3(funijk3(i,j,k)) = flag3(funijk3(i,j+1,k))
194  endif
195 
196  If(k.eq.kstart4.and.kstart4.ne.kstart3) then
197  flag3(funijk3(i,j,k)) = flag3(funijk3(i,j,k+1))
198  endif
199 
200  If(i.eq.iend4.and.iend4.ne.iend3) then
201  flag3(funijk3(i,j,k)) = flag3(funijk3(i-1,j,k))
202  endif
203 
204  If(j.eq.jend4.and.jend4.ne.jend3) then
205  flag3(funijk3(i,j,k)) = flag3(funijk3(i,j-1,k))
206  endif
207 
208  If(k.eq.kend4.and.kend4.ne.kend3) then
209  flag3(funijk3(i,j,k)) = flag3(funijk3(i,j,k-1))
210  endif
211 
212  ENDDO
213  ENDDO
214  ENDDO
215 
216  call send_recv3(flag3)
217 ! ----------------------------------------------------------------<<<
218 
219 
220 ! Set flag_e, flag_n and flag_b to indicate any internal surfaces. If
221 ! the flag is greater than or equal to 2000, then there is no internal
222 ! surface.
223 ! ---------------------------------------------------------------->>>
224 
225  DO l = 1, dimension_is
226 ! Make sure an IS has been specified
227  IF (is_defined(l)) THEN
228  IF (is_type(l)=='IMPERMEABLE' .OR. &
229  is_type(l)(3:13)=='IMPERMEABLE') THEN
230  flagx = 0
231  ELSEIF (is_type(l)=='SEMIPERMEABLE' .OR. &
232  is_type(l)(3:15)=='SEMIPERMEABLE') THEN
233  flagx = 1000 + l
234  ELSE
235  IF(dmp_log)WRITE (unit_log, 1100) l
236  call mfix_exit(mype)
237  ENDIF
238 
239  IF (is_x_w(l)==is_x_e(l) .AND. do_i) THEN
240  is_plane(l) = 'E'
241  i = is_i_w(l)
242  DO k = is_k_b(l), is_k_t(l)
243  DO j = is_j_s(l), is_j_n(l)
244  IF (.NOT.is_on_mype_plus2layers(i,j,k)) cycle
245  IF (dead_cell_at(i,j,k)) cycle ! skip dead cells
246  ijk = funijk(i,j,k)
247  flag_e(ijk) = flagx
248  ENDDO
249  ENDDO
250  ELSEIF (is_type(l)(1:1) == 'X') THEN
251  is_plane(l) = 'E'
252  DO i = is_i_w(l), is_i_e(l)
253  DO k = is_k_b(l), is_k_t(l)
254  DO j = is_j_s(l), is_j_n(l)
255  IF (.NOT.is_on_mype_plus2layers(i,j,k)) cycle
256  IF (dead_cell_at(i,j,k)) cycle ! skip dead cells
257  ijk = funijk(i,j,k)
258  flag_e(ijk) = flagx
259  ENDDO
260  ENDDO
261  ENDDO
262  ENDIF
263 
264  IF (is_y_s(l)==is_y_n(l) .AND. do_j) THEN
265  is_plane(l) = 'N'
266  j = is_j_s(l)
267  DO k = is_k_b(l), is_k_t(l)
268  DO i = is_i_w(l), is_i_e(l)
269  IF (.NOT.is_on_mype_plus2layers(i,j,k)) cycle
270  IF (dead_cell_at(i,j,k)) cycle ! skip dead cells
271  ijk = funijk(i,j,k)
272  flag_n(ijk) = flagx
273  ENDDO
274  ENDDO
275  ELSEIF (is_type(l)(1:1) == 'Y') THEN
276  is_plane(l) = 'N'
277  DO j = is_j_s(l), is_j_n(l)
278  DO k = is_k_b(l), is_k_t(l)
279  DO i = is_i_w(l), is_i_e(l)
280  IF (.NOT.is_on_mype_plus2layers(i,j,k)) cycle
281  IF (dead_cell_at(i,j,k)) cycle ! skip dead cells
282  ijk = funijk(i,j,k)
283  flag_n(ijk) = flagx
284  ENDDO
285  ENDDO
286  ENDDO
287  ENDIF
288 
289  IF (is_z_b(l)==is_z_t(l) .AND. do_k) THEN
290  is_plane(l) = 'T'
291  k = is_k_b(l)
292  DO j = is_j_s(l), is_j_n(l)
293  DO i = is_i_w(l), is_i_e(l)
294  IF (.NOT.is_on_mype_plus2layers(i,j,k)) cycle
295  IF (dead_cell_at(i,j,k)) cycle ! skip dead cells
296  ijk = funijk(i,j,k)
297  flag_t(ijk) = flagx
298  ENDDO
299  ENDDO
300  ELSEIF (is_type(l)(1:1) == 'Z') THEN
301  is_plane(l) = 'T'
302  DO k = is_k_b(l), is_k_t(l)
303  DO j = is_j_s(l), is_j_n(l)
304  DO i = is_i_w(l), is_i_e(l)
305  IF (.NOT.is_on_mype_plus2layers(i,j,k)) cycle
306  IF (dead_cell_at(i,j,k)) cycle ! skip dead cells
307  ijk = funijk(i,j,k)
308  flag_t(ijk) = flagx
309  ENDDO
310  ENDDO
311  ENDDO
312  ENDIF
313 
314  ENDIF
315  call send_recv(flag,2)
316  call send_recv(flag_t,2)
317  call send_recv(flag_n,2)
318  call send_recv(flag_e,2)
319  ENDDO ! end do loop (l = 1, dimension_is)
320 ! ----------------------------------------------------------------<<<
321 
322  IF (mype.EQ.pe_io) THEN
323  ALLOCATE (arr1(ijkmax3))
324  ELSE
325  ALLOCATE (arr1(1))
326  ENDIF
327 
328  CALL gather(flag,arr1,root)
329  CALL scatter(flag,arr1,root)
330 
331  DEALLOCATE (arr1)
332 
333 
334  RETURN
335  1000 FORMAT(/1x,70('*')//' From: SET_FLAGS',/&
336  ' Message: ICBC_FLAG(',i3,') = ',&
337  a3,' is illegal',/1x,70('*')/)
338  1100 FORMAT(/1x,70('*')//' From: SET_FLAGS',/&
339  ' Message: Unknown IS_TYPE(',i3,&
340  ')',/1x,70('*')/)
341 
342  END SUBROUTINE set_flags
343 
344 !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvC
345 ! C
346 ! Module name: SET_FLAGS1 C
347 ! Purpose: Assign IP flag to the faces of wall cells C
348 ! C
349 ! Notes: This routine may still leave flag_e, flag_n and flag_t C
350 ! undefined in some boundary cells C
351 ! C
352 ! Author: M. Syamlal Date: 15-MAY-96 C
353 ! Reviewer: Date: C
354 ! C
355 ! Literature/Document References: C
356 ! C
357 ! Variables referenced: C
358 ! Variables modified: FLAG_E, FLAG_N, FLAG_T C
359 ! Local variables: C
360 ! C
361 !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^C
362 
363  SUBROUTINE set_flags1
365 !-----------------------------------------------
366 ! Modules
367 !-----------------------------------------------
368  USE param
369  USE param1
370  USE parallel
371  USE fldvar
372  USE geometry
373  USE bc
374  USE is
375  USE indices
376  USE physprop
377  USE funits
378  USE compar
379  USE sendrecv
380  USE mpi_utility
381  USE functions
382  IMPLICIT NONE
383 !-----------------------------------------------
384 ! Local variables
385 !-----------------------------------------------
386 ! Indices
387  INTEGER :: IJK, IMJK, IJMK, IJKM, IPJK, IJPK, IJKP
388  INTEGER :: I, J, K
389 !
390  INTEGER, DIMENSION(:), allocatable :: FLAG_TEMP
391  INTEGER :: flag_size
392 !-----------------------------------------------
393 
394 
395 ! Allocate storage for temporary flag arrays
396  flag_size = ijkmax3
397  if (mype.eq.root) then
398  flag_size = ijkmax3
399  endif
400  allocate( flag_temp(flag_size) )
401 
402 
403  DO ijk = ijkstart3,ijkend3
404  imjk = im_of(ijk)
405  ijmk = jm_of(ijk)
406  ijkm = km_of(ijk)
407  ipjk = ip_of(ijk)
408  ijpk = jp_of(ijk)
409  ijkp = kp_of(ijk)
410  i = i_of(ijk)
411  j = j_of(ijk)
412  k = k_of(ijk)
413  IF(.NOT.is_on_mype_plus2layers(i,j,k)) cycle
414  IF (dead_cell_at(i,j,k)) cycle ! skip dead cells
415 
416 ! If the flag is greater than or equal to 2000, there is no
417 ! internal surface.
418  IF (wall_at(ijk)) THEN
419 ! ---------------------------------------------------------------->>>
420 ! the default is equivalent to an impermeable surface and these cells
421 ! will be treated as such in the momentum routines
422  flag_e(ijk) = 0
423  flag_n(ijk) = 0
424  flag_t(ijk) = 0
425  flag_e(imjk) = 0
426  flag_n(ijmk) = 0
427  flag_t(ijkm) = 0
428 
429  IF (cyclic_at(ijk)) THEN
430 ! make the upper (E, N, T) boundary permeable
431  IF (i == imax2) THEN
432  IF ((j/=1.AND.j/=0.) .AND. (j/=jmax2.AND.j/=jmax3)) THEN
433  IF (no_k) THEN
434  IF(.NOT.wall_at(imjk)) flag_e(imjk) = 2000
435  ELSEIF ((k/=1.AND.k/=0) .AND. (k/=kmax2.AND.k/=kmax3)) THEN
436  IF(.NOT.wall_at(imjk)) flag_e(imjk) = 2000
437  ENDIF
438  ENDIF
439  ENDIF
440  IF (j == jmax2) THEN
441  IF ((i/=1.AND.i/=0) .AND. (i/=imax2.AND.i/=imax3)) THEN
442  IF (no_k) THEN
443  IF(.NOT.wall_at(ijmk)) flag_n(ijmk) = 2000
444  ELSE IF ((k/=1.AND.k/=0) .AND. (k/=kmax2.AND.k/=kmax3)) THEN
445  IF(.NOT.wall_at(ijmk)) flag_n(ijmk) = 2000
446  ENDIF
447  ENDIF
448  ENDIF
449  IF (k == kmax2) THEN
450  IF ((j/=1.AND.j/=0.) .AND. (j/=jmax2.AND.j/=jmax3)) THEN
451  IF ((i/=1.AND.i/=0) .AND. (i/=imax2.AND.i/=imax3) .AND. &
452  .NOT.wall_at(ijkm)) flag_t(ijkm) = 2000
453  ENDIF
454  ENDIF
455 
456  ENDIF ! end if cyclic_at(ijk)
457 
458 ! ----------------------------------------------------------------<<<
459  ELSEIF (fluid_at(ijk)) THEN
460 ! ---------------------------------------------------------------->>>
461 
462  IF ( .NOT.wall_at(imjk) .AND. flag_e(imjk)==undefined_i) &
463  flag_e(imjk) = 2000 + flag(imjk)
464  IF ( .NOT.wall_at(ijmk) .AND. flag_n(ijmk)==undefined_i) &
465  flag_n(ijmk) = 2000 + flag(ijmk)
466  IF ( .NOT.wall_at(ijkm) .AND. flag_t(ijkm)==undefined_i) &
467  flag_t(ijkm) = 2000 + flag(ijkm)
468  IF ( .NOT.wall_at(ipjk) .AND. flag_e(ijk)==undefined_i) &
469  flag_e(ijk) = 2000 + flag(ipjk)
470  IF ( .NOT.wall_at(ijpk) .AND. flag_n(ijk)==undefined_i) &
471  flag_n(ijk) = 2000 + flag(ijpk)
472  IF ( .NOT.wall_at(ijkp) .AND. flag_t(ijk)==undefined_i) &
473  flag_t(ijk) = 2000 + flag(ijkp)
474 
475  ENDIF ! end if/else (wall_at(ijk)/fluid_at(ijk))
476 
477  ENDDO ! end do loop (ijk = ijkstart3,ijkend3)
478 ! ----------------------------------------------------------------<<<
479 
480 ! Fill the ghost layers using gather and scatter
481  call gather( flag_e, flag_temp )
482  call scatter( flag_e, flag_temp )
483  call gather( flag_n, flag_temp )
484  call scatter( flag_n, flag_temp )
485  call gather( flag_t, flag_temp )
486  call scatter( flag_t, flag_temp )
487 
488 ! deallocate storage of temporary flag arrays
489  deallocate( flag_temp )
490  call send_recv(flag_t,2)
491  call send_recv(flag_n,2)
492  call send_recv(flag_e,2)
493 
494  RETURN
495  END SUBROUTINE set_flags1
subroutine set_flags1
Definition: set_flags.f:364
integer iend3
Definition: compar_mod.f:80
logical dmp_log
Definition: funits_mod.f:6
integer imax2
Definition: geometry_mod.f:61
integer, dimension(:), allocatable i_of
Definition: indices_mod.f:45
integer jstart3
Definition: compar_mod.f:80
character(len=16), dimension(dimension_is) is_type
Definition: is_mod.f:70
integer ijkend3
Definition: compar_mod.f:80
integer, parameter dimension_is
Definition: param_mod.f:63
integer kend4
Definition: compar_mod.f:94
integer imax3
Definition: geometry_mod.f:91
integer, dimension(:), allocatable flag3
Definition: geometry_mod.f:101
double precision, dimension(dimension_is) is_x_e
Definition: is_mod.f:25
integer iend4
Definition: compar_mod.f:94
integer, dimension(dimension_is) is_i_w
Definition: is_mod.f:45
integer istart4
Definition: compar_mod.f:94
integer kstart3
Definition: compar_mod.f:80
character(len=3), dimension(:), pointer icbc_flag
Definition: geometry_mod.f:111
character, dimension(dimension_is) is_plane
Definition: is_mod.f:80
Definition: is_mod.f:11
integer kend3
Definition: compar_mod.f:80
integer ijkmax3
Definition: geometry_mod.f:82
integer, dimension(:), allocatable k_of
Definition: indices_mod.f:47
double precision, dimension(dimension_is) is_x_w
Definition: is_mod.f:21
integer pe_io
Definition: compar_mod.f:30
subroutine mfix_exit(myID, normal_termination)
Definition: exit.f:5
logical, dimension(:,:,:), allocatable dead_cell_at
Definition: compar_mod.f:127
integer, dimension(:), allocatable j_of
Definition: indices_mod.f:46
integer jend3
Definition: compar_mod.f:80
integer jmax2
Definition: geometry_mod.f:63
integer root
Definition: compar_mod.f:41
integer, dimension(dimension_is) is_k_b
Definition: is_mod.f:61
Definition: exit.f:2
integer jend4
Definition: compar_mod.f:94
double precision, dimension(dimension_is) is_z_b
Definition: is_mod.f:37
integer jmax3
Definition: geometry_mod.f:91
integer jstart4
Definition: compar_mod.f:94
logical do_j
Definition: geometry_mod.f:26
integer kmax2
Definition: geometry_mod.f:65
integer, parameter unit_log
Definition: funits_mod.f:21
Definition: param_mod.f:2
logical, dimension(dimension_is) is_defined
Definition: is_mod.f:73
logical no_k
Definition: geometry_mod.f:28
integer kstart4
Definition: compar_mod.f:94
integer, dimension(:), allocatable flag_e
Definition: geometry_mod.f:103
integer kmax3
Definition: geometry_mod.f:91
logical do_k
Definition: geometry_mod.f:30
integer, dimension(dimension_is) is_j_s
Definition: is_mod.f:53
integer mype
Definition: compar_mod.f:24
integer ijkstart3
Definition: compar_mod.f:80
double precision, dimension(dimension_is) is_z_t
Definition: is_mod.f:41
integer, parameter undefined_i
Definition: param1_mod.f:19
subroutine set_flags
Definition: set_flags.f:36
double precision, dimension(dimension_is) is_y_s
Definition: is_mod.f:29
logical do_i
Definition: geometry_mod.f:22
double precision, dimension(dimension_is) is_y_n
Definition: is_mod.f:33
integer, dimension(:), allocatable flag
Definition: geometry_mod.f:99
integer, dimension(dimension_is) is_j_n
Definition: is_mod.f:57
integer, dimension(dimension_is) is_i_e
Definition: is_mod.f:49
integer istart3
Definition: compar_mod.f:80
integer, dimension(:), allocatable flag_n
Definition: geometry_mod.f:105
integer function funijk3(LI3, LJ3, LK3)
Definition: function3_mod.f:49
double precision, dimension(:), allocatable x
Definition: geometry_mod.f:129
Definition: bc_mod.f:23
integer, dimension(:), allocatable flag_t
Definition: geometry_mod.f:107
integer, dimension(dimension_is) is_k_t
Definition: is_mod.f:65