Fortran 子例程参数列表中的星号 * 符号是什么意思?
What the asterisk * symbol mean in a Fortran subroutine argument list?
子程序中的参数 * 是什么意思?它是否意味着一个标签,它 returns 到主程序?它与 return
、return 1
、ERR
或 ERROR
相关吗?我不知道为什么我们有这些,但我认为星号与它们有关。
!>Start the creation of boundary conditions for the equation set.
SUBROUTINE BOUNDARY_CONDITIONS_CREATE_START(SOLVER_EQUATIONS,BOUNDARY_CONDITIONS,ERR,ERROR,*)
!Argument variables
INTEGER(INTG), INTENT(OUT) :: ERR !<The error code
TYPE(VARYING_STRING), INTENT(OUT) :: ERROR !<The error string
!Local Variables
TYPE(VARYING_STRING) :: LOCAL_ERROR
ENTERS("BOUNDARY_CONDITIONS_CREATE_START",ERR,ERROR,*999)
IF(ASSOCIATED(BOUNDARY_CONDITIONS)) THEN
CALL FlagError("Boundary conditions is already associated.",ERR,ERROR,*999)
ELSE
IF(ASSOCIATED(SOLVER_EQUATIONS%SOLVER_MAPPING)) THEN
!Initialise the boundary conditions
CALL BOUNDARY_CONDITIONS_INITIALISE(SOLVER_EQUATIONS,ERR,ERROR,*999)
ELSE
LOCAL_ERROR="Solver equations solver mapping is not associated."
CALL FlagError(LOCAL_ERROR,ERR,ERROR,*999)
ENDIF
ENDIF
ENDIF
EXITS("BOUNDARY_CONDITIONS_CREATE_START")
RETURN
999 ERRORSEXITS("BOUNDARY_CONDITIONS_CREATE_START",ERR,ERROR)
RETURN 1
END SUBROUTINE BOUNDARY_CONDITIONS_CREATE_START
这是函数中 备用 return 的标签。它是函数最终可以 return 到使用
时的标签
return 1
而不是
return
哪个 returns 到调用子例程的位置。
强烈建议不要在新代码中使用此功能,尽管我已经看到有关如何将此代码用于某种例外情况的建议。
非常相关的问题,几乎是重复的(而是要求 return 语句):Fortran return statement
子程序中的参数 * 是什么意思?它是否意味着一个标签,它 returns 到主程序?它与 return
、return 1
、ERR
或 ERROR
相关吗?我不知道为什么我们有这些,但我认为星号与它们有关。
!>Start the creation of boundary conditions for the equation set.
SUBROUTINE BOUNDARY_CONDITIONS_CREATE_START(SOLVER_EQUATIONS,BOUNDARY_CONDITIONS,ERR,ERROR,*)
!Argument variables
INTEGER(INTG), INTENT(OUT) :: ERR !<The error code
TYPE(VARYING_STRING), INTENT(OUT) :: ERROR !<The error string
!Local Variables
TYPE(VARYING_STRING) :: LOCAL_ERROR
ENTERS("BOUNDARY_CONDITIONS_CREATE_START",ERR,ERROR,*999)
IF(ASSOCIATED(BOUNDARY_CONDITIONS)) THEN
CALL FlagError("Boundary conditions is already associated.",ERR,ERROR,*999)
ELSE
IF(ASSOCIATED(SOLVER_EQUATIONS%SOLVER_MAPPING)) THEN
!Initialise the boundary conditions
CALL BOUNDARY_CONDITIONS_INITIALISE(SOLVER_EQUATIONS,ERR,ERROR,*999)
ELSE
LOCAL_ERROR="Solver equations solver mapping is not associated."
CALL FlagError(LOCAL_ERROR,ERR,ERROR,*999)
ENDIF
ENDIF
ENDIF
EXITS("BOUNDARY_CONDITIONS_CREATE_START")
RETURN
999 ERRORSEXITS("BOUNDARY_CONDITIONS_CREATE_START",ERR,ERROR)
RETURN 1
END SUBROUTINE BOUNDARY_CONDITIONS_CREATE_START
这是函数中 备用 return 的标签。它是函数最终可以 return 到使用
时的标签 return 1
而不是
return
哪个 returns 到调用子例程的位置。
强烈建议不要在新代码中使用此功能,尽管我已经看到有关如何将此代码用于某种例外情况的建议。
非常相关的问题,几乎是重复的(而是要求 return 语句):Fortran return statement