24小时热门版块排行榜    

查看: 4826  |  回复: 3

lhy0xmc

新虫 (初入文坛)

[求助] fortran程序中输出tecplot二进制文件

下面这段程序是我在某大神德基础上修改的binary二进制文件的输出程序,得到的文件会提示“invalid header in the binary datafile!” (见附件“捕获.JPG”) 程序改了好多遍,都没解决问题。希望各位前辈,师兄指点一下。
"捕获2.JPG"是我想输出的三维图形,就是一个网格,没有其他的东西。
f90文件是我的程序节选。
open(99,file="tecbin.plt",form="binary"
!----1.1 Magic number, Version number
write(99) "#!TDV101"
!---1.2. Integer value of 1.----------------------------------------------------------
!       +-----------+
!       | INT32     |       This is used to determine the byte order
!       +-----------+       of the reader relative to the writer.
write(99) 1
!---1.3. Title and variable names.-------------------------------------------------
  
!---1.3.1. The TITLE. (See note 1.)
write(99) ICHAR('A')            
write(99) 0   
  
  
!---1.3.2 Number of variables (NumVar) in the datafile.
  
write(99) 3
  
!----1.3.3 Variable names. N = L[1] + L[2] + .... L[NumVar]
  
     write(99) ichar('X')            ! name of variables (NumVar) in the datafile
     write(99) 0
     write(99) ichar('Y')
     write(99) 0
     write(99) ichar('Z')
     write(99) 0
  
  
  
  
!---1.4. Zones-------------------------------------------------------------------
  
!---1.4.1 Zone 1+++++++++++++++++++++++++++++++++++++++++++
  
     write(99) 299.0                 ! Zone marker. Value = 299.0
     write(99) ichar('Z')            ! Zone name. (See note 1.) N = length of zone name + 1.
     write(99) ichar('O')
     write(99) ichar('N')
     write(99) ichar('E')
     write(99) ichar('0')
     write(99) ichar('1')
     write(99) 0
  
     write(99) -1                    !-------Zone Color (set to -1 if you want tecplot todetermine).
     write(99) 0                     !-------ZoneType 0=ORDERED,1=FELINESEG,2=FETRIANGLE,3=FEQUADRILATERAL,4=FETETRAHEDRON,5=FEBRICK
     write(99) 1                     !-------DataPacking 0=Block, 1=Point
     write(99) 0                     !-------Specify Var Location. 0 = Don't specify, all data is located at the nodes. 1 = Specify
  
     write(99) 0                     !-------Number of user defined face neighbor connections (value >= 0)
  
     write(99) IMax                  !-------IMax,JMax,KMax
     write(99) JMax
     write(99) KMax
        
     write(99) 0                     ! 1=Auxiliary name/value pair to follow 0=No more Auxiliar name/value pairs
                                      ! 0=No more Auxiliar name/value pairs
!---1.4.2 Zone 2+++++++++++++++++++++++++++++++++++++++++++
  
     write(99) 299.0                 ! Zone marker. Value = 299.0
     write(99) ichar('Z')            ! Zone name. (See note 1.) N = length of zone name + 1.
     write(99) ichar('O')
     write(99) ichar('N')
     write(99) ichar('E')
     write(99) ichar('0')
     write(99) ichar('1')
     write(99) 0
  
     write(99) -1                    !-------Zone Color (set to -1 if you want tecplot todetermine).
     write(99) 0                     !-------ZoneType 0=ORDERED,1=FELINESEG,2=FETRIANGLE,3=FEQUADRILATERAL,4=FETETRAHEDRON,5=FEBRICK
     write(99) 1                     !-------DataPacking 0=Block, 1=Point
     write(99) 0                     !-------Specify Var Location. 0 = Don't specify, all data is located at the nodes. 1 = Specify
  
     write(99) 0                     !-------Number of user defined face neighbor connections (value >= 0)
  
     write(99) IMax                  !-------IMax=10,JMax=10,KMax=30. the same value as follows
     write(99) JMax
     write(99) KMax
        
     write(99) 0                     ! 1=Auxiliary name/value pair to follow 0=No more Auxiliar name/value pairs
                                      ! 0=No more Auxiliar name/value pairs
                                    
                                    
                                    
!---1.4.3 Zone 3+++++++++++++++++++++++++++++++++++++++++++
  
     write(99) 299.0                 ! Zone marker. Value = 299.0
     write(99) ichar('Z')            ! Zone name. (See note 1.) N = length of zone name + 1.
     write(99) ichar('O')
     write(99) ichar('N')
     write(99) ichar('E')
     write(99) ichar('0')
     write(99) ichar('1')
     write(99) 0
  
     write(99) -1                    !-------Zone Color (set to -1 if you want tecplot todetermine).
     write(99) 0                     !-------ZoneType 0=ORDERED,1=FELINESEG,2=FETRIANGLE,3=FEQUADRILATERAL,4=FETETRAHEDRON,5=FEBRICK
     write(99) 1                     !-------DataPacking 0=Block, 1=Point
     write(99) 0                     !-------Specify Var Location. 0 = Don't specify, all data is located at the nodes. 1 = Specify
  
     write(99) 0                     !-------Number of user defined face neighbor connections (value >= 0)
  
     write(99) IMax                  !-------IMax,JMax,KMax
     write(99) JMax
     write(99) KMax
        
     write(99) 0                     ! 1=Auxiliary name/value pair to follow 0=No more Auxiliar name/value pairs
                                      ! 0=No more Auxiliar name/value pairs
  
  
  
!---2---------data  section-----------------------------
  
     write(99) 357.0                 !      EOHMARKER, value=357.0
!---2.1------zone 1++++++++++++++++++     
      
     write(99) 299.0                 ! Zone marker  Value = 299.0
  
      
     write(99) 2                     ! variable data format, N=Total number of vars
     write(99) 2                     ! 1=Float, 2=Double, 3=LongInt, 4=ShortInt, 5=Byte, 6=Bit
     write(99) 2
      
     write(99) 0                     ! Has passive variables: 0 = no, 1 = yes.
     write(99) -1                    ! Zero based zone number to share connectivity list with (-1 = no sharing)
  
     do k=1,kmax                                                
         do j=1,jmax
             do i=1,imax      
             write(99) xg(i,j,k,1),yg(i,j,k,1),zg(i,j,k,1)  !--------Zone Data. Each variable is in data format asspecified above.
             end do
         end do  
     end do
      
!---2.2------zone 2 +++++++++++++++++     
     write(99) 299.0                 ! Zone marker  Value = 299.0
  
      
     write(99) 2                     ! variable data format, N=Total number of vars
     write(99) 2                     ! 1=Float, 2=Double, 3=LongInt, 4=ShortInt, 5=Byte, 6=Bit
     write(99) 2
      
     write(99) 0                     ! Has passive variables: 0 = no, 1 = yes.
     write(99) -1                    ! Zero based zone number to share connectivity list with (-1 = no sharing)
  
     do k=1,kmax                                                
         do j=1,jmax
             do i=1,imax      
             write(99) xg(i,j,k,2),yg(i,j,k,2),zg(i,j,k,2)  !--------Zone Data. Each variable is in data format asspecified above.
             end do
         end do  
     end do
      
     !---2.3------zone 3 +++++++++++++   
     write(99) 299.0                 ! Zone marker  Value = 299.0
  
      
     write(99) 2                     ! variable data format, N=Total number of vars
     write(99) 2                     ! 1=Float, 2=Double, 3=LongInt, 4=ShortInt, 5=Byte, 6=Bit
     write(99) 2
      
     write(99) 0                     ! Has passive variables: 0 = no, 1 = yes.
     write(99) -1                    ! Zero based zone number to share connectivity list with (-1 = no sharing)
  
     do k=1,kmax                                                
         do j=1,jmax
             do i=1,imax      
             write(99) xg(i,j,k,3),yg(i,j,k,3),zg(i,j,k,3)  !--------Zone Data. Each variable is in data format asspecified above.
             end do
         end do  
     end do
  
close(99)

fortran程序中输出tecplot二进制文件
捕获.JPG


fortran程序中输出tecplot二进制文件-1
捕获2.JPG
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

安靖

银虫 (正式写手)

就是你输出的二进制文件格式错了。
这个只能自己对照tecplot二进制的格式说明仔细检查了
2楼2014-07-21 23:44:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lhy0xmc

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by 安靖 at 2014-07-21 23:44:43
就是你输出的二进制文件格式错了。
这个只能自己对照tecplot二进制的格式说明仔细检查了

关于tecplot二进制文件的中文详细说明在哪可以找到?
3楼2014-07-22 08:56:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

安靖

银虫 (正式写手)

引用回帖:
3楼: Originally posted by lhy0xmc at 2014-07-22 08:56:47
关于tecplot二进制文件的中文详细说明在哪可以找到?...

在tecplot的官网上可以下载到
一个叫preplot.cpp的源文件里有说明,没有中文,只有英文的。
你只要对照着程序改就行了
4楼2014-07-22 11:30:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 lhy0xmc 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 这样的filecode谁见过 +3 布布和一二 2026-08-08 5/250 2026-08-08 12:22 by 仁砚薪传
[基金申请] 国基金的申报应该改成非等额制,评价高的钱多评价低的钱少,但是增加资助率 +4 a089 2026-08-07 4/200 2026-08-08 12:15 by arzu_hma
[找工作] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +3 Vi50GxzrFcSG 2026-08-07 4/200 2026-08-08 10:39 by 3OOjAIS77qg2
[硕博家园] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +3 Vi50GxzrFcSG 2026-08-07 6/300 2026-08-08 10:19 by 3OOjAIS77qg2
[基金申请] fileCode有新解读? +8 Tide man 2026-08-08 16/800 2026-08-08 09:59 by Tide man
[硕博家园] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +3 HEQlVqMTIA7d 2026-08-07 5/250 2026-08-08 08:59 by 6vVgjDL4CnGu
[考博] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +3 HEQlVqMTIA7d 2026-08-07 3/150 2026-08-08 03:47 by 6vVgjDL4CnGu
[基金申请] 基金中了 +14 laoda193707 2026-08-06 14/700 2026-08-08 00:23 by 实验小白ha
[基金申请] 固定端突然变了,今天 +6 archvillain 2026-08-06 10/500 2026-08-07 16:03 by 医学老男孩
[基金申请] 听说今天filecode变了 +24 布布和一二 2026-08-06 47/2350 2026-08-07 16:02 by zhiyanjiang
[基金申请] filecode变化情况 +6 布布和一二 2026-08-07 22/1100 2026-08-07 14:45 by 且听虎啸
[论文投稿] 十年后又回来了,论文投稿求助 +4 哈哈114477 2026-08-01 4/200 2026-08-07 14:39 by jgy194592
[基金申请] 大家散了吧,后缀研究没有意义,别浪费时间了,过好目前的每一天,不要焦虑 +5 Tide man 2026-08-06 7/350 2026-08-07 13:11 by 医学老男孩
[基金申请] 求各位大神看下 100+6 hpkpkpkp 2026-08-05 33/1650 2026-08-06 14:49 by zhiyanjiang
[基金申请] 影响面上的因素 +8 布布和一二 2026-08-05 11/550 2026-08-06 10:41 by 宝贝虫子
[基金申请] 好消息?这个有何含义??? +8 Tide man 2026-08-05 10/500 2026-08-05 16:14 by xmuxiaoyu
[基金申请] 有没有H口的?有收到消息的吗? +3 超级海虾 2026-08-04 3/150 2026-08-04 17:26 by 学教育滴
[基金申请] 纯娱乐,不喜欢勿喷 +7 Tide man 2026-08-04 10/500 2026-08-04 15:10 by loufangrui
[基金申请] 面上提前没消息,有中的吗 +14 archvillain 2026-08-02 18/900 2026-08-04 14:42 by archvillain
[基金申请] 什么时候能放榜呀? +3 Jacob678 2026-08-03 3/150 2026-08-03 16:14 by gltch
信息提示
请填处理意见