c----------------------------------------------------------------------c subroutine uservp (ix,iy,iz,ieg) include 'SIZE' include 'TOTAL' include 'NEKUSE' return end c----------------------------------------------------------------------c subroutine userf (ix,iy,iz,ieg) include 'SIZE' include 'TOTAL' include 'NEKUSE' ffx = 0.0 ffy = 0.0 ffz = 0.0 return end c----------------------------------------------------------------------c subroutine userq (ix,iy,iz,ieg) include 'SIZE' include 'TOTAL' include 'NEKUSE' qvol = 0.0 source = 0.0 return end c----------------------------------------------------------------------c subroutine userchk include 'SIZE' include 'TOTAL' return end c-----------------------------------------------------------------------c subroutine userbc (ix,iy,iz,iside,ieg) include 'SIZE' include 'TOTAL' include 'NEKUSE' ux=0.0 uy=0.0 uz=0.0 temp=0.0 return end c-----------------------------------------------------------------------c subroutine useric (ix,iy,iz,ieg) include 'SIZE' include 'TOTAL' include 'NEKUSE' real rrr rrr = x**2+y**2 c === CHAOTIC INITIAL PROFILE === ux = 21.6*sin(12*z)* &exp(-32.4*(1-rrr**0.5)**2)*(1-rrr**0.5) uy = 21.6*cos(12*z)* &exp(-32.4*(1-rrr**0.5)**2)*(1-rrr**0.5) uz = 5*(1-16*rrr**2)/4 + 0.3*cos(12*x)* &exp(0.5-32.4*(1-2*rrr**0.5)**2)*(1-2*rrr**0.5) temp=0 return end c-----------------------------------------------------------------------c subroutine usrdat include 'SIZE' include 'TOTAL' return end c-----------------------------------------------------------------------c subroutine usrdat2 include 'SIZE' include 'TOTAL' common /mydomain/ zlength,radius integer e,f n = nx1*ny1*nz1*nelt call domain_size(xmin,xmax,ymin,ymax,zmin,zmax) zlength = zmax - zmin radius = 0.5 do i=1,lx1*ly1*lz1*lelt xm1(i,1,1,1) = 0.5*xm1(i,1,1,1) ym1(i,1,1,1) = 0.5*ym1(i,1,1,1) zm1(i,1,1,1) = 0.5*zm1(i,1,1,1) enddo return end c-----------------------------------------------------------------------c subroutine usrdat3 include 'SIZE' include 'TOTAL' return end c-----------------------------------------------------------------------c subroutine set_obj ! define objects for surface integrals c include 'SIZE' include 'TOTAL' c integer e,f c c Define new objects c nobj = 2 ! for Periodic iobj = 0 do ii=nhis+1,nhis+nobj iobj = iobj+1 hcode(10,ii) = 'I' hcode( 1,ii) = 'F' ! 'F' hcode( 2,ii) = 'F' ! 'F' hcode( 3,ii) = 'F' ! 'F' lochis(1,ii) = iobj enddo nhis = nhis + nobj c if (maxobj.lt.nobj) write(6,*) 'increase maxobj in SIZEu. rm *.o' if (maxobj.lt.nobj) call exitt c nxyz = nx1*ny1*nz1 do e=1,nelv do f=1,2*ndim if (cbc(f,e,1).eq.'W ') then iobj = 0 if (f.eq.1) iobj=1 ! lower wall if (f.eq.3) iobj=2 ! upper wall if (iobj.gt.0) then nmember(iobj) = nmember(iobj) + 1 mem = nmember(iobj) ieg = lglel(e) object(iobj,mem,1) = ieg object(iobj,mem,2) = f c write(6,1) iobj,mem,f,ieg,e,nid,' OBJ' 1 format(6i9,a4) endif c endif enddo enddo c write(6,*) 'number',(nmember(k),k=1,4) c return end