Surfer grd文件读写Fortran代码(面向对象编程实例)
以下是使用 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文件的基本步骤,并不包含完整的错误处理和异常处理。在实际应用中,可能需要添加适当的错误检查王和处理代码,保证程序的稳定性和可靠性。
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 网络文章 > Surfer grd文件读写Fortran代码(面向对象编程实例)