Thank you Paul, I tried this way. It works. the 9 derivatives have been written in 3 independent files. I checked the data format, e.g. "vxd*****", it looks like x y z dux duy duz is it possible to put vyd and vzd together with vxd? like x y z dux duy duz dvx dvy dyz dwx dwy dwz then it will be much convenient to visualize the du in visit. Thank you very much again! Wei On Jul 10, 2014, at 8:22 PM, [email protected] wrote:
Dear Wei,
I would just user outpost and control the fields that are written via ifto, ifxyo, ifvo, ifpo, etc.
parameter (l=lx1*ly1*lz1*lelt) common /mystuff/ u1(l),u2(l),u3(l) call gradm1(u1,u2,u3,vx) call outpost(u1,u2,u3,pr,t,'vxd')
call gradm1(u1,u2,u3,vy) call outpost(u1,u2,u3,pr,t,'vyd')
call gradm1(u1,u2,u3,vz) call outpost(u1,u2,u3,pr,t,'vzd')
would do the job.
Paul
On Thu, 10 Jul 2014, [email protected] wrote:
Dear all,
I tried to write all the velocity derivatives into one file, so I added some lines of code into the prepost.f, like
subroutine outpost3(v1,v2,v3 $,v4,v5,v6 $,v7,v8,v9 $,vp,vt,name3)
include 'SIZE' include 'INPUT'
real v1(1),v2(1),v3(1),vp(1),vt(1) real v4(1),v5(1),v6(1) real v7(1),v8(1),v9(1) character*3 name3
itmp=0 if (ifto) itmp=1 call outpost4(v1,v2,v3 $,v4,v5,v6 $,v7,v8,v9 $,vp,vt,itmp,name3)
return end c------------------------------------------ subroutine outpost4(v1,v2,v3 $,v4,v5,v6 $,v7,v8,v9 $,vp,vt,nfldt,name3) character*3 name3 logical if_save(ldimt) c ntot1 = nx1*ny1*nz1*nelv ntot1t = nx1*ny1*nz1*nelt ntot2 = nx2*ny2*nz2*nelv
if(nfldt.gt.ldimt) then write(6,*) 'ABORT: outpost data too large (nfldt>ldimt)!' call exitt endif
c store solution call copy(w1,vxx,ntot1) call copy(w2,vxy,ntot1) call copy(w3,vxz,ntot1) call copy(w4,vyx,ntot1) call copy(w5,vyy,ntot1) call copy(w6,vyz,ntot1) call copy(w7,vzx,ntot1) call copy(w8,vzy,ntot1) call copy(w9,vzz,ntot1) call copy(wp,pr,ntot2) do i = 1,nfldt call copy(wt(1,i),t(1,1,1,1,i),ntot1t) enddo c swap with data to dump call copy(vxx,v1,ntot1) call copy(vxy,v2,ntot1) call copy(vxz,v3,ntot1) call copy(vyx,v4,ntot1) call copy(vyy,v6,ntot1) call copy(vyz,v6,ntot1) call copy(vzx,v7,ntot1) call copy(vzy,v8,ntot1) call copy(vzz,v9,ntot1) call copy(pr,vp,ntot2) do i = 1,nfldt call copy(t(1,1,1,1,i),vt(1,i),ntot1t) enddo
c dump data if_save(1) = ifto ifto = .false. if(nfldt.gt.0) ifto = .true. do i = 1,ldimt-1 if_save(i+1) = ifpsco(i) ifpsco(i) = .false. if(i+1.le.nfldt) ifpsco(i) = .true. enddo
call prepost(.true.,name3)
ifto = if_save(1) do i = 1,ldimt-1 ifpsco(i) = if_save(i+1) enddo
c restore solution data call copy(vxx,w1,ntot1) call copy(vxy,w2,ntot1) call copy(vxz,w3,ntot1) call copy(vyx,w4,ntot1) call copy(vyy,w5,ntot1) call copy(vyz,w6,ntot1) call copy(vzx,w7,ntot1) call copy(vzy,w8,ntot1) call copy(vzz,w9,ntot1) call copy(pr,wp,ntot2) do i = 1,nfldt call copy(t(1,1,1,1,i),wt(1,i),ntot1t) enddo
return end c---------------------------
in the userchk file, .................. call gradm1(vxx,vxy,vxz,vx) ..................... call outpost3(vxx,vxy,vxz $,vyx,vyy,vyz $,vzx,vzy,vzz $,pr,t,'derivate') ...................
there are errors, like this:
/Users/wei/nek5_svn/trunk/nek/prepost.f:1998.34:
subroutine outpost3(v1,v2,v3 1 Error: Unexpected junk in formal argument list at (1) /Users/wei/nek5_svn/trunk/nek/prepost.f:1999.8:
$,v4,v5,v6 1 Error: Invalid character in name at (1) /Users/wei/nek5_svn/trunk/nek/prepost.f:2001.8:
$,vp,vt,name3) 1 Error: Invalid character in name at (1) /Users/wei/nek5_svn/trunk/nek/prepost.f:2017.72:
$,v7,v8,v9 1 Error: Syntax error in argument list at (1) /Users/wei/nek5_svn/trunk/nek/prepost.f:2018.8:
$,vp,vt,itmp,name3) 1 Error: Invalid character in name at (1) /Users/wei/nek5_svn/trunk/nek/prepost.f:2025.15:
$,v7,v8,v9 1 Error: Unexpected junk in formal argument list at (1) /Users/wei/nek5_svn/trunk/nek/prepost.f:2026.8:
$,vp,vt,nfldt,name3) 1 Error: Invalid character in name at (1) SIZE:5.72: Included at /Users/wei/nek5_svn/trunk/nek/prepost.f:2003:
parameter (ldim=3) 1 SIZE:5.72: Included at /Users/wei/nek5_svn/trunk/nek/prepost.f:2028:
parameter (ldim=3) 2 Error: Two main PROGRAMs at (1) and (2) make: *** [obj/prepost.o] Error 1
so what should I do? Thanks, Wei _______________________________________________ Nek5000-users mailing list [email protected] https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users
_______________________________________________ Nek5000-users mailing list [email protected] https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users