program f90_NUMseep !**************************************************************** !Optimization of node number for 2D seepage flow analysis !**************************************************************** implicit none integer::i,j,k,l,ne character::strcom*256 !Comment integer::NODT !Number of nodes integer::NELT !Number of elements integer::MATEL !Number of material sets integer::KOH !Number of nodes with given total head integer::KOQ !Number of nodes with given discharge integer::KOU !Number of nodes with the condition of seepage point integer::idan !Section integer::nod !Number of nodes per element integer::nhen=1 !Number of degree of freedom per node integer::nt !Number of degrees of freedom of all nodes integer,allocatable::kakom(:,:) !Element connectivity integer,allocatable::matno(:) !Material set number real(8),allocatable::wm(:,:) !work for material properties real(8),allocatable::x(:) !x-coordinate in x-direction real(8),allocatable::z(:) !y-coordinate in y-direction integer,allocatable::nokh(:) !Node number with given total head integer,allocatable::nokq(:) !Node number with given discharge integer,allocatable::noku(:) !Node number with the condition of seepage point real(8),allocatable::Hinp(:) !Given total head of node real(8),allocatable::Qinp(:) !Given discharge node real(8),allocatable::hvec(:) !Initial value of total head integer,allocatable::numr(:) !Original node number integer,allocatable::jnd(:) !Revised node number character :: linebuf*1000 character::fnameR*50,fnameW*50 !Input file name, output file name call getarg(1,fnameR) !Input file name call getarg(2,fnameW) !Output file name !*************************** !data input !*************************** open(11,file=fnameR,status='old') read(11,'(a)') strcom read(11,*) nod,NODT,NELT,MATEL,KOH,KOQ,KOU,idan nt=NODT*nhen allocate(kakom(1:NELT,1:nod)) allocate(matno(1:NELT)) allocate(wm(1:NELT,1:3)) allocate(x(1:NODT)) allocate(z(1:NODT)) if(0