ERROUT Subroutine

public subroutine ERROUT(WHERE, ErrMsg)

Outputs error message and terminates program

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: WHERE

Program or subroutine the error is being called from

character(len=*), intent(in) :: ErrMsg

The error message itself


Called by

proc~~errout~~CalledByGraph proc~errout ERROUT proc~bellhopcore BellhopCore proc~bellhopcore->proc~errout proc~evaluatessp3d EvaluateSSP3D proc~bellhopcore->proc~evaluatessp3d proc~influencecervenycart InfluenceCervenyCart proc~bellhopcore->proc~influencecervenycart proc~influencecervenyraycen InfluenceCervenyRayCen proc~bellhopcore->proc~influencecervenyraycen proc~traceray2d TraceRay2D proc~bellhopcore->proc~traceray2d proc~traceray3d TraceRay3D proc~bellhopcore->proc~traceray3d proc~bellhopcore~2 BellhopCore proc~bellhopcore~2->proc~errout proc~crci CRCI proc~bellhopcore~2->proc~crci proc~evaluatessp EvaluateSSP proc~bellhopcore~2->proc~evaluatessp proc~bellhopcore~2->proc~influencecervenycart proc~bellhopcore~2->proc~influencecervenyraycen proc~pickepsilon~2 PickEpsilon proc~bellhopcore~2->proc~pickepsilon~2 proc~traceray2d~2 TraceRay2D proc~bellhopcore~2->proc~traceray2d~2 proc~crci->proc~errout proc~evaluatessp->proc~errout proc~hexahedral Hexahedral proc~evaluatessp->proc~hexahedral proc~quad Quad proc~evaluatessp->proc~quad proc~ccubic cCubic proc~evaluatessp->proc~ccubic proc~clinear cLinear proc~evaluatessp->proc~clinear proc~cpchip cPCHIP proc~evaluatessp->proc~cpchip proc~n2linear n2Linear proc~evaluatessp->proc~n2linear proc~evaluatessp3d->proc~errout proc~evaluatessp3d->proc~hexahedral proc~evaluatessp3d->proc~ccubic proc~evaluatessp3d->proc~clinear proc~evaluatessp3d->proc~n2linear proc~getbotseg GetBotSeg proc~getbotseg->proc~errout proc~getbotseg3d GetBotSeg3D proc~getbotseg3d->proc~errout proc~gettopseg GetTopSeg proc~gettopseg->proc~errout proc~gettopseg3d GetTopSeg3D proc~gettopseg3d->proc~errout proc~hexahedral->proc~errout proc~readssp ReadSSP proc~hexahedral->proc~readssp proc~influencecervenycart->proc~errout proc~influencecervenycart->proc~evaluatessp proc~influencecervenyraycen->proc~errout proc~pickepsilon~2->proc~errout proc~quad->proc~errout proc~quad->proc~readssp proc~readati ReadATI proc~readati->proc~errout proc~readati3d ReadATI3D proc~readati3d->proc~errout proc~readbty ReadBTY proc~readbty->proc~errout proc~readbty3d ReadBTY3D proc~readbty3d->proc~errout proc~readenvironment ReadEnvironment proc~readenvironment->proc~errout proc~readenvironment->proc~evaluatessp proc~readfreqvec ReadfreqVec proc~readenvironment->proc~readfreqvec proc~readraybearingangles ReadRayBearingAngles proc~readenvironment->proc~readraybearingangles proc~readrayelevationangles ReadRayElevationAngles proc~readenvironment->proc~readrayelevationangles proc~readrcvrbearings ReadRcvrBearings proc~readenvironment->proc~readrcvrbearings proc~readrcvrranges ReadRcvrRanges proc~readenvironment->proc~readrcvrranges proc~readruntype ReadRunType proc~readenvironment->proc~readruntype proc~readszrz ReadSzRz proc~readenvironment->proc~readszrz proc~readtopopt ReadTopOpt proc~readenvironment->proc~readtopopt proc~topbot TopBot proc~readenvironment->proc~topbot proc~readsxsy ReadSxSy proc~readenvironment->proc~readsxsy proc~readfreqvec->proc~errout proc~readheader ReadHeader proc~readheader->proc~errout proc~readpat ReadPat proc~readpat->proc~errout proc~readraybearingangles->proc~errout proc~readrayelevationangles->proc~errout proc~readrcvrbearings->proc~errout proc~readvector ReadVector proc~readrcvrbearings->proc~readvector proc~readrcvrranges->proc~errout proc~readrcvrranges->proc~readvector proc~readreflectioncoefficient ReadReflectionCoefficient proc~readreflectioncoefficient->proc~errout proc~readruntype->proc~errout proc~readssp->proc~errout proc~readssp->proc~crci proc~readszrz->proc~errout proc~readszrz->proc~readvector proc~readtopopt->proc~errout proc~readvector->proc~errout proc~reflect2d~2 Reflect2D proc~reflect2d~2->proc~errout proc~reflect2d~2->proc~evaluatessp proc~topbot->proc~errout proc~topbot->proc~crci program~bellhop BELLHOP program~bellhop->proc~errout program~bellhop->proc~bellhopcore~2 program~bellhop->proc~crci program~bellhop->proc~readati program~bellhop->proc~readbty program~bellhop->proc~readenvironment program~bellhop->proc~readpat program~bellhop->proc~readreflectioncoefficient proc~ccubic->proc~readssp proc~clinear->proc~readssp proc~cpchip->proc~readssp proc~evaluatessp2d EvaluateSSP2D proc~evaluatessp2d->proc~evaluatessp3d proc~n2linear->proc~readssp proc~readsxsy->proc~readvector proc~reflect3d Reflect3D proc~reflect3d->proc~evaluatessp3d proc~step2d Step2D proc~step2d->proc~evaluatessp proc~step3d Step3D proc~step3d->proc~evaluatessp3d proc~traceray2d->proc~getbotseg3d proc~traceray2d->proc~gettopseg3d proc~reflect2d Reflect2D proc~traceray2d->proc~reflect2d proc~step2d~2 Step2D proc~traceray2d->proc~step2d~2 proc~traceray2d~2->proc~evaluatessp proc~traceray2d~2->proc~getbotseg proc~traceray2d~2->proc~gettopseg proc~traceray2d~2->proc~reflect2d~2 proc~traceray2d~2->proc~step2d proc~traceray3d->proc~getbotseg3d proc~traceray3d->proc~gettopseg3d proc~traceray3d->proc~reflect3d proc~traceray3d->proc~step3d program~bellhop3d BELLHOP3D program~bellhop3d->proc~bellhopcore program~bellhop3d->proc~readati3d program~bellhop3d->proc~readbty3d program~bellhop3d->proc~readenvironment program~bellhop3d->proc~readpat program~bellhop3d->proc~readreflectioncoefficient proc~reflect2d->proc~evaluatessp2d proc~step2d~2->proc~evaluatessp2d

Source Code

  SUBROUTINE ERROUT( WHERE, ErrMsg )
  !! Outputs error message and terminates program

    ! Arguments
    CHARACTER (LEN=*), INTENT( IN ) :: WHERE
        !! Program or subroutine the error is being called from
    CHARACTER (LEN=*), INTENT( IN ) :: ErrMsg
        !! The error message itself

    INTEGER   :: Last

    WRITE( PRTFile, * )
    WRITE( PRTFile, * ) '*** FATAL ERROR ***'

    Last = LEN( WHERE )
    WRITE( PRTFile, * ) 'Generated by program or subroutine: ', WHERE( 1 : Last )

    Last = LEN( ErrMsg )
    WRITE( PRTFile, * ) ErrMsg( 1 : Last )
    WRITE( PRTFile, * )
    CLOSE( PRTFile )

    ! Intel Fortran can't handle the following
    ! ERROR STOP 'Fatal Error in ' // WHERE( 1 : Last1 ) // ': ' // ErrMsg( 1 : Last2 )
    ERROR STOP 'Fatal Error: Check the print file for details'

  END SUBROUTINE ERROUT