|
|
1.1 ! root 1: .TH STRUCT 1 ! 2: .SH NAME ! 3: struct \- structure Fortran programs ! 4: .SH SYNOPSIS ! 5: .B struct ! 6: [ ! 7: .I option ... ! 8: ] ! 9: .I file ! 10: .SH DESCRIPTION ! 11: .LP ! 12: .I Struct ! 13: translates the Fortran program specified by ! 14: .I file ! 15: (standard input default) ! 16: into a Ratfor program. ! 17: Wherever possible, Ratfor control constructs ! 18: replace the original Fortran. ! 19: Statement numbers appear only where still necessary. ! 20: Cosmetic changes are made, including changing Hollerith strings ! 21: into quoted strings ! 22: and relational operators into symbols (e.g.\& ! 23: .L .GT. ! 24: into ! 25: .LR > ). ! 26: The output is appropriately indented. ! 27: .PP ! 28: The following options may occur in any order. ! 29: .TP ! 30: .B -s ! 31: Input uses standard Fortran comment and continuation conventions. ! 32: Normally input is in the form accepted by ! 33: .IR f77 (1) ! 34: .TP ! 35: .B -i ! 36: Do not turn computed goto statements into ! 37: switches. ! 38: (Ratfor does not turn switches back ! 39: into computed goto statements.) ! 40: .TP ! 41: .B -a ! 42: Turn sequences of else ifs into a ! 43: non-Ratfor switch of the form ! 44: .IP ! 45: .EX ! 46: switch ! 47: { case pred1: code ! 48: case pred2: code ! 49: case pred3: code ! 50: default: code ! 51: } ! 52: .EE ! 53: .IP ! 54: The case predicates are tested in order; ! 55: the code appropriate to only one case is executed. ! 56: This generalized form of switch statement does not ! 57: occur in Ratfor. ! 58: .TP ! 59: .B -b ! 60: Generate goto's instead of multilevel break statements. ! 61: .TP ! 62: .B -n ! 63: Generate goto's instead of multilevel next statements. ! 64: .TP ! 65: .BI -t n ! 66: Make ! 67: the nonzero integer ! 68: .I n ! 69: the lowest valued label in the output program ! 70: (default 10). ! 71: .TP ! 72: .BI -c n ! 73: Increment successive labels ! 74: in the output program ! 75: by the nonzero integer ! 76: .I n ! 77: (default 1). ! 78: .TP ! 79: .BI -e n ! 80: If ! 81: .I n ! 82: is 0 (default), ! 83: place code within a loop only if it can ! 84: lead to an iteration of the loop. ! 85: If ! 86: .I n ! 87: is nonzero, ! 88: admit a small code segment to a loop ! 89: if otherwise the loop would have exits to several places including the segment, ! 90: and the segment can be reached only from the loop. ! 91: `Small' is close to, but not equal to, the ! 92: number of statements in the code segment. ! 93: Values of ! 94: .I n ! 95: under 10 are suggested. ! 96: .SH FILES ! 97: .F /tmp/struct* ! 98: .br ! 99: .F /usr/lib/struct/* ! 100: .SH SEE ALSO ! 101: .IR f77 (1), ! 102: .IR ratfor (A) ! 103: .br ! 104: B. S. Baker, ! 105: `An Algorithm for Structuring Flowgraphs', ! 106: .I JACM ! 107: .B 24 ! 108: (1977) 376-391 ! 109: .SH BUGS ! 110: Struct knows Fortran 66 syntax, but not full Fortran 77. ! 111: .br ! 112: If an input Fortran program contains identifiers which ! 113: are reserved words in Ratfor, the structured ! 114: version of the program ! 115: will not be a valid Ratfor program. ! 116: .br ! 117: The labels generated cannot go above 32767. ! 118: .br ! 119: If you get a goto without a target, try ! 120: .BR -e .
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.