Civil Engineering Reference
In-Depth Information
INTEGER::nxe,nye,nze,nn,nip,nodof=4,nod=20,nodf=8,ndim=3, cj_tot,
&
i,j,k,l,iel,ell,limit ,fixed_nodes,iters, cjiters , cjits,
&
nr,n_t,num_no,no_index_start, nn_temp,neq_temp, nres , is,it
REAL(iwp)::visc, rho, rho1,det,ubar, vbar, wbar,tol ,cjtol, alpha,beta, &
aa,bb,cc,penalty , x0 , pp , kappa,gama,omega,norm_r,r0_norm,error
LOGICAL :: converged,cj_converged
CHARACTER(LEN=15) :: element = 'hexahedron'
!----------------------------- dynamic arrays-----------------------------
REAL(iwp),ALLOCATABLE ::points(:,:), coord(:,:),derivf(:,:),fun(:), &
jac(:,:),kay(:,:),der(:,:),deriv(:,:),weights(:), &
derf(:,:),funf(:),coordf(:,:),p_g_co_pp(:,:,:), &
c11(:,:),c21(:,:),c12(:,:),val(:),wvel(:),ke(:,:), &
c23(:,:),c32(:,:),x_pp(:),b_pp(:),r_pp(:,:), &
funny(:,:),row1(:,:),row2(:,:),uvel(:),vvel(:), &
funnyf(:,:),rowf(:,:),storke_pp(:,:,:),diag_pp(:), &
utemp_pp(:,:),xold_pp(:),c24(:,:),c42(:,:),row3(:,:),&
u_pp(:,:),rt_pp(:),y_pp(:),y1_pp(:),s(:),Gamma(:),
&
GG(:,:), diag_tmp(:,:),store_pp(:),pmul_pp(:,:)
INTEGER, ALLOCATABLE :: rest(:,:),g(:),num(:),g_num_pp(:,:),g_g_pp(:,:) ,&
no(:),g_t(:),no_local(:), no_local_temp(:)
!----------------------------input and initialisation---------------------
timest(1) = elap_time( )
; cj_tot = 0
CALL find_pe_procs(numpe,npes)
IF(numpe==npes) THEN
OPEN (10,FILE='p126.dat',STATUS= 'OLD',ACTION='READ')
READ (10,*) nels,nxe,nze,nip,aa,bb,cc, &
visc,rho,tol,limit , cjtol,cjits , penalty , x0, ell, kappa
END IF
CALL bcast_inputdata_p126(numpe,npes,nels,nxe,nze,nip,aa,bb,cc,
&
visc,rho,tol,limit,cjtol,cjits,penalty,x0,ell,kappa)
CALL calc_nels_pp; ntot=nod+nodf+nod+nod ; n_t=nod*nodof; neq_temp = 0
nn_temp = 0 ; nye=nels/nxe/nze; fixed_nodes=3*nxe*nye+2*nxe+2*nye+1
nr=3*nxe*nye*nze + 4*(nxe*nye+nye*nze+nze*nxe) + nxe+nye+nze + 2
ALLOCATE (points(nip,ndim),coord(nod,ndim),derivf(ndim,nodf),fun(nod), &
jac(ndim,ndim),kay(ndim,ndim),der(ndim,nod),deriv(ndim,nod), &
derf(ndim,nodf),funf(nodf),coordf(nodf,ndim),funny(nod,1), &
g_g_pp(ntot,nels_pp),c11(nod,nod),c12(nod,nodf),c21(nodf,nod),&
ke(ntot,ntot),rest(nr,nodof+1),c24(nodf,nod),c42(nod,nodf), &
p_g_co_pp(nod,ndim,nels_pp),g_num_pp(nod,nels_pp),num(nod), &
c32(nod,nodf),c23(nodf,nod),uvel(nod),vvel(nod),row1(1,nod), &
funnyf(nodf,1),rowf(1,nodf),no_local_temp(fixed_nodes), &
storke_pp(ntot,ntot,nels_pp),wvel(nod), row3(1,nod),g_t(n_t), &
s(ell+1),GG(ell+1,ell+1),g(ntot), Gamma(ell+1),weights(nip), &
no(fixed_nodes),val(fixed_nodes),diag_tmp(ntot,nels_pp),
&
utemp_pp(ntot,nels_pp),pmul_pp(ntot,nels_pp),row2(1,nod))
uvel =.0_iwp; vvel =.0_iwp ; wvel = .0_iwp ; ielpe = iel_start
kay=0.0_iwp; kay(1,1)=visc/rho; kay(2,2)=visc/rho; kay(3,3)=visc/rho
CALL ns_cube_bc20(nxe,nye,nze,rest); CALL ns_loading(nxe,nye,nze,no)
CALL sample(element,points,weights) ; CALL rearrange(rest)
!----------------- loop the elements to set up global arrays--------------
elements_1: DO iel = 1 , nels_pp
CALL geometry_20bxz(ielpe,nxe,nze,aa,bb,cc,coord,num)
CALL find_g3(num,g_t,rest) ; CALL g_t_g_ns(nod,g_t,g)
p_g_co_pp(:,:,iel)=coord;g_g_pp(:,iel)=g; ielpe=ielpe+1
i = MAXVAL(g); j = MAXVAL(num) ; g_num_pp(:,iel)=num
IF(i>neq_temp) neq_temp = i; IF(j>nn_temp) nn_temp = j
END DO elements_1
neq = reduce(neq_temp); nn = reduce(nn_temp)
Search WWH ::




Custom Search