title: What the asterisk * symbol mean in a Fortran subroutine argument list?
body: <p>What does the * mean as the argument in the subroutine? Does it mean a label and it returns to main program? is it related to <code>return</code>, <code>return 1</code>, <code>ERR</code> or <code>ERROR</code>? I don't know why we have these, but I think that asterisk is related to them.</p>
  
  <pre><code>  !&gt;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 !&lt;The error code
  TYPE(VARYING_STRING), INTENT(OUT) :: ERROR !&lt;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
  </code></pre>