This is example code for handling the bookkeeping of the RZ filename and top level directory. The DASH command would be TALK MYMODULE RZFILE myfilename.rz N, where the final argument specifies a new RZ file. See the HBOOK manual for more detail. As coded here, this would open the file, but booking would not occur until the command BOOK MYMODULE is given. The final call to HREND would occur on program exit or could be specified interactively with CALL FINI MYMODULE.
CHARACTER*80 RZFILENAME DATA RZFILENAME/'MYMODULE.RZ'/ ! Default filename ... ENTRY MYMODULE_TALK c c Get first word after TALK in command line and act based on it: c ============================================================== CALL KUGETC(VERB,LEN) IF (VERB(1:3) .EQ. 'RZF') THEN c c Get the filename and CHOPT options from the command line: c --------------------------------------------------------- CALL KUGETC(RZFILENAME,LEN) CALL KUGETC(CHOPT,LEN) CALL HROPEN(1,'MYNTUPL',RZFILENAME,CHOPT,LRECL,ISTAT) RZOPEN = .TRUE. ELSE IF (VERB(1:4) .NE. 'HELP') THEN WRITE(*,*) 'Unrecognized MYMODULE command', VERB END IF WRITE(*,*) 'Valid MYMODULE commands: ' WRITE(*,*) 'RZFILE <filename>' WRITE(*,*) 'HELP' END IF RETURN ENTRY MYMODULE_BOOK c c Book NTUPLE- but only if file is open!: c ======================================= IF (RZOPEN) THEN CALL HBOOKN(30,'MYNTUPL',3,'//MYANA',1000,CHTAGS) ELSE WRITE(*,*) 'RZ file not open! Try TALK MYMODULE HELP' END IF RETURN ENTRY MYMODULE_FINI IF (RZOPEN) CALL HCDIR('//MYANA') CALL HREND('MYANA') RZOPEN = .FALSE. ELSE WRITE(*,*) 'No RZ file to close' END IF RETURN