Fortran中输出Tecplot格式

在Fortran代码中,若要输出Tecplot格式结果,主要是要注意Tecplot文件的头部格式。

代码示例:

    program main
    implicit none
    integer(kind=4),parameter :: N=100
    integer(kind=4) :: i,j
    real(kind=8) :: H
    real(kind=8) :: x(1:N+1,1:N+1),y(1:N+1,1:N+1),phi(1:N+1,1:N+1)
   
   H=2.D0/100
    do j=1,N+1,1
       do i=1,N+1,1
           x(i,j)=real(i-1,8)*H
           y(i,j)=real(j-1,8)*H
       end do
    end do
   phi=1.D0
   
    call output1(phi,x,y,N+1)
    call output2(phi,x,y,N+1)
    call output3(phi,x,y,N+1)
    call output4(phi,x,y,N+1)
    call output5(phi,x,y,N+1)
   
    stop
    end program main
    


    形式1:
    subroutine output1(phi,x,y,M)
    implicit none  
   integer(kind=4) :: i,j,M
    real(kind=8) :: x(M,M),y(M,M),phi(M,M)
   
   open(unit=99,file="Tecplot.dat")
    write(99,*) 'title="Tecplot"'
    write(99,*) 'variables="x" "y" "phi"'
    write(99,*) 'zone t="Fortran"  i=',M,' j=',M,' f=point'
    do j=1,M,1
       do i=1,M,1
           write(99,*) x(i,j),y(i,j),phi(i,j)
       end do
    end do
   close(99)

 

   return
    end subroutine output1
   
   

   形式2:
    subroutine output2(phi,x,y,M)
    implicit none  
   integer(kind=4) :: i,j,M
    real(kind=8) :: x(M,M),y(M,M),phi(M,M)
   
   open(unit=99,file="Tecplot.dat")
    write(99,*) 'title="Tecplot"'
    write(99,*) 'variables="x" "y" "phi"'
    write(99,*) 'zone t="Fortran"  i=',M,' j=',M,' f=point'
    write(99,*) ((x(i,j),y(i,j),phi(i,j),i=1,M,1),j=1,M,1)
   close(99)

 

   return
    end subroutine output2
    


    形式3:
    subroutine output3(phi,x,y,M)
    implicit none  
   integer(kind=4),intent(in) :: M
   real(kind=8),intent(in) :: x(M,M),y(M,M),phi(M,M)
   integer(kind=4) :: i,j
   
   open(unit=99,file="Tecplot.dat")
    write(99,*) 'title="Tecplot"'
    write(99,*) 'variables="x" "y" "phi"'
    write(99,*) 'zone t="Fortran"  i=',M,' j=',M,' f=point'
   write(99,100) ((x(i,j),y(i,j),phi(i,j),i=1,M,1),j=1,M,1)
   close(99)
   
100 format(F10.7,3X,F10.7,3X,F10.7)

 

   return
    end subroutine output3
   


    形式4:
    subroutine output4(phi,x,y,M)
    implicit none  
   integer(kind=4),intent(in) :: M
   real(kind=8),intent(in) :: x(M,M),y(M,M),phi(M,M)
   integer(kind=4) :: i,j
   
   open(unit=99,file="Tecplot.dat")
   write(99,"('title=""Tecplot""',A20)")
   write(99,"('variables=""x"",""y"",""phi""',A20)")
   write(99,"('zone t=""Fortran"",i=',I3,',j=',I3,',f=point',A20)") M,M
   write(99,"(F10.7,3X,F10.7,3X,F10.7)") ((x(i,j),y(i,j),phi(i,j),i=1,M,1),j=1,M,1)
   close(99)

 

   return
    end subroutine output4
   


    形式5:
    subroutine output5(phi,x,y,M)
    implicit none  
   integer(kind=4),intent(in) :: M
   real(kind=8),intent(in) :: x(M,M),y(M,M),phi(M,M)
   integer(kind=4) :: i,j
   character(len=100) :: Fortran,outpath="D:\路径..\"
   
   write(Fortran,*) M
   open(unit=99,file="Tecplot.dat")
   !open(unit=99,file=trim(adjustl(outpath))//"Tecplot.dat")
   write(99,"('title=""Tecplot""',A20)")
   write(99,"('variables=""x"",""y"",""phi""',A20)")
   write(99,"('zone t=',A8,',i=',I3,',j=',I3,',f=point',A20)") 'Num'//trim(adjustl(Fortran)),M,M
   write(99,"(F10.7,3X,F10.7,3X,F10.7)") ((x(i,j),y(i,j),phi(i,j),i=1,M,1),j=1,M,1)
   close(99)

 

   return
    end subroutine output5
   !注:在输出Tecplot格式时,注意在第三行中“t=”后面第一个字符不能为数字。

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Fortran,写入数据到文件或控制台可以使用write语句。write语句的一般格式如下: ``` write(unit, format) [output-list] ``` 其,`unit` 是指定输出单元的整数值,可以是文件号或者预定义的控制台输出单元。`format` 是一个字符串,用于指定输出格式。`output-list` 是需要写入的数据列表。 下面是一些常见的格式化代码: - `%d`: 整数 - `%f`: 浮点数 - `%e` 或 `%E`: 科学计数法的浮点数 - `%g` 或 `%G`: 自动选择 `%f` 或 `%e` - `%s`: 字符串 下面是一个示例程序,将两个整数和一个字符串写入文件: ``` program write_demo implicit none integer :: i, j character(20) :: str i = 10 j = 20 str = "Hello, Fortran!" open(10, file='output.txt', status='replace') write(10, '(A)') "The values are:" write(10, '(2I5)') i, j write(10, '(A)') "The string is:" write(10, '(A20)') str close(10) end program write_demo ``` 在上面的示例程序,我们使用 `open` 打开一个名为 `output.txt` 的文件,并将其指定为输出单元 `10`。然后,我们使用 `write` 语句将数据写入文件。第一个 `write` 语句使用格式化代码 `A`,表示输出一个字符串。第二个 `write` 语句使用格式化代码 `2I5`,表示输出两个整数,每个整数占据 5 个字符的宽度。第三个 `write` 语句输出另一个字符串,使用格式化代码 `A20` 表示字符串占据 20 个字符的宽度。最后,我们使用 `close` 关闭文件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值