Converting a FORTRAN program
Randy Kirk
rkirk at oasys.dt.navy.mil
Mon Jun 17 22:40:53 AEST 1991
To: Anyone who can help
I am trying to convert a FORTRAN program from VMS to ultrix. The
problem is that the program has an error handler that uses VMS's runtime
library and system service routines. These routines (lib$signal,
lib$establish, sys$unwind) are use to establish an error handler that
unwinds the procedure stack to a previous routine. The error handler
is invoked by lib$signal. If anyone has any suggestions they would be
greatly appreciated. The section of the program that needs to be converted
follows.
Thank You
Randy Kirk
cBULLXX 1000000
subroutine bullxx (n) 1000100
external ihndl 1000200
c check if this the first call to bullxx (n = 3) 1000300
if (n .eq. 3) go to 10 1000400
c 1000500
c this is not the first call so signal the condition 1000600
call lib$signal (%VAL(331)) 1000700
return 1000800
c 1000900
c set up the condition handler 1001000
10 call lib$establish (ihndl) 1001100
c 1001200
c continue with the program as usual 1001300
call readyx 1001400
return 1001500
end 1001600
INTEGER*4 FUNCTION IHNDL(SIGS,MECHS) 1001700
C 1001800
INTEGER*4 SIGS(4), MECHS(5) 1001900
c 1002000
c unwind all frames off the stack to the frame saved when 1002100
c the condition was established. 1002200
C 1002300
C CHECK TO SEE IF THE CONDITION WHICH CALLED THE HANDLER 1002400
C IS THE RIGHT ONE FOR BULLXX. 1002500
IF(SIGS(2) .EQ. 331) call sys$unwind (%val(0),%val(0)) 1002600
IHNDL = SS$_RESIGNAL 1002700
return 1002800
END 1002900
More information about the Comp.unix.questions
mailing list