subroutine hpcmw_eps_fvm_input_grid
use hpcmw_eps_fvm_all
implicit REAL*8 (A-H,O-Z)
character(len=HPCMW_NAME_LEN) :: member
character(len=80 ) :: LINE
!C
!C +-------+
!C | FILES |
!C +-------+
!C===
open (11, file='INPUT.DAT', status='unknown')
read (11,'(a127)') HEADERgrid
read (11,'(a127)') HEADERcomm
read (11,'(a127)') AVSfile
read (11,*) PVISFLAG
close (11)
allocate (hpcmw_eps_fvm_files(4))
member= 'gridfile'
call hpcmw_eps_fvm_define_file_name (member, HEADERgrid)
member= 'commfile'
call hpcmw_eps_fvm_define_file_name (member, HEADERcomm)
!C===
!C
!C +------------+
!C | MESH INPUT |
!C +------------+
!C===
IUNIT= 11
open (IUNIT,file= hpcmw_eps_fvm_files(1), status='unknown')
!C
!C-- NODE
read (IUNIT, '(10i10)') NODE_tot
allocate (NODE_VOL(NODE_tot), NODE_COND(NODE_tot), &
& NODE_XYZ(3*NODE_tot))
do i= 1, NODE_tot
read (IUNIT,'(i10,5e16.6)') ii, NODE_VOL(i), NODE_COND(i), &
& (NODE_XYZ(3*i-3+k), k=1, 3)
enddo
!C
!C-- CONNECTION
read (IUNIT,'(10i10)') CONN_tot
allocate (CONN_NODE(2*CONN_tot), CONN_COEF(CONN_tot))
do i= 1, CONN_tot
read (IUNIT,'( 2i10, 3e16.6)') (CONN_NODE(2*i-2+k), k= 1, 2), &
& AREA, D1, D2
in1= CONN_NODE(2*i-1)
in2= CONN_NODE(2*i )
C1 = NODE_COND(in1)
C2 = NODE_COND(in2)
CONN_COEF(i)= AREA / ( D1/C1 + D2/C2 )
enddo
!C
!C-- DIRICHLET
read (IUNIT,'(10i10)') FIX_NODE_tot
allocate (FIX_NODE_ID(FIX_NODE_tot), FIX_NODE_COEF(FIX_NODE_tot))
allocate (FIX_NODE_VAL(FIX_NODE_tot))
do i= 1, FIX_NODE_tot
read (IUNIT, '(i10, 3e16.6)') &
& FIX_NODE_ID(i), AREA, DIST, FIX_NODE_VAL(i)
icel= FIX_NODE_ID(i)
COND= NODE_COND(icel)
FIX_NODE_COEF(i)= AREA / (DIST/COND)
enddo
!C
!C-- NEUMANN
read (IUNIT,'(10i10)') SURF_NODE_tot
allocate &
& (SURF_NODE_ID (SURF_NODE_tot), SURF_NODE_FLUX(SURF_NODE_tot))
do i= 1, SURF_NODE_tot
read (IUNIT, '(i10, 3e16.6)') SURF_NODE_ID(i), AREA, FLUX
SURF_NODE_FLUX(i)= AREA*FLUX
enddo
!C
!C-- BODY FLUX
read (IUNIT,'(10i10)') BODY_NODE_tot
allocate (BODY_NODE_FLUX(NODE_tot))
BODY_FLUX= 0.d0
do i= 1, BODY_NODE_tot
read (IUNIT, '(i10, 3e16.6)') icel, FLUX
BODY_NODE_FLUX(icel)= FLUX * NODE_VOL(icel)
enddo
close (IUNIT)
!C===
!C
!C +------------+
!C | COMM INPUT |
!C +------------+
!C===
IUNIT= 12
open (IUNIT,file= hpcmw_eps_fvm_files(4), status='unknown')
read (IUNIT,'(a)') LINE
read (IUNIT,'(6i12)') n_neighbor_pe
allocate (neighbor_pe(n_neighbor_pe))
allocate (import_index(0:n_neighbor_pe))
allocate (export_index(0:n_neighbor_pe))
import_index= 0
export_index= 0
read (IUNIT,'(a)') LINE
read (IUNIT,'(6i12)') (neighbor_pe(k), k= 1, n_neighbor_pe)
read (IUNIT,'(a)') LINE
read (IUNIT,'(6i12)') (import_index(k), k= 1, n_neighbor_pe)
nn= import_index(n_neighbor_pe)
allocate (import_item(nn))
read (IUNIT,'(a)') LINE
read (IUNIT,'(6i12)') (import_item(k), k= 1, nn)
read (IUNIT,'(a)') LINE
read (IUNIT,'(6i12)') (export_index(k), k= 1, n_neighbor_pe)
nn= export_index(n_neighbor_pe)
allocate (export_item(nn))
read (IUNIT,'(a)') LINE
read (IUNIT,'(6i12)') (export_item(k), k= 1, nn)
read (IUNIT,'(a)') LINE
read (IUNIT,'(6i12)') intNODE_tot
read (IUNIT,'(a)') LINE
read (IUNIT,'(6i12)') nn
allocate (NODE_GLOBAL(nn))
read (IUNIT,'(a)') LINE
read (IUNIT,'(6i12)') (NODE_GLOBAL(k), k= 1, nn)
close (IUNIT)
!C===
end subroutine hpcmw_eps_fvm_input_grid