fortran在外部过程使用假定形状数组
程序员文章站
2022-03-09 10:03:54
...
fortran在外部过程使用假定形状数组有两种方式。
分别是写接口(interface)或是把对应的subroutine写在module中
代码如下:
1. 写interface
Program AssumedShape
implicit none
interface !.. 接口
subroutine test_AssumedShape( a )
real, allocatable :: a(:)
end subroutine test_AssumedShape
end interface
integer :: istat
real, allocatable :: a(:)
allocate( a(2), stat = istat )
call test_AssumedShape( a )
write( *,* ) a
deallocate( a )
end program AssumedShape
subroutine test_AssumedShape( a )
implicit none
integer :: m, n, i
real :: a(:)
m = lbound(a,1)
n = ubound(a,1)
forall ( i = m:n )
a(i) = i
end forall
end subroutine test_AssumedShape
2. 写module
Module testmod
implicit none
contains
subroutine test_AssumedShape( a )
implicit none
integer :: m, n, i
real :: a(:)
m = lbound(a,1)
n = ubound(a,1)
forall ( i = m:n )
a(i) = i
end forall
end subroutine test_AssumedShape
End module testmod
Program AssumedShape
use testmod
implicit none
integer :: istat
real, allocatable :: a(:)
allocate( a(2), stat = istat )
call test_AssumedShape( a )
write( *,* ) a
deallocate( a )
end program AssumedShape
上一篇: fortran三次样条插值程序实例
下一篇: Python机器学习入门之Numpy
推荐阅读