Surfer grd文件读写Fortran代码(面向对象编程实例)

分类:网络文章 时间:2024-01-15 01:55 浏览:0 评论:0
0

以下是使用 Fortran 面向对象编程来读写 Surfer grd 文件的示例代码:

模块 GridFile

隐式无

类型::网格

字符(len=100)::文件名

整数::ncols

整数:: nrows

real :: xllcorner

real :: yllcorner

real :: cellsize

real,可分配 :: data(:, :)

结束类型网格

包含

子例程read_grid_file(grid, filename)

类型(Grid),intent(out) :: grid

字符(len=*),intent(in) :: 文件名

整数 :: fileunit, i, j

grid%文件名 =文件名

!打开文件

open(newunit=fileunit, file=filename, status='old', action='read')

!读取文件头

read(fileunit, *) grid%ncols

read(fileunit, *) grid%nrows

read(fileunit, *) grid% xllcorner

读取(fileunit, *) grid#yllcorner

读取(fileunit, *) grid%cellsize

!分配数据数组

allocate(grid%data(grid%ncols,grid%nrows))

!读取数据

do j = 1, grid%nrows

do i = 1, grid%ncols

read(fileunit, *) grid%data(i , j)

结束做

结束做

!关闭文件

close(fileunit)

结束子程序read_grid_file

子程序write_grid_file(grid)

type(Grid),intent( in)::grid

整数::fileunit, i,j

!打开文件

open(newunit=fileunit, file=grid%filename, status='replace', action='write')

!写入文件头

write(fileunit, *) grid%ncols

write(fileunit, *) grid%nrows

write(fileunit, *) grid% xllcorner

write(fileunit, *) grid#yllcorner

write(fileunit, *) grid%cellsize

< p> !写入数据

do j = 1, grid%nrows

do i = 1, grid%ncols

write(fileunit, *) grid %data(i , j)

结束做

结束做

!关闭文件

close(fileunit)

结束子程序write_grid_file

结束模块GridFileprogram Main

使用GridFile

类型(Grid) :: mygrid

!读取Grid文件

调用read_grid_file(mygrid, 'input.grd')

!处理网格数据

!编写Grid文件

调用write_grid_file(mygrid)结束程序Main

在上面的示例代码中,Grid类型定义了Surfer的基本属性和数据.grd 文件。 read_grid_file子例程用于从文件中读取Surfer grd文件的数据并存储在Grid类型对象中,而write_grid_file子程序用于将Grid类型对象的数据写入Surfer grd文件中。主程序Main演示了如何使用这些子例程来读写Surfer grd文件。
请注意,上述示例代码仅演示了如何读写Surfer grd文件的基本步骤,并不包含完整的错误处理和异常处理。在实际应用中,可能需要添加适当的错误检查王和处理代码,保证程序的稳定性和可靠性。

1. 本站所有资源来源于用户上传或网络,仅作为参考研究使用,如有侵权请邮件联系站长!
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 网络文章 > Surfer grd文件读写Fortran代码(面向对象编程实例)

用户评论