我读过Fortran仍然大量用于科学计算.对于已经大量投资Fortran的代码,这对我来说很有意义.
但是有理由将Fortran用于其他现代语言的新项目吗?与更流行的语言(C++,Java,Python,Ruby等)相比,Fortran中的语言设计决策是否更适合科学计算?例如,与我提到的其他语言相比,Fortran的特定语言功能是否允许编译器中的数值优化程度更高?
我正在Fortran中编写一个新代码,并且在使用可分配数组或指针数组之间犹豫不决.我在某处读到可分配数组比指针数组有明显优势:
1)效率更高,因为它们在内存中总是连续的
2)没有内存泄漏是可能的
有人能证实吗?你建议使用哪一个?在这两种备选方案之间的代码执行速度方面有什么结果?
arrays fortran pointers memory-management dynamic-memory-allocation
说我有以下代码:
program test
call foo
call foo
contains
subroutine foo
integer(8),dimension(:),allocatable:: var1
allocate(var1(10))
...
return
end subroutine foo
end
Run Code Online (Sandbox Code Playgroud)
变量var1会被分配两次吗?(我猜是).如果为每个呼叫分配,第一次呼叫期间分配的内存是否会空闲?
fortran memory-management dynamic-memory-allocation fortran90 fortran95