小编Pit*_*rog的帖子

Julia 中导入模块的内容

假设我在 Julia 中使用/导入一个模块:

using someModule
Run Code Online (Sandbox Code Playgroud)

我没有编写模块,我想知道该模块的导出行中有哪些函数、变量、类型等。我是怎么做到的?(我使用的是 Julia 1.3.1)

julia

6
推荐指数
1
解决办法
47
查看次数

我可以在 Fortran 中使用可分配数组作为意图(输出)矩阵吗?

考虑以下子程序

subroutine myProc(m,n,flag,X)
Integer, intent(in) :: m,n
logical, intent(in) :: flag
real(8), intent(out), allocatable :: X(:,:)

if (flag) then
  allocate(X(m,n))
  ! some more code here
else 
  allocate(X(m-1,n))
  ! some more code here
end if
end subroutine myProc
!!!!!!!!!!!!!!!!!!!
Run Code Online (Sandbox Code Playgroud)

另外,如何在程序中调用此过程?假设我写

!... some code before
call myProc(5,6,.TRUE.,X)
Run Code Online (Sandbox Code Playgroud)

我是否需要将 X 定义为 (4,6) 实数数组或将可分配数组传递给子例程?

在 Fortran 95 中甚至可以做到所有这些吗?

arrays fortran fortran95

5
推荐指数
1
解决办法
1285
查看次数

Fortran PURE功能

在我看来,Fortran中所谓的纯函数对于那些使用函数式编程的人来说并不算纯粹.所以这是我的问题.假设我有以下代码:

MODULE basics
  IMPLICIT NONE
  INTEGER, PARAMETER      :: dp = kind(1.0d0)
  REAL(dp), PARAMETER     :: PI=3.1415926535897932_dp
  REAL(dp), PARAMETER     :: earthEquatorialRadius=6378.137_dp
END MODULE basics

MODULE myFunctions
  USE basics
  IMPLICIT NONE

  PURE REAL(dp) FUNCTION sphericalArc(angleInRadians) 
    REAL(dp),INTENT(IN)  :: angleInRadians 

    sphericalArc= 2.0*PI*earthEquatorialRadius*angleInRadians
  END FUNCTION sphericalArc
END MODULE myFunctions
Run Code Online (Sandbox Code Playgroud)

函数sphericalArc没有副作用,所以它在这个意义上是纯粹的,但它使用全局常量.确实可以在函数内部定义参数PI和earthEquatorialRadius,但这是不可取的,因为我想在其他函数和子例程中使用它们.在每个函数或过程中定义dp类型会更加繁琐.

因此,从Fortran的角度来看,一个函数使用在函数之外定义的全局参数仍然被认为是纯粹的并且可以从do并发循环中调用吗?

fortran gfortran intel-fortran

5
推荐指数
2
解决办法
280
查看次数

标签 统计

fortran ×2

arrays ×1

fortran95 ×1

gfortran ×1

intel-fortran ×1

julia ×1