[問題] function如何回傳陣列(矩陣)
想使用function回傳一整個陣列而不是一個數值,不知到與法該怎麼用
program main
real*8, allocatable :: a(:,:),a1(:,:))
integer*4 :: b=3
allocate (a(b,b),a1(b,b))
!allocate (a1(b,b))
allocate (a2(b,b))
a=0.d0; a1=0.d0;
a1(1,1:3)=1.5d0;
a(2,1:3)=2d0*a1(1,1:3)+5d0
write(*,*) a;
write(*,*) a1;
print * , '\'
write(*,*) add(b,a,a1)
pause
stop
end program main
function add(b,a,a1)
integer*4 :: b
real*8,allocatable :: a(:,:),a1(:,:)
allocate( a(b,b),a1(b,b) )
real*8, dimension(b,b) :: add
add=a+a1
return
end function add
跑出兩個錯誤訊息,不知道與法該怎麼用QQ
Error: A specification statement cannot appear in the executable section.
real*8, dimension(b,b) :: add
--------^
Error: The shapes of the array expressions do not conform.
add=a+a1
--------^
除此之外,順便問一下可以自動加入行號嗎....難道真的要一行一行打QQ?
我用的是Compaq Visual Fortran
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.121.23.113
→
06/01 11:03, , 1F
06/01 11:03, 1F
→
06/01 11:04, , 2F
06/01 11:04, 2F
推
06/01 11:20, , 3F
06/01 11:20, 3F
→
06/01 11:21, , 4F
06/01 11:21, 4F
→
06/01 11:21, , 5F
06/01 11:21, 5F
→
06/01 11:22, , 6F
06/01 11:22, 6F
→
06/01 15:10, , 7F
06/01 15:10, 7F
推
06/12 03:52, , 8F
06/12 03:52, 8F
Fortran 近期熱門文章
PTT數位生活區 即時熱門文章