[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:22:12 CDT 2014


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
>


More information about the Nek5000-users mailing list