37 INTEGER :: I, J, K, IJK
38 INTEGER :: IMJK, IPJK, IJKW, IJKE
39 INTEGER :: IJMK, IJPK, IJKS, IJKN
40 INTEGER :: IJKM, IJKP, IJKB, IJKT
54 LOGICAL,
ALLOCATABLE,
DIMENSION(:) :: ALREADY_VISITED
55 INTEGER :: interval, j_start(2), j_end(2)
139 CALL set_index1a (i, j, k, ijk, imjk, ipjk, ijmk, ijpk, ijkm, &
140 ijkp, ijkw, ijke, ijks, ijkn, ijkb, ijkt)
148 1200
FORMAT(
'Error 1200: The number of classes has exceeded the ', &
149 'maximum: ',a,/
'Increase the MAX_CLASS parameter in param1', &
150 '_mod.f and recompile.')
191 DO ic = 1, iclass - 1
193 IF(denote_class(iclass) == denote_class(
ic))
THEN 222 store_lm(l,m) = m + (l - 2)*(l - 1)/2
223 store_lm(m,l) = m + (l - 2)*(l - 1)/2
232 already_visited(:) = .false.
257 if (ijk.ne. (j +
c0 + i*
c1 + k*
c2))
then 262 ijk = (j +
c0 + i*
c1 + k*
c2)
264 if (already_visited(ijk))
then 268 already_visited(ijk) = .true.
301 do j = j_start(interval),j_end(interval)
302 if (already_visited(funijk(i,j,k)))
then 306 already_visited(funijk(i,j,k)) = .true.
315 if (.not.already_visited(funijk(i,j,k)))
then 323 deallocate(already_visited)
347 east_array_of(ijk) = east_of_0(ijk)
349 north_array_of(ijk) = north_of_0(ijk)
351 top_array_of(ijk) = top_of_0(ijk)
354 ip_array_of(ijk) = ip_of_0(ijk)
356 jp_array_of(ijk) = jp_of_0(ijk)
358 kp_array_of(ijk) = kp_of_0(ijk)
398 USE discretelement
, only: discrete_element
432 INTEGER I, J, K, IJK, NEW_IJK,NN
437 LOGICAL,
DIMENSION(DIMENSION_3) :: ANY_CUT_TREATMENT, ANY_STANDARD_CELL
439 LOGICAL :: ANY_GLOBAL_GHOST_CELL,NEED_TO_SKIP_CELL
441 INTEGER,
DIMENSION(DIMENSION_3) :: IM_COPY,IP_COPY,JM_COPY,JP_COPY,KM_COPY
442 INTEGER,
DIMENSION(DIMENSION_3) :: WEST_COPY,EAST_COPY,SOUTH_COPY,NORTH_COPY
444 INTEGER,
ALLOCATABLE,
DIMENSION(:,:,:) :: TEMP_IJK_ARRAY_OF
445 INTEGER,
ALLOCATABLE,
DIMENSION(:) :: TEMP_I_OF,TEMP_J_OF,TEMP_K_OF
447 INTEGER,
ALLOCATABLE,
DIMENSION(:) :: BACKGROUND_IJKEND3_ALL,NCPP_UNIFORM_ALL
449 INTEGER :: iproc,IERR
451 INTEGER :: I1,I2,J1,J2,K1,K2,jj,sendsize,send_pos,recvsize,recv_pos
452 INTEGER :: placeholder, new_nsend1, new_nsend2,new_nrecv1,new_nrecv2
455 INTEGER,
DIMENSION(26) :: new_send_size, new_recv_size
457 integer,
pointer,
dimension(:) :: new_xsend1, new_sendijk1 , new_sendproc1
464 DOUBLE PRECISION,
DIMENSION(0:NumPEs-1) :: DIFF_NCPP
466 INTEGER :: IJKW,IJKE,IJKS,IJKN,IJKB,IJKT
467 INTEGER :: IMJK,IPJK,IJMK,IJPK,IJKM,IJKP
477 INTEGER :: I_SIZE,J_SIZE,K_SIZE
493 allocate(background_ijkend3_all(0:
numpes-1))
504 IF(
mype ==
pe_io)
WRITE(*,*)
' Re-indexing: INFO: USE_DOLOOP was set to .TRUE.' 519 IF(
mype ==
pe_io)
WRITE(*,*)
' Re-indexing: Indentifying dead cells ...' 521 any_cut_treatment = .false.
522 any_standard_cell = .false.
543 any_global_ghost_cell = (i <
imin1).OR.(i >
imax1)&
548 IF(.NOT.(any_cut_treatment(ijk)&
549 .OR.any_standard_cell(ijk)&
550 .OR.any_global_ghost_cell))
THEN 606 IF(
mype ==
pe_io)
WRITE(*,*)
' Re-indexing: Arranging all send and receive layer cells to optimize I-decomposition ...' 629 IF( any_cut_treatment(ijk).OR.any_standard_cell(ijk).OR.
THEN 647 IF( any_cut_treatment(ijk).OR.any_standard_cell(ijk).OR.
THEN 684 IF(
mype ==
pe_io)
WRITE(*,*)
' Re-indexing: Arranging all send and receive layer cells to optimize J-decomposition ...' 707 IF( any_cut_treatment(ijk).OR.any_standard_cell(ijk).OR.
THEN 725 IF( any_cut_treatment(ijk).OR.any_standard_cell(ijk).OR.
THEN 761 IF(
mype ==
pe_io)
WRITE(*,*)
' Re-indexing: Arranging all send and receive layer cells to optimize K-decomposition ...' 784 IF( any_cut_treatment(ijk).OR.any_standard_cell(ijk).OR.
THEN 802 IF( any_cut_treatment(ijk).OR.any_standard_cell(ijk).OR.
THEN 856 IF(
mype ==
pe_io)
WRITE(*,*)
' Re-indexing: Arranging all interior cells in next contiguous block...' 867 need_to_skip_cell = (i < i1).OR.(i > i2)&
868 .OR.(j < j1).OR.(j > j2)
870 IF(
do_k) need_to_skip_cell = (need_to_skip_cell.OR.(k < k1).OR.
873 IF(need_to_skip_cell) cycle
903 ip_copy = ip_array_of
905 jp_copy = jp_array_of
907 kp_copy = kp_array_of
910 east_copy = east_array_of
912 north_copy = north_array_of
914 top_copy = top_array_of
933 IF(ip_array_of(ijk)==-999) ip_array_of(ijk)=ijk
935 IF(jp_array_of(ijk)==-999) jp_array_of(ijk)=ijk
937 IF(kp_array_of(ijk)==-999) kp_array_of(ijk)=ijk
940 IF(east_array_of(ijk)==-999) east_array_of(ijk)=ijk
942 IF(north_array_of(ijk)==-999) north_array_of(ijk)=ijk
944 IF(top_array_of(ijk)==-999) top_array_of(ijk)=ijk
950 IF(ip_array_of(ijk)<
ijkstart3) ip_array_of(ijk)=ijk
952 IF(jp_array_of(ijk)<
ijkstart3) jp_array_of(ijk)=ijk
954 IF(kp_array_of(ijk)<
ijkstart3) kp_array_of(ijk)=ijk
957 IF(east_array_of(ijk)<
ijkstart3) east_array_of(ijk)=ijk
959 IF(north_array_of(ijk)<
ijkstart3) north_array_of(ijk)=ijk
961 IF(top_array_of(ijk)<
ijkstart3) top_array_of(ijk)=ijk
965 IF(ip_array_of(ijk)>
ijkend3) ip_array_of(ijk)=ijk
967 IF(jp_array_of(ijk)>
ijkend3) jp_array_of(ijk)=ijk
969 IF(kp_array_of(ijk)>
ijkend3) kp_array_of(ijk)=ijk
972 IF(east_array_of(ijk)>
ijkend3) east_array_of(ijk)=ijk
974 IF(north_array_of(ijk)>
ijkend3) north_array_of(ijk)=ijk
976 IF(top_array_of(ijk)>
ijkend3) top_array_of(ijk)=ijk
986 if(.not.
allocated(ncpp_uniform_all))
allocate( ncpp_uniform_all
991 call mpi_barrier(mpi_comm_world,
mpierr)
1006 IF(
mype ==
pe_io)
WRITE(*,*)
' Re-indexing: Shifting arrays...' 1370 IF(
mype ==
pe_io)
WRITE(*,*)
' Re-indexing: Minimizing send and receive arrays for Send layer 1...' 1376 nullify(new_xsend1, new_sendtag1, new_sendproc1, new_sendijk1)
1387 allocate( new_sendijk1( max(1,n_total) ) )
1388 allocate( new_xsend1(
nsend1+1) )
1389 allocate( new_sendtag1(
nsend1+1) )
1390 allocate( new_sendproc1(
nsend1+1) )
1404 new_send_size(nn) = 0
1410 new_send_size(nn) = new_send_size(nn) + 1
1411 send_pos = send_pos + 1
1416 IF(new_send_size(nn)>0)
THEN 1417 new_nsend1 = new_nsend1 + 1
1418 new_xsend1(new_nsend1) = placeholder
1419 placeholder = placeholder + new_send_size(nn)
1421 new_sendtag1(new_nsend1) =
sendtag1(nn)
1422 new_sendproc1(new_nsend1) =
sendproc1(nn)
1424 nj1 = new_xsend1(new_nsend1)
1425 nj2 = nj1 + new_send_size(nn) - 1
1432 new_xsend1(new_nsend1+1)= nj2 + 1
1441 IF(
mype ==
pe_io)
WRITE(*,*)
' Re-indexing: Re-assigning send and receive arrays for Send layer 2...' 1445 nullify(new_xsend2, new_sendtag2, new_sendproc2, new_sendijk2)
1455 allocate( new_sendijk2( max(1,n_total) ) )
1456 allocate( new_xsend2(
nsend2+1) )
1457 allocate( new_sendtag2(
nsend2+1) )
1458 allocate( new_sendproc2(
nsend2+1) )
1474 new_send_size(nn) = 0
1480 new_send_size(nn) = new_send_size(nn) + 1
1481 send_pos = send_pos + 1
1486 IF(new_send_size(nn)>0)
THEN 1487 new_nsend2 = new_nsend2 + 1
1488 new_xsend2(new_nsend2) = placeholder
1489 placeholder = placeholder + new_send_size(nn)
1491 new_sendtag2(new_nsend2) =
sendtag2(nn)
1492 new_sendproc2(new_nsend2) =
sendproc2(nn)
1494 nj1 = new_xsend2(new_nsend2)
1495 nj2 = nj1 + new_send_size(nn) - 1
1504 new_xsend2(new_nsend2+1)= nj2 + 1
1514 IF(
mype ==
pe_io)
WRITE(*,*)
' Re-indexing: Re-assigning send and receive arrays for Receive layer 1...' 1520 nullify(new_xrecv1, new_recvtag1, new_recvproc1, new_recvijk1)
1530 allocate( new_recvijk1( max(1,n_total) ) )
1531 allocate( new_xrecv1(
nrecv1+1) )
1532 allocate( new_recvtag1(
nrecv1+1) )
1533 allocate( new_recvproc1(
nrecv1+1) )
1553 new_recv_size(nn) = 0
1559 new_recv_size(nn) = new_recv_size(nn) + 1
1560 recv_pos = recv_pos + 1
1565 IF(new_recv_size(nn)>0)
THEN 1566 new_nrecv1 = new_nrecv1 + 1
1567 new_xrecv1(new_nrecv1) = placeholder
1568 placeholder = placeholder + new_recv_size(nn)
1570 new_recvtag1(new_nrecv1) =
recvtag1(nn)
1571 new_recvproc1(new_nrecv1) =
recvproc1(nn)
1573 nj1 = new_xrecv1(new_nrecv1)
1574 nj2 = nj1 + new_recv_size(nn) - 1
1581 new_xrecv1(new_nrecv1+1)=nj2 + 1
1590 IF(
mype ==
pe_io)
WRITE(*,*)
' Re-indexing: Re-assigning send and receive arrays for Receive layer 2...' 1593 nullify(new_xrecv2, new_recvtag2, new_recvproc2, new_recvijk2)
1603 allocate( new_recvijk2( max(1,n_total) ) )
1604 allocate( new_xrecv2(
nrecv2+1) )
1605 allocate( new_recvtag2(
nrecv2+1) )
1606 allocate( new_recvproc2(
nrecv2+1) )
1620 new_recv_size(nn) = 0
1626 new_recv_size(nn) = new_recv_size(nn) + 1
1627 recv_pos = recv_pos + 1
1632 IF(new_recv_size(nn)>0)
THEN 1633 new_nrecv2 = new_nrecv2 + 1
1634 new_xrecv2(new_nrecv2) = placeholder
1635 placeholder = placeholder + new_recv_size(nn)
1637 new_recvtag2(new_nrecv2) =
recvtag2(nn)
1638 new_recvproc2(new_nrecv2) =
recvproc2(nn)
1640 nj1 = new_xrecv2(new_nrecv2)
1641 nj2 = nj1 + new_recv_size(nn) - 1
1649 new_xrecv2(new_nrecv2+1)=nj2 + 1
1661 IF(
mype ==
pe_io)
WRITE(*,*)
' Re-indexing: Re-assigning send and receive arrays for Send layer 1...' 1669 nullify(new_sendijk1)
1671 print *,
'sendijk1=',
size(
sendijk1)
1672 allocate( new_sendijk1(
size(
sendijk1) ) )
1698 IF(
mype ==
pe_io)
WRITE(*,*)
' Re-indexing: Re-assigning send and receive arrays for Send layer 2...' 1703 print *,
'sendijk2=',
size(
sendijk2)
1704 nullify(new_sendijk2)
1707 allocate( new_sendijk2(
size(
sendijk2) ) )
1717 new_send_size(nn) = 0
1734 IF(
mype ==
pe_io)
WRITE(*,*)
' Re-indexing: Re-assigning send and receive arrays for Receive layer 1...' 1740 print *,
'recvijk1=',
size(
recvijk1)
1741 nullify(new_recvijk1)
1744 allocate( new_recvijk1(
size(
recvijk1) ) )
1754 new_recv_size(nn) = 0
1772 IF(
mype ==
pe_io)
WRITE(*,*)
' Re-indexing: Re-assigning send and receive arrays for Receive layer 2...' 1775 print *,
'secvijk2=',
size(
recvijk2)
1776 nullify(new_recvijk2)
1779 allocate( new_recvijk2(
size(
recvijk2) ) )
1787 new_recv_size(nn) = 0
1808 comm = mpi_comm_world
1818 call mpi_barrier(mpi_comm_world,
mpierr)
1827 IF(
mype ==
pe_io)
WRITE(*,*)
' Re-indexing: Re-assigning cell classes...' 1846 ijkn = north_array_of(ijk)
1848 ijke = east_array_of(ijk)
1850 ijkt = top_array_of(ijk)
1854 ipjk = ip_array_of(ijk)
1856 ijpk = jp_array_of(ijk)
1858 ijkp = kp_array_of(ijk)
1905 DO ic = 1, iclass - 1
1907 IF (denote_class(iclass) == denote_class(
ic))
THEN 1936 IF(
mype ==
pe_io)
WRITE(*,*)
' Re-indexing: New number of classes = ' 1953 call mpi_barrier(mpi_comm_world,
mpierr)
1957 WRITE(*,1000)
"=============================================================================" 1958 WRITE(*,1000)
" PROCESSOR I-SIZE J-SIZE K-SIZE # CELLS # CELLS DIFF." 1959 WRITE(*,1000)
" (BCKGRD) (RE-INDEXED) (%)" 1960 WRITE(*,1000)
"=============================================================================" 1964 call mpi_barrier(mpi_comm_world,
mpierr)
1968 IF(
mype==iproc)
THEN 1973 WRITE(*,1060) iproc,i_size,j_size,k_size,background_ijkend3_all
1976 call mpi_barrier(mpi_comm_world,
mpierr)
1981 WRITE(*,1000)
"=============================================================================" 1982 WRITE(*,1070)
'MAX # OF CELLS (BACKGRD) = ',maxval(ncpp_uniform_all
' AT PROCESSOR: ' 1983 WRITE(*,1070)
'MAX # OF CELLS (RE-INDEXED) = ',maxval(
new_ijksize3_all' AT PROCESSOR: ' 1984 WRITE(*,1080)
'DIFFERENCE (%) = ', &
1986 WRITE(*,1000)
"=============================================================================" 1989 call mpi_barrier(mpi_comm_world,
mpierr)
1994 1060
FORMAT(1
x,6(i10,1
x),f8.1)
1995 1070
FORMAT(1
x,
a,i8,
a,i8)
1996 1080
FORMAT(1
x,
a,f8.1)
1999 2000
FORMAT(/70(
'*')//
'From: SET_INCREMENTS'/
'Message: The number of',&
2000 'classes has exceeded the maximum allowed (',i8,
'). Increase',
2001 'MAX_CLASS in PARAM1.INC')
2023 SUBROUTINE record_new_ijk_cell(I,J,K,IJK,NEW_IJK,TEMP_IJK_ARRAY_OF,TEMP_I_OF,TEMP_J_OF,TEMP_K_OF)
2055 INTEGER :: I, J, K, IJK, NEW_IJK
2056 INTEGER,
DIMENSION(ISTART3-1:IEND3+1,JSTART3-1:JEND3+1,KSTART3-1:KEND3+1) 2057 INTEGER,
DIMENSION(DIMENSION_3) :: TEMP_I_OF,TEMP_J_OF,TEMP_K_OF
2065 temp_ijk_array_of(i,j,k)=new_ijk
2067 temp_i_of(new_ijk) = i
2068 temp_j_of(new_ijk) = j
2069 temp_k_of(new_ijk) = k
2071 new_ijk = new_ijk + 1
2115 INTEGER ::I1,I2,BUFFER,I,J
2117 INTEGER,
DIMENSION(I1:I2) :: ARRAY
2131 IF(array(j)>array(j+1))
THEN 2133 array(j) = array(j+1)
2169 DOUBLE PRECISION,
DIMENSION(DIMENSION_3) :: ARRAY, BUFFER
2229 INTEGER,
DIMENSION(DIMENSION_3) :: ARRAY, BUFFER
2230 INTEGER :: DEFAULT_VALUE
2241 array = default_value
2291 LOGICAL,
DIMENSION(DIMENSION_3) :: ARRAY, BUFFER
2292 LOGICAL :: DEFAULT_VALUE
2303 array = default_value
2355 DOUBLE PRECISION,
DIMENSION(DIMENSION_3) :: ARRAY_1, ARRAY_2
2407 INTEGER ::IJK, L, BCK_IJK, NN , CONN
2410 INTEGER,
DIMENSION(DIMENSION_3,15) ::TEMP_CONNECTIVITY
2432 conn = temp_connectivity(bck_ijk,l)
2453 SUBROUTINE write_int_table(FILE_UNIT,ARRAY, ARRAY_SIZE, LSTART, LEND, NCOL)
2470 INTEGER :: FILE_UNIT
2475 INTEGER :: ARRAY_SIZE
2485 INTEGER :: ARRAY(array_size)
2509 INTEGER L, L1, L2, L3
2512 nrow = (lend - lstart + 1)/ncol
2518 WRITE (file_unit, 1020) (array(l3),l3=l1,l2)
2520 IF (nrow*ncol < lend - lstart + 1)
THEN 2523 WRITE (file_unit, 1020) (array(l3),l3=l1,l2)
2527 1020
FORMAT(14x,50(i12,1x))
2574 INTEGER I, J, K, IJK
2576 INTEGER,
ALLOCATABLE,
DIMENSION(:,:,:) :: TEMP_IJK_ARRAY_OF
2577 INTEGER :: IJK_FILE_UNIT
2578 CHARACTER(LEN=255) :: IJK_FILE_NAME
2579 CHARACTER(LEN=6) :: CHAR_MyPE
2590 IF(
mype ==
pe_io)
WRITE(*,*)
' Re-indexing: Writing IJK value in files...' 2592 ijk_file_unit = 1000 +
mype 2593 WRITE(char_mype,
'(I6)')
mype 2595 ijk_file_name =
'IJK_INFO_'//char_mype//
'.txt' 2597 DO i=1,len(trim(ijk_file_name))
2598 IF(ijk_file_name(i:i)==
' ') ijk_file_name(i:i)=
'0' 2601 OPEN(convert=
'BIG_ENDIAN',unit=ijk_file_unit,file=ijk_file_name
2604 WRITE(ijk_file_unit,200)
' MyPE = ',
mype 2605 WRITE(ijk_file_unit,200)
' ISTART1,IEND1 = ',
istart1,
iend1 2606 WRITE(ijk_file_unit,200)
' JSTART1,JEND1 = ',
jstart1,
jend1 2607 WRITE(ijk_file_unit,200)
' KSTART1,KEND1 = ',
kstart1,
kend1 2611 WRITE(ijk_file_unit,200)
' IJKSTART3 = ',
ijkstart3 2612 WRITE(ijk_file_unit,200)
' IJKEND3 = ',
ijkend3 2613 WRITE(ijk_file_unit,*)
'' 2615 IF(
re_indexing)
WRITE(ijk_file_unit,100)
'INFO: AFTER RE-INDEXING CELLS ON MyPE = '' , & 2619 WRITE(ijk_file_unit,*)
'' 2631 WRITE(ijk_file_unit,230) j,(temp_ijk_array_of(i,j,k),i
2633 WRITE(ijk_file_unit,230) j,(funijk(i,j,k),i=
istart3,
iend3 2643 WRITE(ijk_file_unit,*) ijk,
i_of(ijk),
j_of(ijk),
k_of(ijk)
2649 100
FORMAT(1
x,
a,i6,
a,i8,
a,i8,
a,f6.1,
a)
2650 200
FORMAT(1
x,a30,2(i8))
2652 210
FORMAT(8
x,50(
a))
2653 220
FORMAT(1
x,
' J/I | ',50(i6))
2654 230
FORMAT(1
x,i4,
' | ',50(i6))
2658 WRITE(ijk_file_unit,*)
'' 2660 WRITE(ijk_file_unit,*)
' Layer = ',1
2661 WRITE(ijk_file_unit,*)
' nsend1 = ',
nsend1 2665 WRITE(ijk_file_unit,*)
' size = ',
size(
sendijk1)
2666 WRITE(ijk_file_unit,*)
' sendijk1 = ' 2668 WRITE(ijk_file_unit,*)
'' 2670 WRITE(ijk_file_unit,*)
' nrecv1 = ',
nrecv1 2674 WRITE(ijk_file_unit,*)
' size = ',
size(
recvijk1)
2675 WRITE(ijk_file_unit,*)
' recvijk1 = ' 2677 WRITE(ijk_file_unit,*)
'' 2678 WRITE(ijk_file_unit,*)
'' 2680 WRITE(ijk_file_unit,*)
' Layer = ',2
2681 WRITE(ijk_file_unit,*)
' nsend2 = ',
nsend2 2685 WRITE(ijk_file_unit,*)
' size = ',
size(
sendijk2)
2686 WRITE(ijk_file_unit,*)
' sendijk2 = ' 2688 WRITE(ijk_file_unit,*)
'' 2690 WRITE(ijk_file_unit,*)
' nrecv2 = ',
nrecv2 2694 WRITE(ijk_file_unit,*)
' size = ',
size(
recvijk2)
2695 WRITE(ijk_file_unit,*)
' recvijk2 = ' 2697 WRITE(ijk_file_unit,*)
'' 2701 CLOSE(ijk_file_unit)
2706 call mpi_barrier(mpi_comm_world,
mpierr)
integer, dimension(max_class) increment_for_jp
double precision, dimension(:), allocatable theta_wn
integer, dimension(:), allocatable ip1
double precision, dimension(:,:), allocatable scalar_node_xyz
integer, dimension(:), pointer sendijk2
double precision, dimension(:), allocatable delx_we
double precision, dimension(:,:), allocatable normal_u
integer, dimension(:), allocatable jmap_c
double precision, dimension(:), allocatable theta_un
double precision, dimension(:,:), allocatable v_s
double precision, dimension(:,:), allocatable v_so
integer, dimension(:,:,:), allocatable ijk_array_of
double precision, dimension(:,:), allocatable c_ps
integer, dimension(:), pointer recvijk2
double precision, dimension(:), allocatable y_v
double precision, dimension(:), allocatable vol_w
double precision, dimension(:), allocatable alpha_ut_c
double precision, dimension(:), allocatable theta_w_tn
double precision, dimension(:), allocatable dely_vn
double precision, dimension(:), allocatable e_turb_go
double precision, dimension(:), allocatable y_v_nc
double precision, dimension(:), allocatable z_u
double precision, dimension(:), allocatable noc_v_t
integer, dimension(:), allocatable i_of
logical, dimension(:), allocatable wall_u_at
integer, dimension(max_class) increment_for_ip
logical, dimension(:), allocatable cut_u_cell_at
integer, dimension(:), allocatable kmap_c
logical, dimension(:), allocatable standard_u_cell_at
integer, parameter max_class
double precision, dimension(:), allocatable oneodx_e_w
double precision, dimension(:), allocatable delx_uw
double precision, dimension(:), allocatable alpha_vt_c
double precision, dimension(:), allocatable ep_g
double precision, dimension(:,:), allocatable ro_so
integer background_ijkend3
integer, dimension(:), pointer recvtag1
integer, dimension(6, max_class) increment_for_nb
double precision, dimension(:), allocatable theta_u_ne
double precision, dimension(:), allocatable k_turb_g
double precision, dimension(:,:), allocatable dif_g
double precision, dimension(:), allocatable oneodx_e_v
double precision, dimension(:,:,:), allocatable x_so
integer, dimension(:), allocatable km_array_of
double precision, dimension(:), allocatable dely_ws
double precision, dimension(:), allocatable mu_gt
double precision, dimension(:), allocatable a_wpg_t
subroutine write_int_table(FILE_UNIT, ARRAY, ARRAY_SIZE, LSTART, LE
double precision, dimension(:), allocatable x_v_nc
double precision, dimension(:), allocatable a_vpg_s
integer, dimension(:), pointer recvproc2
double precision, dimension(:), allocatable z_v_nc
double precision, dimension(:), allocatable delh_u
double precision, dimension(:), allocatable axy
double precision, dimension(:), allocatable oneodz_t_w
double precision, dimension(:), allocatable z_u_nc
double precision, dimension(:), allocatable noc_w_n
subroutine record_new_ijk_cell(I, J, K, IJK, NEW_IJK, TEMP_IJK_ARRAY_OF
double precision, dimension(:,:), allocatable w_s
double precision, dimension(:), allocatable x_v_ec
double precision, dimension(:), allocatable theta_u_nw
double precision, dimension(:), allocatable x_u
double precision, dimension(:), allocatable noc_v_n
integer, dimension(:), pointer xsend1
integer, dimension(:), allocatable im1
double precision, dimension(:), allocatable alpha_ve_c
logical adjust_proc_domain_size
double precision, dimension(:), allocatable t_g
double precision, dimension(:), allocatable theta_w_bn
double precision, dimension(:), allocatable x_w_ec
logical, dimension(:), allocatable wall_v_at
double precision, dimension(:), allocatable k_turb_go
logical, dimension(:), allocatable small_cell_at
double precision, dimension(:), allocatable p_s_f
logical, dimension(:), allocatable standard_w_cell_at
integer, dimension(:), pointer sendijk1
double precision, dimension(:), allocatable delx_ww
double precision, dimension(:), allocatable theta_wn_bar
double precision, dimension(:,:), allocatable scalar
double precision, dimension(:), allocatable theta_wt
double precision, dimension(:), allocatable delx_ue
double precision, dimension(:), allocatable x_v_tc
subroutine set_increments
subroutine allgather_1i(lbuf, gbuf, idebug)
double precision, dimension(:), allocatable p_g
double precision, dimension(:), allocatable y_w_ec
double precision, dimension(:), allocatable z_u_ec
integer, dimension(:), allocatable bottom_array_of
double precision, dimension(:), allocatable ep_go
double precision, dimension(:), allocatable noc_u_n
double precision, dimension(:,:), allocatable normal_s
double precision, dimension(:), allocatable ayz_u
integer, dimension(:), allocatable w_master_of
logical increment_arrays_allocated
double precision, dimension(:), allocatable z_w_nc
double precision, parameter undefined
double precision, dimension(:), allocatable delz_wt
double precision, dimension(:), allocatable v_go
double precision, dimension(:), allocatable y_w
integer, dimension(:,:), allocatable store_lm
double precision, dimension(:), allocatable ayz
integer, dimension(max_class) increment_for_b
double precision, dimension(:), allocatable z_v
logical, dimension(:), allocatable cut_u_treatment_at
double precision, dimension(:,:), allocatable t_so
double precision, dimension(:), allocatable delh_v
double precision, dimension(:), allocatable t_go
double precision, dimension(:), allocatable delz_vt
double precision, dimension(:), allocatable u_go
double precision, dimension(:), allocatable oneody_n_u
double precision, dimension(:), allocatable a
double precision, dimension(:), allocatable alpha_ue_c
double precision, dimension(:,:), allocatable d_po
double precision, dimension(:,:), allocatable u_s
double precision, dimension(:), allocatable ayz_v
double precision, dimension(:), allocatable theta_we_bar
subroutine shift_dp_array(ARRAY)
double precision, dimension(:), allocatable axz_u
integer, dimension(:), allocatable im_array_of
integer, dimension(:), allocatable phase_4_p_s
double precision, dimension(:,:), allocatable scalaro
double precision, dimension(:), allocatable dely_vs
double precision, dimension(:), allocatable theta_ut
double precision, dimension(:), allocatable p_s_v
double precision, dimension(:,:), allocatable refp_v
double precision, dimension(:), allocatable x_w_nc
double precision, dimension(:), allocatable alpha_wt_c
subroutine init_err_msg(CALLER)
double precision, dimension(:), allocatable theta_wt_bar
double precision, dimension(:), allocatable oneodx_e_u
integer, dimension(:), allocatable k_of
double precision, dimension(:), allocatable dely_wn
double precision, dimension(:), allocatable alpha_wn_c
double precision, dimension(:,:), allocatable p_s_c
logical, dimension(:), allocatable blocked_w_cell_at
double precision, dimension(:), allocatable theta_u_tw
double precision, dimension(:,:), allocatable theta_mo
double precision, dimension(:), allocatable theta_vn_bar
double precision, dimension(:,:), allocatable d_p
integer, dimension(:), allocatable bc_u_id
integer, dimension(max_class) increment_for_n
double precision, dimension(:), allocatable noc_w_e
double precision, dimension(:), allocatable x_w
double precision, dimension(:), allocatable area_v_cut
double precision, dimension(:), allocatable x_u_tc
subroutine mfix_exit(myID, normal_termination)
logical, dimension(:,:,:), allocatable dead_cell_at
double precision, dimension(:), allocatable theta_vt_bar
double precision, dimension(:,:,:), allocatable x_s
integer, dimension(:), allocatable j_of
double precision, dimension(:), allocatable dely_us
integer, dimension(:), allocatable jm1
double precision, dimension(:), allocatable y_u_tc
double precision, dimension(:), allocatable y_v_ec
logical, dimension(:), allocatable wall_w_at
subroutine shift_int_array(ARRAY, DEFAULT_VALUE)
double precision, dimension(:), allocatable theta_v_ne
double precision, dimension(:), allocatable z_v_ec
double precision, dimension(:), allocatable axy_v
double precision, dimension(:,:), allocatable t_s
double precision, dimension(:,:), allocatable x_g
double precision, dimension(:), allocatable x_w_tc
double precision, dimension(:), allocatable theta_ut_bar
integer, dimension(:), allocatable bc_w_id
double precision, dimension(:,:), allocatable t_rs
double precision, dimension(:), allocatable t_rg
double precision, dimension(:), allocatable alpha_un_c
integer, dimension(6, max_class) increment_for_mp
integer, dimension(:), allocatable west_array_of
double precision, dimension(:), allocatable noc_u_t
double precision, dimension(:), allocatable delz_wb
integer, dimension(:), allocatable jp1
integer, dimension(max_class) increment_for_w
double precision, dimension(:), allocatable z_w_tc
double precision, dimension(:), allocatable oneody_n_v
double precision, dimension(:), allocatable theta_un_bar
double precision, dimension(:), allocatable y_w_nc
double precision, dimension(:,:), allocatable theta_m
double precision, dimension(:), allocatable theta_vn
logical, dimension(:), allocatable blocked_u_cell_at
double precision, dimension(:), allocatable alpha_we_c
double precision, dimension(:), allocatable ovol_around_node
logical minimize_send_recv
double precision, dimension(:), allocatable v_g
double precision, dimension(:), allocatable p_s_p
logical, dimension(:), allocatable cut_w_cell_at
double precision, dimension(:), allocatable x_u_ec
integer, dimension(:), allocatable new_ijksize3_all
integer, dimension(:), pointer xsend2
double precision, dimension(:,:), allocatable refp_s
logical, dimension(:), allocatable cut_treatment_at
subroutine shift_connectivity_for_bdist_io
double precision, dimension(:), allocatable noc_u_e
double precision, dimension(:), allocatable theta_ue
integer, dimension(:), pointer xrecv1
integer, dimension(:), pointer recvproc1
integer, dimension(:), allocatable kp1
double precision, dimension(:), allocatable w_g
double precision, dimension(:), allocatable x_v
double precision, dimension(:,:,:), allocatable dif_s
subroutine shift_log_array(ARRAY, DEFAULT_VALUE)
integer, dimension(:), allocatable number_of_nodes
integer, dimension(:), pointer xrecv2
integer, dimension(:), allocatable background_ijk_of
double precision, dimension(:,:), allocatable u_so
double precision, dimension(:,:), allocatable rop_so
integer, parameter unit_log
double precision, dimension(:,:), allocatable refp_u
double precision, dimension(:), allocatable theta_v_nt
double precision, dimension(:), allocatable axz
integer, dimension(:), allocatable imap_c
double precision, dimension(:), allocatable ayz_w
double precision, dimension(:,:), allocatable refp_w
double precision, dimension(:,:), allocatable w_so
integer, dimension(:), allocatable bc_v_id
double precision, dimension(:), allocatable oneodz_t_u
double precision, dimension(:), allocatable w_go
double precision, dimension(:), allocatable delh_w
double precision, dimension(:,:), allocatable ro_s
double precision, dimension(:), allocatable theta_v_se
integer, dimension(:), pointer sendtag1
logical, dimension(:), allocatable cut_w_treatment_at
logical, dimension(:), allocatable cut_v_cell_at
double precision, dimension(:), allocatable delh_scalar
double precision, dimension(:), allocatable delz_ub
double precision, dimension(:), allocatable mw_mix_g
integer, dimension(:), allocatable south_array_of
integer, dimension(max_class) increment_for_t
logical use_corecell_loop
logical, dimension(:), allocatable interior_cell_at
integer, dimension(0:dim_m) nmax
double precision, dimension(:), allocatable delx_vw
integer, dimension(:), pointer sendproc1
double precision, dimension(:), allocatable rop_go
integer, dimension(max_class) increment_for_kp
double precision, dimension(:,:), allocatable normal_w
integer, dimension(:), allocatable flag_e
integer, dimension(:), allocatable phase_4_p_g
integer, dimension(:), pointer recvtag2
logical, dimension(:), allocatable cut_cell_at
integer, dimension(:), allocatable km1
double precision, dimension(:,:), allocatable p_s
double precision, dimension(:), allocatable p_star
double precision, dimension(:), allocatable axz_w
double precision, dimension(:), allocatable mu_g
double precision, dimension(:), allocatable gama_rg
double precision, dimension(:), allocatable lambda_gt
double precision, dimension(:,:), allocatable x_go
double precision, dimension(:), allocatable theta_ue_bar
logical, dimension(:), allocatable cut_v_treatment_at
double precision, dimension(:), allocatable noc_w_t
integer, dimension(max_class) increment_for_s
integer, dimension(:), pointer sendproc2
double precision, dimension(:), allocatable area_cut
integer, parameter undefined_i
double precision, dimension(:), allocatable axy_w
double precision, dimension(:), allocatable theta_w_te
character(len=line_length), dimension(line_count) err_msg
integer, dimension(:), allocatable bc_id
double precision, dimension(:), allocatable u_g
double precision, dimension(:), allocatable y_w_tc
integer, dimension(max_class) increment_for_e
double precision, dimension(:), allocatable z_w_ec
double precision, dimension(:), allocatable y_u_ec
double precision, dimension(:), allocatable a_upg_w
double precision, dimension(:), allocatable vol_u
double precision, dimension(:), allocatable theta_ve_bar
double precision, dimension(:), allocatable k_g
double precision, dimension(:), allocatable p_staro
double precision, dimension(:), allocatable y_u_nc
integer, dimension(:), pointer recvijk1
logical, dimension(:), allocatable standard_cell_at
logical, dimension(:), allocatable standard_v_cell_at
subroutine re_index_arrays
double precision, dimension(:), allocatable area_w_cut
double precision, dimension(:), allocatable theta_w_be
integer, dimension(max_class) increment_for_im
logical, dimension(:), allocatable scalar_node_atwall
double precision, dimension(:,:), allocatable rop_s
double precision, dimension(:), allocatable p_go
double precision, dimension(:), allocatable delz_vb
subroutine sendrecv_re_init_after_re_indexing(comm, idebug)
subroutine write_ijk_values
subroutine allocate_arrays_increments
double precision, dimension(:), allocatable theta_vt
double precision, dimension(:), allocatable area_u_cut
logical, dimension(:), allocatable blocked_v_cell_at
double precision, dimension(:), allocatable theta_we
double precision, dimension(:), allocatable dwall
double precision, dimension(:), allocatable oneodz_t_v
integer, dimension(:), allocatable u_master_of
integer, dimension(:), allocatable flag
double precision, dimension(:), allocatable a_vpg_n
double precision, dimension(:), allocatable z_v_tc
double precision, dimension(:), allocatable z_w
double precision, dimension(:), allocatable delz_ut
logical, dimension(:), allocatable notowner
logical, dimension(:), allocatable blocked_cell_at
double precision, dimension(:), allocatable oneody_n_w
double precision, dimension(:), allocatable dely_un
double precision, dimension(:,:), allocatable normal_v
double precision, dimension(:,:), allocatable gama_rs
subroutine unshift_dp_array(ARRAY_1, ARRAY_2)
double precision, dimension(:), allocatable e_turb_g
double precision, dimension(:), allocatable vol
double precision, dimension(:), allocatable axy_u
double precision, dimension(:), allocatable a_wpg_b
double precision, dimension(:), allocatable theta_v_st
integer, dimension(:), allocatable flag_n
double precision, dimension(:), allocatable theta_u_te
integer, dimension(:), allocatable jm_array_of
integer, dimension(max_class) increment_for_km
integer, dimension(max_class) increment_for_jm
double precision, dimension(:,:), allocatable k_s
double precision, dimension(:), allocatable ro_g
integer, dimension(:), pointer sendtag2
double precision, dimension(:), allocatable rop_g
double precision, dimension(:), allocatable noc_v_e
double precision, dimension(:), allocatable theta_ve
integer, dimension(:), allocatable ncpp_uniform
double precision, dimension(:), allocatable axz_v
double precision, dimension(:), allocatable x
double precision, dimension(:), allocatable y_u
subroutine set_index1a(I, J, K, IJK, IMJK, IPJK, IJMK, IJPK, IJKM,
integer, dimension(:), allocatable v_master_of
subroutine bubble_sort_1d_int_array(ARRAY, I1, I2)
subroutine flush_err_msg(DEBUG, HEADER, FOOTER, ABORT, LOG, CALL_TREE)
double precision, dimension(:), allocatable alpha_vn_c
double precision, dimension(:), allocatable c_pg
integer, dimension(:,:), allocatable connectivity
integer, dimension(:), allocatable flag_t
integer, dimension(:), allocatable ijk_of_background
double precision, dimension(:), allocatable delx_ve
double precision, dimension(:), allocatable vol_v
integer, dimension(:), allocatable cell_class
double precision, dimension(:), allocatable z_u_tc
double precision, dimension(:), allocatable ro_go
double precision, dimension(:), allocatable a_upg_e
logical, dimension(:), allocatable snap
double precision, dimension(:), allocatable x_u_nc
double precision, dimension(:), allocatable y_v_tc