staden-lg/src/bap/sapmen.f

189 lines
5.3 KiB
Fortran

SUBROUTINE DBMENT(MENU,NOPT,KOPT,MAXOPT,
+IHELPS,IHELPE,HELPF,IDEVH,KBIN,KBOUT)
CHARACTER HELPF*(*)
INTEGER IHELPS(0:MAXOPT),IHELPE(0:MAXOPT)
1 CONTINUE
IF(MENU.EQ.0) THEN
WRITE(KBOUT,5000)
5000 FORMAT(' Menus and their numbers are',/,
+ ' m0 = This menu',/,
+ ' m1 = General',/,
+ ' m2 = Screen control',/,
+ ' m3 = Modification',/,
+ ' ? = Help',/,
+ ' ! = Quit')
ELSE IF(MENU.EQ.-1) THEN
WRITE(KBOUT,1001)
1001 FORMAT(' General menu',/,
+' 0 = List of menus',/,
+' ? = Help',/,
+' ! = Quit',/,
+' 3 = Open a database',/,
+' 5 = Display a contig',/,
+' 6 = List a text file',/,
+' 7 = Redirect output',/,
+' 8 = Calculate a consensus',/,
+' 17 = Screen against restriction enzymes',/,
+' 18 = Screen against vector',/,
+' 19 = Check database',/,
+' 24 = Copy database',/,
+' 25 = Show relationships',/,
+' 27 = Set parameters',/,
+' 28 = Highlight disagreements',/,
+' 29 = Examine quality',/,
+' 35 = Find internal joins')
ELSE IF(MENU.EQ.-2) THEN
WRITE(KBOUT,1002)
1002 FORMAT(' Screen control menu',/,
+' 0 = List of menus',/,
+' ? = Help',/,
+' ! = Quit',/,
+' 10 = Clear graphics',/,
+' 11 = Clear text',/,
+' 12 = Draw ruler',/,
+' 13 = Use cross hair',/,
+' 14 = Change margins',/,
+' 15 = Label diagram',/,
+' 16 = Plot map',/,
+' 33 = Plot single contig',/,
+' 34 = Plot all contigs')
ELSE IF(MENU.EQ.-3) THEN
WRITE(KBOUT,1003)
1003 FORMAT(' Modification menu',/,
+' 0 = List of menus',/,
+' ? = Help',/,
+' ! = Quit',/,
+' 4 = Edit contig',/,
+' 9 = Screen edit',/,
+' 20 = Auto assemble',/,
+' 21 = Enter new gel reading',/,
+' 22 = Join contigs',/,
+' 23 = Complement a contig',/,
+' 26 = Alter relationships',/,
+' 30 = Auto edit a contig',/,
+' 31 = Disassemble readings',/,
+' 32 = Extract gel readings')
END IF
WRITE(KBOUT,1010)
CALL GETOPT(KBIN,KOPT,NOPT)
IF((NOPT.LT.-3).OR.(NOPT.GT.MAXOPT).OR.(KOPT.GT.2)) THEN
MENU = 0
GO TO 1
END IF
IF((KOPT.EQ.2).AND.(NOPT.GE.0))THEN
CALL HELP2(IHELPS(NOPT),IHELPE(NOPT),HELPF,IDEVH,KBIN,KBOUT)
GO TO 1
END IF
IF(NOPT.EQ.0) THEN
MENU = 0
GO TO 1
END IF
IF(NOPT.LT.0) THEN
MENU = NOPT
GO TO 1
END IF
1010 FORMAT(
+' ? Option number=',$)
RETURN
END
SUBROUTINE DBMENU(MENU,NOPT,KOPT,IHELPS,IHELPE,HELPF,IDEVH,
+KBIN,KBOUT)
CHARACTER HELPF*(*)
INTEGER IHELPS,IHELPE
1 CONTINUE
IF(MENU.EQ.2)THEN
20 CONTINUE
CALL BPAUSE(KBIN,KBOUT,IOK)
WRITE(KBOUT,1002)
1002 FORMAT( ' Enter menu options are:',/,
+' ? = Help',/,
+' ! = Give up',/,
+' 3 = Complete entry',/,
+' 4 = Edit contig',/,
+' 5 = Display',/,
+' 6 = Edit new gel reading')
WRITE(KBOUT,1010)
CALL GETOPT(KBIN,KOPT,NOPT)
MAXOPT = 6
IF((NOPT.LT.0).OR.(NOPT.GT.MAXOPT).OR.(KOPT.GT.2)) THEN
GO TO 20
END IF
IF((KOPT.EQ.2).AND.(NOPT.GE.0))THEN
CALL HELP2(IHELPS,IHELPE,HELPF,IDEVH,KBIN,KBOUT)
GO TO 20
END IF
ELSE IF(MENU.EQ.3)THEN
30 CONTINUE
CALL BPAUSE(KBIN,KBOUT,IOK)
WRITE(KBOUT,1003)
1003 FORMAT( ' Join menu options are:'/
+' ? = Help',/,
+' ! = Give up',/,
+' 3 = Complete join',/,
+' 4 = Edit left contig',/,
+' 5 = Display join',/,
+' 6 = Edit right contig',/,
+' 7 = Move join')
WRITE(KBOUT,1010)
CALL GETOPT(KBIN,KOPT,NOPT)
MAXOPT = 7
IF((NOPT.LT.0).OR.(NOPT.GT.MAXOPT).OR.(KOPT.GT.2)) THEN
GO TO 30
END IF
IF((KOPT.EQ.2).AND.(NOPT.GE.0))THEN
CALL HELP2(IHELPS,IHELPE,HELPF,IDEVH,KBIN,KBOUT)
GO TO 30
END IF
ELSE IF(MENU.EQ.4)THEN
40 CONTINUE
CALL BPAUSE(KBIN,KBOUT,IOK)
WRITE(KBOUT,1004)
1004 FORMAT(' Alter relationships menu options are:'/
+' ? = Help',/,
+' ! = Quit',/,
+' 3 = Line change',/,
+' 4 = Check logical consistency',/,
+' 5 = Remove a contig',/,
+' 6 = Shift',/,
+' 7 = Move gel reading',/,
+' 8 = Rename gel reading',/,
+' 9 = Break a contig',/,
+' 10 = Remove a gel reading')
WRITE(KBOUT,1010)
CALL GETOPT(KBIN,KOPT,NOPT)
MAXOPT = 10
IF((NOPT.LT.0).OR.(NOPT.GT.MAXOPT).OR.(KOPT.GT.2)) THEN
GO TO 40
END IF
IF((KOPT.EQ.2).AND.(NOPT.GE.0))THEN
CALL HELP2(IHELPS,IHELPE,HELPF,IDEVH,KBIN,KBOUT)
GO TO 40
END IF
ELSE IF(MENU.EQ.5)THEN
50 CONTINUE
CALL BPAUSE(KBIN,KBOUT,IOK)
WRITE(KBOUT,1005)
1005 FORMAT(
+' Edit options are:',/,
+' ? = Help',/,
+' ! = Quit',/,
+' 3 = Insert',/,
+' 4 = Delete',/,
+' 5 = Change')
WRITE(KBOUT,1010)
CALL GETOPT(KBIN,KOPT,NOPT)
MAXOPT = 5
IF((NOPT.LT.0).OR.(NOPT.GT.MAXOPT).OR.(KOPT.GT.2)) THEN
GO TO 50
END IF
IF((KOPT.EQ.2).AND.(NOPT.GE.0))THEN
CALL HELP2(IHELPS,IHELPE,HELPF,IDEVH,KBIN,KBOUT)
GO TO 50
END IF
END IF
1010 FORMAT(
+' ? Option number=',$)
IF(NOPT.LE.0) GO TO 1
RETURN
END