[Nek5000-users] failed to write derivatives in one file

nek5000-users at lists.mcs.anl.gov nek5000-users at lists.mcs.anl.gov
Thu Jul 10 13:52:40 CDT 2014


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, nek5000-users at lists.mcs.anl.gov 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, nek5000-users at lists.mcs.anl.gov 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
>> Nek5000-users at lists.mcs.anl.gov
>> https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users
>> 
> _______________________________________________
> Nek5000-users mailing list
> Nek5000-users at lists.mcs.anl.gov
> https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users



More information about the Nek5000-users mailing list