SUBROUTINE DFLTCK(TARGET,DEFLT,USER) C C THE PURPOSE OF THIS SUBROUTINE IS TO CHECK FOR DEFAULT ARGUMENTS C IN A FORTRAN SUBROUTINE CALL, AND SUBSTITUTE THE APPROPRIATE VALUE C (USER IF PRESENT, DEFLT IF NON SPECIFIED) IN THE TARGET VARIABLE. C C THE BEHAVIOR OF THE ROUTINE IS BASED ON THE FACT THAT FORTRAN WILL C PASS AN ADDRESS OF 177777(8) FOR ANY DEFAULT VALUES IN THE ARGURMENT C LIST. THE SYSLIB FUNCTION IADDR CAN BE USED TO FIND THE ADDRESS OF C A VARIABLE. C C TARGET IS THE VARIABLE WHICH WILL TAKE ON THE VALUE OF C DEFLT IF IADR IS 177777(8), OR USER IF IT IS NOT C DEFLT IS THE VALUE OF THE DEFAULT CASE C USER IS THE ARGUMENT PASSED THROUGH THE INITIAL SUBROUTINE C CALL C C SAMPLE CALL: C CALL DFLTCK(TARGET,DEFLT,USER) C C THE FORMAT OF THE LAST ARGUMENT IS IMPORTANT. C C THE INCLUSION OF A SUBROUTINE A SIMPLE AS THIS MAY SEEM TRIVIAL, C BUT IT WILL MAKE THE MAIN LINE CODE SIMPLER TO UNDERSTAND, AND C WRITE. C IF (IADDR(USER) .EQ. "177777)GOTO 20 TARGET=USER RETURN 20 TARGET=DEFLT RETURN END SUBROUTINE IDFLT(ITARGT,IDEFLT,IUSER) C C THIS IS A DUPLICATE OF THE ABOVE ROUTINE FOR INTEGERS C IF (IADDR(IUSER).EQ."177777)GOTO 20 ITARGT=IUSER RETURN 20 ITARGT=IDEFLT RETURN END