Civil Engineering Reference
In-Depth Information
OPEN (10,FILE='p127.dat',STATUS= 'OLD',ACTION='READ')
READ (10,*) nels,nxe,nze,aa,bb,cc,nip, kx, ky, kz, e,v,
&
dtim, nstep, theta , cjits , cjtol
END IF
CALL bcast_inputdata_p127(numpe,npes,nels,nxe,nze,aa,bb,cc,nip,kx,
&
ky,kz,e,v,dtim,nstep,theta,cjits,cjtol)
CALL calc_nels_pp;ndof=nod*ndim; ntot=ndof+nodf; neq_temp= 0; nn_temp= 0
n_t=nod*nodof ; nye = nels/nxe/nze ; nle = nxe/5
nr = 3*nxe*nye*nze + 4*(nxe*nye+nye*nze+nze*nxe) + nxe+nye+nze + 2
loaded_freedoms = 3*nle*nle + 4*nle + 1
ALLOCATE(dee(nst,nst),points(nip,ndim),coord(nod,ndim),derivf(ndim,nodf),&
jac(ndim,ndim),kay(ndim,ndim),der(ndim,nod),deriv(ndim,nod), &
derf(ndim,nodf),funf(nodf),coordf(nodf,ndim),bee(nst,ndof), &
km(ndof,ndof),eld(ndof),sigma(nst),kc(nodf,nodf),weights(nip), &
g_g_pp(ntot,nels_pp),diag_precon_tmp(ntot,nels_pp), &
ke(ntot,ntot),kd(ntot,ntot),fun(nod),c(ndof,nodf),g_t(n_t), &
vol(ndof),rest(nr,nodof+1), g(ntot), volf(ndof,nodf), &
p_g_co_pp(nod,ndim,nels_pp),g_num_pp(nod,nels_pp),num(nod), &
storke_pp(ntot,ntot,nels_pp),storkd_pp(ntot,ntot,nels_pp), &
pmul_pp(ntot,nels_pp),utemp_pp(ntot,nels_pp),eld_pp(ntot,nels_pp),&
no(loaded_freedoms),val(loaded_freedoms),
&
no_local_temp(loaded_freedoms))
kay=0.0_iwp; kay(1,1)=kx; kay(2,2)=ky ; kay(3,3) = kz
CALL biot_cube_bc20(nxe,nye,nze,rest) ; CALL rearrange(rest)
CALL biot_loading(nxe,nze,nle,no,val) ; val = -val * aa * bb / 12._iwp
CALL sample(element,points,weights);CALL deemat(dee,e,v);ielpe=iel_start
!----------------- 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(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)
CALL calc_neq_pp; CALL make_ggl(g_g_pp)
IF(numpe==1) THEN
OPEN (11,FILE='p127.res',STATUS='REPLACE',ACTION='WRITE')
WRITE(11,'(A,I5,A)') "This job ran on ", npes, " processors"
WRITE(11,'(A)') "Global coordinates and node numbers"
DO i=1,nels_pp,nels_pp-1; WRITE(11,'(A,I8)')"Element ",i
num=g_num_pp(:,i)
DO k=1,nod;WRITE(11,'(A,I8,3E12.4)')
&
"
Node",num(k),p_g_co_pp(k,:,i);END DO
END DO
WRITE(11,'(A,3(I8,A))') "There are ",nn, " nodes", nr,
&
" restrained and ",&
neq, " equations "
WRITE(11,*) "Time after setup is
:", elap_time( ) - timest(1)
END IF
ALLOCATE(loads_pp(neq_pp),ans_pp(neq_pp),p_pp(neq_pp),x_pp(neq_pp), &
xnew_pp(neq_pp),u_pp(neq_pp),diag_precon_pp(neq_pp),d_pp(neq_pp))
loads_pp = .0_iwp ; p_pp = .0_iwp; xnew_pp = .0_iwp
diag_precon_pp = .0_iwp ; diag_precon_tmp =.0_iwp
!-------- element stiffness integration , storage and preconditioner -----
elements_2: DO iel=1,nels_pp
coord = p_g_co_pp(:,:,iel)
coordf(1:4,:)=coord(1:7:2,:);coordf(5:8,:)=coord(13:20:2,:)
Search WWH ::




Custom Search