Fortran 子程序参数列表中的星号 * 符号是什么意思?

eli*_*nie 3 label fortran arguments return subroutine

* 作为子程序中的参数是什么意思?它是否意味着一个标签并返回到主程序?是它涉及到returnreturn 1ERRERROR?我不知道为什么我们有这些,但我认为星号与它们有关。

  !>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
Run Code Online (Sandbox Code Playgroud)

Vla*_*r F 5

这是函数交替返回的标签。它是函数在使用时最终可以返回的标签

 return 1
Run Code Online (Sandbox Code Playgroud)

代替

return
Run Code Online (Sandbox Code Playgroud)

它返回到调用子程序的位置。

强烈建议不要在新代码中使用此功能,尽管我已经看到有关如何将此代码用于某种异常的建议。

非常相关的问题,几乎是重复的(而是要求返回语句): Fortran return statement