;ELC   
;;; Compiled by rms@psilocin.ai.mit.edu on Mon May 25 13:48:52 1998
;;; from file /gd/gnu/emacs/lisp/progmodes/f90.el
;;; in Emacs version 20.2.93.16
;;; with bytecomp version 2.45
;;; with all optimizations.

;;; This file uses dynamic docstrings, first added in Emacs 19.29.
(if (and (boundp 'emacs-version)
	 (< (aref emacs-version (1- (length emacs-version))) ?A)
	 (or (and (boundp 'epoch::version) epoch::version)
	     (string-lessp emacs-version "19.29")))
    (error "`f90.el' was compiled for Emacs 19.29 or later"))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


#@44 Address of mailing list for F90 mode bugs.
(defconst bug-f90-mode "T.Einarsson@clab.ericsson.se" (#$ . 605))
(byte-code "\302\303\304\305\306%\210\302\307\304\310	\311\303&\207" [:group :prefix custom-declare-group f90 nil "Fortran-90 mode" fortran f90-indent "Fortran-90 indentation" "f90-"] 8)
#@42 *Extra indentation applied to DO blocks.
(custom-declare-variable 'f90-do-indent '3 '(#$ . -910) :type 'integer :group 'f90-indent)
#@73 *Extra indentation applied to IF, SELECT CASE, WHERE and FORALL blocks.
(custom-declare-variable 'f90-if-indent '3 '(#$ . -1048) :type 'integer :group 'f90-indent)
#@70 *Extra indentation applied to TYPE, INTERFACE and BLOCK DATA blocks.
(custom-declare-variable 'f90-type-indent '3 '(#$ . -1218) :type 'integer :group 'f90-indent)
#@74 *Extra indentation applied to PROGRAM/MODULE/SUBROUTINE/FUNCTION blocks.
(custom-declare-variable 'f90-program-indent '2 '(#$ . -1387) :type 'integer :group 'f90-indent)
#@55 *Extra indentation applied to F90 continuation lines.
(custom-declare-variable 'f90-continuation-indent '5 '(#$ . -1563) :type 'integer :group 'f90-indent)
#@76 *String inserted by \[f90-comment-region] at start of each line in region.
(custom-declare-variable 'f90-comment-region '"!!$" '(#$ . -1725) :type 'string :group 'f90-indent)
#@57 *Regexp saying which comments to be indented like code.
(custom-declare-variable 'f90-indented-comment-re '"!" '(#$ . -1906) :type 'regexp :group 'f90-indent)
#@71 *Regexp of comment-like directive like "!HPF\\$", not to be indented.
(custom-declare-variable 'f90-directive-comment-re '"!hpf\\$" '(#$ . -2071) :type 'regexp :group 'f90-indent)
#@70 *t makes automatic insertion of & at beginning of continuation line.
(custom-declare-variable 'f90-beginning-ampersand 't '(#$ . -2257) :type 'boolean :group 'f90)
#@180 *From an END statement, check and fill the end using matching block start.
Allowed values are 'blink, 'no-blink, and nil, which determine
whether to blink the matching beginning.
(custom-declare-variable 'f90-smart-end ''blink '(#$ . -2428) :type '(choice (const blink) (const no-blink) (const nil)) :group 'f90)
#@66 *Regexp holding list of delimiters at which lines may be broken.
(custom-declare-variable 'f90-break-delimiters '"[-+\\*/><=,% 	]" '(#$ . -2747) :type 'regexp :group 'f90)
#@70 *Non-nil causes `f90-do-auto-fill' to break lines before delimiters.
(custom-declare-variable 'f90-break-before-delimiters 't '(#$ . -2925) :type 'boolean :group 'f90)
#@114 *Automatic case conversion of keywords.
  The options are 'downcase-word, 'upcase-word, 'capitalize-word and nil
(custom-declare-variable 'f90-auto-keyword-case 'nil '(#$ . -3100) :type '(choice (const downcase-word) (const upcase-word) (const capitalize-word) (const nil)) :group 'f90)
#@36 *If nil, left-justify linenumbers.
(custom-declare-variable 'f90-leave-line-no 'nil '(#$ . -3393) :type 'boolean :group 'f90)
#@68 *Non-nil displays a startup message when F90 mode is first called.
(custom-declare-variable 'f90-startup-message 't '(#$ . -3525) :type 'boolean :group 'f90)
#@26 Regexp for F90 keywords.
(defconst f90-keywords-re "\\<\\(a\\(llocat\\(able\\|e\\)\\|ssign\\(\\|ment\\)\\)\\|b\\(ackspace\\|lock\\)\\|c\\(a\\(ll\\|se\\)\\|haracter\\|lose\\|o\\(m\\(mon\\|plex\\)\\|nt\\(ains\\|inue\\)\\)\\|ycle\\)\\|d\\(ata\\|eallocate\\|imension\\|o\\(\\|uble\\)\\)\\|e\\(lse\\(\\|if\\|where\\)\\|n\\(d\\(\\|do\\|file\\|if\\)\\|try\\)\\|quivalence\\|x\\(it\\|ternal\\)\\)\\|f\\(or\\(all\\|mat\\)\\|unction\\)\\|goto\\|i\\(f\\|mplicit\\|n\\(clude\\|quire\\|t\\(e\\(ger\\|nt\\|rface\\)\\|rinsic\\)\\)\\)\\|logical\\|module\\|n\\(amelist\\|one\\|ullify\\)\\|o\\(nly\\|p\\(en\\|erator\\|tional\\)\\)\\|p\\(a\\(rameter\\|use\\)\\|ointer\\|r\\(ecision\\|i\\(nt\\|vate\\)\\|o\\(cedure\\|gram\\)\\)\\|ublic\\)\\|re\\(a[dl]\\|cursive\\|sult\\|turn\\|wind\\)\\|s\\(ave\\|e\\(lect\\|quence\\)\\|top\\|ubroutine\\)\\|t\\(arget\\|hen\\|ype\\)\\|use\\|w\\(h\\(ere\\|ile\\)\\|rite\\)\\)\\>" (#$ . 3689))
#@42 Keyword-regexp for font-lock level >= 3.
(defconst f90-keywords-level-3-re "\\<\\(a\\(llocat\\(able\\|e\\)\\|ssign\\(\\|ment\\)\\)\\|backspace\\|close\\|d\\(eallocate\\|imension\\)\\|e\\(n\\(dfile\\|try\\)\\|quivalence\\|xternal\\)\\|in\\(quire\\|t\\(ent\\|rinsic\\)\\)\\|nullify\\|o\\(nly\\|p\\(en\\|erator\\|tional\\)\\)\\|p\\(a\\(rameter\\|use\\)\\|ointer\\|ri\\(nt\\|vate\\)\\|ublic\\)\\|re\\(ad\\|cursive\\|sult\\|wind\\)\\|s\\(ave\\|e\\(lect\\|quence\\)\\)\\|target\\|write\\)\\>" (#$ . 4601))
#@59 Regexp whose first part matches F90 intrinsic procedures.
(defconst f90-procedures-re "\\<\\(a\\(bs\\|c\\(har\\|os\\)\\|djust[lr]\\|i\\(mag\\|nt\\)\\|ll\\(\\|ocated\\)\\|n\\(int\\|y\\)\\|s\\(in\\|sociated\\)\\|tan2?\\)\\|b\\(it_size\\|test\\)\\|c\\(eiling\\|har\\|mplx\\|o\\(njg\\|sh?\\|unt\\)\\|shift\\)\\|d\\(ate_and_time\\|ble\\|i\\(gits\\|m\\)\\|ot_product\\|prod\\)\\|e\\(oshift\\|psilon\\|xp\\(\\|onent\\)\\)\\|f\\(loor\\|raction\\)\\|huge\\|i\\(a\\(char\\|nd\\)\\|b\\(clr\\|its\\|set\\)\\|char\\|eor\\|n\\(dex\\|t\\)\\|or\\|shftc?\\)\\|kind\\|l\\(bound\\|en\\(\\|_trim\\)\\|g[et]\\|l[et]\\|og\\(\\|10\\|ical\\)\\)\\|m\\(a\\(tmul\\|x\\(\\|exponent\\|loc\\|val\\)\\)\\|erge\\|in\\(\\|exponent\\|loc\\|val\\)\\|od\\(\\|ulo\\)\\|vbits\\)\\|n\\(earest\\|int\\|ot\\)\\|p\\(ack\\|r\\(e\\(cision\\|sent\\)\\|oduct\\)\\)\\|r\\(a\\(dix\\|n\\(dom_\\(number\\|seed\\)\\|ge\\)\\)\\|e\\(peat\\|shape\\)\\|rspacing\\)\\|s\\(ca\\(le\\|n\\)\\|e\\(lected_\\(int_kind\\|real_kind\\)\\|t_exponent\\)\\|hape\\|i\\(gn\\|nh?\\|ze\\)\\|p\\(acing\\|read\\)\\|qrt\\|um\\|ystem_clock\\)\\|t\\(anh?\\|iny\\|r\\(ans\\(fer\\|pose\\)\\|im\\)\\)\\|u\\(bound\\|npack\\)\\|verify\\)[ 	]*(" (#$ . 5107))
#@38 Regexp matching intrinsic operators.
(defconst f90-operators-re "\\.\\(and\\|eqv?\\|false\\|g[et]\\|l[et]\\|n\\(e\\(\\|qv\\)\\|ot\\)\\|or\\|true\\)\\." (#$ . 6289))
#@57 Regexp for all HPF keywords, procedures and directives.
(defconst f90-hpf-keywords-re "\\<\\(a\\(l\\(ign\\|l_\\(prefix\\|s\\(catter\\|uffix\\)\\)\\)\\|ny_\\(prefix\\|s\\(catter\\|uffix\\)\\)\\)\\|block\\|c\\(o\\(py_\\(prefix\\|s\\(catter\\|uffix\\)\\)\\|unt_\\(prefix\\|s\\(catter\\|uffix\\)\\)\\)\\|yclic\\)\\|d\\(istribute\\|ynamic\\)\\|extrinsic\\|grade_\\(down\\|up\\)\\|hpf_\\(alignment\\|distribution\\|template\\)\\|i\\(a\\(ll\\(\\|_\\(prefix\\|s\\(catter\\|uffix\\)\\)\\)\\|ny\\(\\|_\\(prefix\\|s\\(catter\\|uffix\\)\\)\\)\\)\\|len\\|n\\(dependent\\|herit\\)\\|parity\\(\\|_\\(prefix\\|s\\(catter\\|uffix\\)\\)\\)\\)\\|leadz\\|m\\(axval_\\(prefix\\|s\\(catter\\|uffix\\)\\)\\|inval_\\(prefix\\|s\\(catter\\|uffix\\)\\)\\)\\|n\\(ew\\|umber_of_processors\\)\\|onto\\|p\\(arity\\(\\|_\\(prefix\\|s\\(catter\\|uffix\\)\\)\\)\\|op\\(cnt\\|par\\)\\|ro\\(cessors\\(\\|_shape\\)\\|duct_\\(prefix\\|s\\(catter\\|uffix\\)\\)\\)\\|ure\\)\\|re\\(align\\|distribute\\)\\|sum_\\(prefix\\|s\\(catter\\|uffix\\)\\)\\|template\\|with\\)\\>" (#$ . 6460))
#@71 This does fairly subdued highlighting of comments and function calls.
(defvar f90-font-lock-keywords-1 (list '("\\<\\(end[ 	]*\\(program\\|module\\|function\\|subroutine\\|type\\)\\)\\>[ 	]*\\(\\sw+\\)?" (1 font-lock-keyword-face) (3 font-lock-function-name-face nil t)) '("\\<\\(program\\|call\\|module\\|subroutine\\|function\\|use\\)\\>[ 	]*\\(\\sw+\\)?" (1 font-lock-keyword-face) (2 font-lock-function-name-face nil t)) '("\\<\\(module[ 	]*procedure\\)\\>" (1 font-lock-keyword-face t)) '("\\<\\(type\\)[ 	]*\\(,.*::[ 	]*\\|[ 	]+\\)\\(\\sw+\\)" (1 font-lock-keyword-face) (3 font-lock-function-name-face)) "\\<\\(\\(end[ 	]*\\)?\\(interface\\|block[ 	]*data\\)\\|contains\\)\\>") (#$ . 7511))
#@59 Highlights declarations, do-loops and other constructions
(defvar f90-font-lock-keywords-2 (byte-code "\301\302\303\304\305\306\307\310\311\312\313\314\257\"\207" [f90-font-lock-keywords-1 append ("^[ 	0-9]*\\(real\\|integer\\|c\\(haracter\\|omplex\\)\\|logical\\|type[ 	]*(\\sw+)\\)\\(.*::\\|[ 	]*(.*)\\)?\\([^!\n]*\\)" (1 font-lock-type-face) (4 font-lock-variable-name-face)) ("\\<\\(end[ 	]*\\(do\\|if\\|select\\|forall\\|where\\)\\)\\>\\([ 	]+\\(\\sw+\\)\\)?" (1 font-lock-keyword-face) (3 font-lock-constant-face nil t)) ("^[ 	0-9]*\\(\\(\\sw+\\)[ 	]*:[ 	]*\\)?\\(\\(if\\|do\\([ 	]*while\\)?\\|select[ 	]*case\\|where\\|forall\\)\\)\\>" (2 font-lock-constant-face nil t) (3 font-lock-keyword-face)) ("\\<\\(implicit\\)[ 	]*\\(real\\|integer\\|c\\(haracter\\|omplex\\)\\|logical\\|type[ 	]*(\\sw+)\\|none\\)\\>" (1 font-lock-keyword-face) (2 font-lock-type-face)) ("\\<\\(namelist\\|common\\)[ 	]*/\\(\\sw+\\)?/" (1 font-lock-keyword-face) (2 font-lock-constant-face nil t)) "\\<else\\([ 	]*if\\|where\\)?\\>" "\\<\\(then\\|continue\\|format\\|include\\|stop\\|return\\)\\>" ("\\<\\(exit\\|cycle\\)[ 	]*\\(\\sw+\\)?\\>" (1 font-lock-keyword-face) (2 font-lock-constant-face nil t)) ("\\<\\(case\\)[ 	]*\\(default\\|(\\)" . 1) ("\\<\\(do\\|go *to\\)\\>[ 	]*\\([0-9]+\\)" (1 font-lock-keyword-face) (2 font-lock-constant-face)) ("^[ 	]*\\([0-9]+\\)[ 	]*[a-z]+" (1 font-lock-constant-face t))] 13) (#$ . 8215))
#@55 Highlights all F90 keywords and intrinsic procedures.
(defvar f90-font-lock-keywords-3 (byte-code "\305	\n\306\307\"\203 \305\fC\310\"\202 \f\311D\312F\"\207" [f90-font-lock-keywords-2 f90-keywords-level-3-re f90-operators-re emacs-version f90-procedures-re append string-match "XEmacs" (1 font-lock-keyword-face t) (1 font-lock-keyword-face t) "\\<real\\>"] 7) (#$ . 9636))
#@38 Highlights all F90 and HPF keywords.
(defvar f90-font-lock-keywords-4 (byte-code "\302	C\"\207" [f90-font-lock-keywords-3 f90-hpf-keywords-re append] 3) (#$ . 10021))
#@48 *Default expressions to highlight in F90 mode.
(defvar f90-font-lock-keywords f90-font-lock-keywords-2 (#$ . -10195))
#@42 Syntax table in use in F90 mode buffers.
(defvar f90-mode-syntax-table nil (#$ . 10319))
(byte-code "\204U \301 \302\303\304#\210\302\305\306#\210\302\307\310#\210\302\311\312#\210\302\313\312#\210\302\314\310#\210\302\315\316#\210\302\317\320#\210\302\321\320#\210\302\322\320#\210\302\323\320#\210\302\324\320#\210\302\325\326#\210\301\207" [f90-mode-syntax-table make-syntax-table modify-syntax-entry 33 "<" 10 ">" 95 "w" 39 "\"" 34 96 13 " " 43 "." 45 61 42 47 92 "/"] 4)
#@26 Keymap used in F90 mode.
(defvar f90-mode-map nil (#$ . 10816))
(byte-code "\204 \306 \307\310\311#\210\307\312\313#\210\307\314\315#\210\307\316\317#\210\307\320\321#\210\307\322\323#\210\307\324\325#\210\307\326\327#\210\307\330\331#\210\307\332\333#\210\307\334\335#\210\307\336\337#\210\307\340\341#\210\307\342\343#\210\307\344\345#\210\307\346\347#\210\307\350\347#\210\307\351\347#\210\307\352\347#\210\307\353\347#\210\354\355	\"\203\233 \356\302!\204\216 \357\302B\360\302\361\362#\210\202\324\356\305!\204\306\363!\307\f\364\365\366B#\210\360\366\367\370#\210\307\f\371\372\373B#\210\360\373\367\370#\210\307\f\374\375\376B#\210\360\376\367\370#\210\307\f\377\201J C#\210\307\f\201K \201L \201M B#\210\307\f\201N \201O \201P B#\210\307\f\201Q \201R \201S B#\210\f)\305B\360\305\361\201T #\210\201U \305\"\210\201U \201V \201W \"\210\201U \201X \201W \"\210\360\201V \367\201W #\210\360\201X \367\201Y #\210\201Z \201[ M\210\201\\ \201] M\210\201^ \201_ M\210\201` \201a M\210\356\201@ !\204\323\306\201b !\307\f\201c \201d \201` B#\210\307\f\201e \201f \201^ B#\210\307\f\201g \201h \201\\ B#\210\307\f\201i \201j \201Z B#\210\307\f\201k \201J C#\210\307\f\201l \201m \201V B#\210\307\f\201n \201o \201X B#\210\f)@\201@ B\360\201@ \361\201p #\210\201U \201@ @\"\210\307\201q \306 #\210\307\201r \201s \306\201t !B#\210\307\201u \201v #\210\307\201w \201x #\210\307\201y \201z #\210\307\201{ \201| #\210\307\201} \363\305B#\210\307\201~ \201 \201@ B#\210\307\201\200 \201\201 #\210\307\201\202 \201\203 #\210\307\201\204 \201\205 #\210\307\201\206 \201\207 #\210\307\201\210 \201\211 #\210\307\201\212 \201\213 #\210\360\335\367\370#\210\307\201\214 \201\215 #\210\307\201\216 \201\217 #\210\360\313\367\370#\210\307\201\220 \201\221 #\210\307\201\222 \201\223 #\210\307\201\224 \201\225 #\210\307\201\226 \201\227 #\210\307\201\230 \201\231 #\210\201\232 A\201A B\201\233 B\201B B\201\234 C\201C B\201\235 D\201D B\201\236 E\201E B\201\237 F\201F B\201\240 G\201G B\356\201H !\204.\201\241 H\201H B\201\242 \201H !\210\356\201I !\204I\201\241 I\201I B\201\242 \201I !\207" [f90-mode-map emacs-version f90-xemacs-menu current-load-list map f90-change-case-menu make-sparse-keymap define-key "`" f90-abbrev-start ";" f90-comment-region "\201" f90-beginning-of-subprogram "\205" f90-end-of-subprogram "\210" f90-mark-subprogram "\221" f90-indent-subprogram "\n" f90-indent-new-line "" newline "" f90-break-line "" f90-join-lines "" f90-fill-region "" f90-previous-statement "" f90-next-statement "" f90-insert-end "	" f90-indent-line "," f90-electric-insert "+" "-" "*" "/" string-match "XEmacs" boundp ("F90" ["Indent Subprogram" f90-indent-subprogram t] ["Mark Subprogram" f90-mark-subprogram t] ["Beginning of Subprogram" f90-beginning-of-subprogram t] ["End of Subprogram" f90-end-of-subprogram t] "-----" ["(Un)Comment Region" f90-comment-region t] ["Indent Region" indent-region t] ["Fill Region" f90-fill-region t] "-----" ["Break Line at Point" f90-break-line t] ["Join with Next Line" f90-join-lines t] ["Insert Newline" newline t] ["Insert Block End" f90-insert-end t] "-----" ["Upcase Keywords (buffer)" f90-upcase-keywords t] ["Upcase Keywords (region)" f90-upcase-region-keywords t] ["Capitalize Keywords (buffer)" f90-capitalize-keywords t] ["Capitalize Keywords (region)" f90-capitalize-region-keywords t] ["Downcase Keywords (buffer)" f90-downcase-keywords t] ["Downcase Keywords (region)" f90-downcase-region-keywords t] "-----" ["Toggle abbrev-mode" abbrev-mode t] ["Toggle auto-fill" auto-fill-mode t]) put variable-documentation "XEmacs menu for F90 mode." "Change Keyword Case" [dkr] "Downcase Keywords (region)" f90-downcase-region-keywords menu-enable mark-active [ckr] "Capitalize Keywords (region)" f90-capitalize-region-keywords [ukr] "Upcase Keywords (region)" f90-upcase-region-keywords [line] f90-font-lock-menu f90-blocks-re f90-program-block-re f90-else-like-re f90-end-if-re f90-end-type-re f90-type-def-re f90-no-break-re f90-cache-position f90-imenu "-----------------" [dkb] "Downcase Keywords (buffer)" f90-downcase-keywords [ckb] "Capitalize Keywords (buffer)" f90-capitalize-keywords [ukb] "Upcase Keywords (buffer)" f90-upcase-keywords "Submenu for change of case." defalias f90-font-lock-on font-lock-mode f90-font-lock-off (not font-lock-mode) f90-font-lock-1 #[nil "\302\303!\210\304 \207" [f90-font-lock-keywords-1 font-lock-keywords font-lock-mode 1 font-lock-fontify-buffer] 2 nil nil] f90-font-lock-2 #[nil "\302\303!\210\304 \207" [f90-font-lock-keywords-2 font-lock-keywords font-lock-mode 1 font-lock-fontify-buffer] 2 nil nil] f90-font-lock-3 #[nil "\302\303!\210\304 \207" [f90-font-lock-keywords-3 font-lock-keywords font-lock-mode 1 font-lock-fontify-buffer] 2 nil nil] f90-font-lock-4 #[nil "\302\303!\210\304 \207" [f90-font-lock-keywords-4 font-lock-keywords font-lock-mode 1 font-lock-fontify-buffer] 2 nil nil] "f90-font-lock-menu" [h4] "Maximum highlighting (level 4)" [h3] "Heavy highlighting (level 3)" [h2] "Default highlighting (level 2)" [h1] "Light highlighting (level 1)" [line] [floff] "Turn off font-lock-mode" [flon] "Turn on font-lock-mode" "Submenu for highlighting using font-lock-mode." [menu-bar] [menu-bar f90] "F90" "f90" [menu-bar f90 f90-imenu-menu] ("Add imenu Menu" . f90-add-imenu-menu) [menu-bar f90 abbrev-mode] ("Toggle abbrev-mode" . abbrev-mode) [menu-bar f90 auto-fill-mode] ("Toggle auto-fill" . auto-fill-mode) [menu-bar f90 line1] ("----") [menu-bar f90 f90-change-case-menu] [menu-bar f90 f90-font-lock-menu] "Highlighting" [menu-bar f90 line2] ("----") [menu-bar f90 f90-insert-end] ("Insert Block End" . f90-insert-end) [menu-bar f90 f90-join-lines] ("Join with Next Line" . f90-join-lines) [menu-bar f90 f90-break-line] ("Break Line at Point" . f90-break-line) [menu-bar f90 line3] ("----") [menu-bar f90 f90-fill-region] ("Fill Region" . f90-fill-region) [menu-bar f90 indent-region] ("Indent Region" . indent-region) [menu-bar f90 f90-comment-region] ("(Un)Comment Region" . f90-comment-region) [menu-bar f90 line4] ("----") [menu-bar f90 f90-end-of-subprogram] ("End of Subprogram" . f90-end-of-subprogram) [menu-bar f90 f90-beginning-of-subprogram] ("Beginning of Subprogram" . f90-beginning-of-subprogram) [menu-bar f90 f90-mark-subprogram] ("Mark Subprogram" . f90-mark-subprogram) [menu-bar f90 f90-indent-subprogram] ("Indent Subprogram" . f90-indent-subprogram) "\\(block[ 	]*data\\|do\\|if\\|interface\\|function\\|module\\|program\\|select\\|subroutine\\|type\\|where\\|forall\\)\\>" "\\(program\\|module\\|subroutine\\|function\\)" "\\(else\\([ 	]*if\\|where\\)?\\|case[ 	]*\\(default\\|(\\)\\)" "end[ 	]*\\(if\\|select\\|where\\|forall\\)\\>" "end[ 	]*\\(type\\|interface\\|block[ 	]*data\\)" "\\<\\(type\\)[ 	]*\\(,.*::[ 	]*\\|[ 	]+\\)\\(\\sw+\\)" "\\(\\*\\*\\|//\\|=>\\)" nil make-variable-buffer-local] 6)
#@40 imenu generic expression for F90 mode.
(defvar f90-imenu-generic-expression (byte-code "\304\305\306\307\310\311\312\313\314\315\316\n\211\317	\317\211\320\317\321\321\320\322\260\323EF,\207" [not-d not-n not-e good-char "[^!\"&\n 	]" "[^e!\n\"& 	]" "[^n!\n\"& 	]" "[^d!\n\"& 	]" (nil "^[ 	0-9]*program[ 	]+\\(\\sw+\\)" 1) ("Modules" "^[ 	0-9]*module[ 	]+\\(\\sw+\\)[ 	]*\\(!\\|$\\)" 1) ("Types" "^[ 	0-9]*type[ 	]+\\(\\sw+\\)" 1) "Procedures" "^[ 	0-9]*" "\\(" "[^!\"&\n]*\\(" "\\|" "\\)" "?" "[ 	]*\\(function\\|subroutine\\)[ 	]+\\(\\sw+\\)" 4] 26) (#$ . 17758))
(defalias 'f90-add-imenu-menu #[nil "\204 \301\302!\210\303\304 !\210\305\211\207\306\307\310\"\207" [f90-imenu imenu-add-to-menubar "F90-imenu" redraw-frame selected-frame t message "%s" "F90-imenu already exists."] 3 nil nil])
(byte-code "\304\305\306\307#\210\310\300!\204 \311\300	B\204\377\n\312\300\311\"\210\313\314\315\311$\210\313\316\317\311$\210\313\320\321\311$\210\313\322\323\311$\210\313\324\325\311$\210\313\326\327\311$\210\313\330\331\311$\210\313\332\333\311$\210\313\334\335\311$\210\313\336\337\311$\210\313\340\341\311$\210\313\342\343\311$\210\313\344\345\311$\210\313\346\347\311$\210\313\350\351\311$\210\313\352\353\311$\210\313\354\355\311$\210\313\356\357\311$\210\313\360\361\311$\210\313\362\363\311$\210\313\364\365\311$\210\313\366\367\311$\210\313\370\371\311$\210\313\372\373\311$\210\313\374\375\311$\210\313\376\377\311$\210\313\201@ \201A \311$\210\313\201B \201C \311$\210\313\201D \201E \311$\210\313\201F \201G \311$\210\313\201H \201I \311$\210\313\201J \201K \311$\210\313\201L \201M \311$\210\313\201N \201O \311$\210\313\201P \201Q \311$\210\313\201R \201S \311$\210\313\201T \201U \311$\210\313\201V \201W \311$\210\313\201X \201Y \311$\210\313\201Z \201[ \311$\210\313\201\\ \201] \311$\210\313\201^ \201_ \311$\210\313\201` \201a \311$\210\313\201b \201c \311$\210\313\201d \201e \311$\210\313\201f \201g \311$\210\313\201h \201i \311$\210\313\201j \201k \311$\210\313\201l \201m \311$\210\313\201n \201o \311$\210\313\201p \201q \311$\210\313\201r \201s \311$\210\313\201t \201u \311$\210)\311\207" [f90-mode-abbrev-table current-load-list abbrevs-changed ac put f90-add-imenu-menu menu-enable (not f90-imenu) boundp nil define-abbrev-table define-abbrev "`al" "allocate" "`ab" "allocatable" "`as" "assignment" "`ba" "backspace" "`bd" "block data" "`c" "character" "`cl" "close" "`cm" "common" "`cx" "complex" "`cn" "contains" "`cy" "cycle" "`de" "deallocate" "`df" "define" "`di" "dimension" "`dw" "do while" "`el" "else" "`eli" "else if" "`elw" "elsewhere" "`eq" "equivalence" "`ex" "external" "`ey" "entry" "`fl" "forall" "`fo" "format" "`fu" "function" "`fa" ".false." "`im" "implicit none" "`in " "include" "`i" "integer" "`it" "intent" "`if" "interface" "`lo" "logical" "`mo" "module" "`na" "namelist" "`nu" "nullify" "`op" "optional" "`pa" "parameter" "`po" "pointer" "`pr" "print" "`pi" "private" "`pm" "program" "`pu" "public" "`r" "real" "`rc" "recursive" "`rt" "return" "`rw" "rewind" "`se" "select" "`sq" "sequence" "`su" "subroutine" "`ta" "target" "`tr" ".true." "`t" "type" "`wh" "where" "`wr" "write"] 5)
#@2320 Major mode for editing Fortran 90 code in free format.

\[f90-indent-new-line] corrects current indentation and creates new indented line.
\[f90-indent-line] indents the current line correctly. 
\[f90-indent-subprogram] indents the current subprogram. 

Type `? or `\[help-command] to display a list of built-in abbrevs for F90 keywords.

Key definitions:
\{f90-mode-map}

Variables controlling indentation style and extra features:

 f90-do-indent
    Extra indentation within do blocks.  (default 3)
 f90-if-indent
    Extra indentation within if/select case/where/forall blocks. (default 3)
 f90-type-indent
    Extra indentation within type/interface/block-data blocks.  (default 3)
 f90-program-indent
    Extra indentation within program/module/subroutine/function blocks.
      (default 2)
 f90-continuation-indent
    Extra indentation applied to continuation lines.  (default 5)
 f90-comment-region
    String inserted by \[f90-comment-region] at start of each line in 
    region.  (default "!!!$")
 f90-indented-comment-re
    Regexp determining the type of comment to be intended like code.
    (default "!")
 f90-directive-comment-re
    Regexp of comment-like directive like "!HPF\\$", not to be indented.
    (default "!hpf\\$")
 f90-break-delimiters
    Regexp holding list of delimiters at which lines may be broken.
    (default "[-+*/><=,% \t]")
 f90-break-before-delimiters
    Non-nil causes `f90-do-auto-fill' to break lines before delimiters.
    (default t)
 f90-beginning-ampersand 
    Automatic insertion of & at beginning of continuation lines. (default t)
 f90-smart-end 
    From an END statement, check and fill the end using matching block start.
    Allowed values are 'blink, 'no-blink, and nil, which determine
    whether to blink the matching beginning.) (default 'blink)
 f90-auto-keyword-case
    Automatic change of case of keywords. (default nil)
    The possibilities are 'downcase-word, 'upcase-word, 'capitalize-word.
 f90-leave-line-no
    Do not left-justify line numbers. (default nil)
 f90-startup-message
    Set to nil to inhibit message first time F90 mode is used. (default t)
 f90-keywords-re
    List of keywords used for highlighting/upcase-keywords etc.

Turning on F90 mode calls the value of the variable `f90-mode-hook'
with no args, if that value is non-nil.
(defalias 'f90-mode #[nil "\306 \210\307\310\n\311\f!\210\312!\210\313\314!\210\315\f\313\316!\210\317\313\320!\210\321\313\322!\210\323\313\324!\210\325\313\326!\210\327\313\330!\210\321\313\331!\210\332\333,\334\335-\"\203 \336\307\337\321#\210.\203t \340\310.\"\204t \341\342.!!\210\343\333/\"\210\313\344!\2100$\202\221 \313\345!\210\346%\3211\313\347!\2102'\350\351!\2103\203\240 \352\3534\"\210\333\2113\207" [major-mode mode-name f90-mode-abbrev-table local-abbrev-table f90-mode-syntax-table f90-mode-map kill-all-local-variables f90-mode "F90" set-syntax-table use-local-map make-local-variable indent-line-function f90-indent-line indent-region-function f90-indent-region require-final-newline t comment-start "!" comment-start-skip "!+ *" comment-indent-function f90-comment-indent abbrev-all-caps normal-auto-fill-function f90-do-auto-fill nil string-match "XEmacs" put font-lock-keywords-case-fold-search assoc set-buffer-menubar copy-sequence add-submenu font-lock-keywords font-lock-defaults (f90-font-lock-keywords nil t) imenu-generic-expression run-hooks f90-mode-hook message "Emacs F90 mode; please report bugs to %s" indent-tabs-mode emacs-version current-menubar f90-xemacs-menu f90-font-lock-keywords imenu-case-fold-search f90-imenu-generic-expression f90-startup-message bug-f90-mode] 4 (#$ . 20977) nil])
(defalias 'f90-get-beg-of-line #[nil "\212\300y\210`)\207" [0] 1])
(put 'f90-get-beg-of-line 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'f90-get-end-of-line #[nil "\212\300\210`)\207" [nil] 1])
(put 'f90-get-end-of-line 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'f90-in-string #[nil "\203 `V\203 \202 e\302\303	`\"8)\207" [f90-cache-position beg-pnt 3 parse-partial-sexp] 4])
(put 'f90-in-string 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'f90-in-comment #[nil "\203 `V\203 \202 e\302\303	`\"8)\207" [f90-cache-position beg-pnt 4 parse-partial-sexp] 4])
(put 'f90-in-comment 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'f90-line-continued #[nil "\212\212\303y\210`)\304\210	\203 `	V\203 	\202 e\305\306\n`\"8)\2031 \307\310\"\210\310\304x\210\202 \311\304x\210h\312U*\207" [bol f90-cache-position beg-pnt 0 nil 4 parse-partial-sexp search-backward "!" " 	" 38] 4])
(put 'f90-line-continued 'byte-optimizer 'byte-compile-inline-expand)
#@88 Return indentation of current line.
Line-numbers are considered whitespace characters.
(defalias 'f90-current-indentation #[nil "\212\300y\210\301\302w\210i)\207" [0 " 	0-9" nil] 2 (#$ . 25674)])
(put 'f90-current-indentation 'byte-optimizer 'byte-compile-inline-expand)
#@93 Indent current line to column COL.
If no-line-number nil, jump over a possible line-number.
(defalias 'f90-indent-to #[(col &optional no-line-number) "\302y\210\204 \303\304w\210\305 \210i\302U\203 	j\207\306	\307\"\207" [no-line-number col 0 " 	0-9" nil delete-horizontal-space indent-to 1] 3 (#$ . 25951)])
(put 'f90-indent-to 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'f90-match-piece #[(arg) "\224\205\n \224\225{\207" [arg] 2])
(put 'f90-match-piece 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'f90-get-present-comment-type #[nil "\212\304\212\304\210`)\n\203 `\nV\203 \n\202 e\305\306`\"8)\203T \307y\210\310\311\"\210\n\203: `\nV\203: \n\202; e\312\306`\"8)\203N \310\311\"\210\202, \307\224\307\225{	+\207" [eol type f90-cache-position beg-pnt nil 4 parse-partial-sexp 0 re-search-forward "[!]+" 3] 4])
(put 'f90-get-present-comment-type 'byte-optimizer 'byte-compile-inline-expand)
#@61 Compare strings neglecting case and allowing for nil value.
(defalias 'f90-equal-symbols #[(a b) "\205 \227	\205\f 	\227\211\n\232*\207" [a b b-local a-local] 3 (#$ . 26891)])
(put 'f90-equal-symbols 'byte-optimizer 'byte-compile-inline-expand)
#@101 Return ("do" name) if a do statement starts after point.
Name is nil if the statement has no label.
(defalias 'f90-looking-at-do #[nil "\303\304!\205. \305\306\306\224\205 \224\225{)\303\307!\203* \310\310\224\205( \224\225{)	\n*D\207" [arg struct label looking-at "\\(\\(\\sw+\\)[ 	]*:\\)?[ 	]*\\(do\\)\\>" nil 3 "\\(\\sw+\\)[ 	]*:" 1] 3 (#$ . 27148)])
(put 'f90-looking-at-do 'byte-optimizer 'byte-compile-inline-expand)
#@114 Return ("select" name) if a select-case statement starts after point.
Name is nil if the statement has no label.
(defalias 'f90-looking-at-select-case #[nil "\303\304!\205. \305\306\306\224\205 \224\225{)\303\307!\203* \310\310\224\205( \224\225{)	\n*D\207" [arg struct label looking-at "\\(\\(\\sw+\\)[ 	]*:\\)?[ 	]*\\(select\\)[ 	]*case[ 	]*(" nil 3 "\\(\\sw+\\)[ 	]*:" 1] 3 (#$ . 27588)])
(put 'f90-looking-at-select-case 'byte-optimizer 'byte-compile-inline-expand)
#@110 Return ("if" name) if an if () then statement starts after point.
Name is nil if the statement has no label.
(defalias 'f90-looking-at-if-then #[nil "\212\306\211\307\310!\205\223 \311\311\224\205 \n\224\n\225{)\307\312!\203- \313\313\224\205+ \n\224\n\225{)\314`\313\315#\211\203: b\210)\316\306w\210\307\317!\204\220 \212\212\315y\210`)\306\210\203^ `V\203^ \202_ e\320\321`\"8)\203x \322\323\f\"\210\323\306x\210\202P \316\306x\210h\324U*\205\223 \325 \210\326\306w\210\307\317!\205\223 	D+\207" [label struct arg pos bol f90-cache-position nil looking-at "\\(\\(\\sw+\\)[ 	]*:\\)?[ 	]*\\(if\\)\\>" 3 "\\(\\sw+\\)[ 	]*:" 1 scan-lists 0 " 	" "then\\>" 4 parse-partial-sexp search-backward "!" 38 f90-next-statement " 	0-9&" beg-pnt] 5 (#$ . 28075)])
(put 'f90-looking-at-if-then 'byte-optimizer 'byte-compile-inline-expand)
#@110 Return (kind name) if a where or forall block starts after point.
Name is nil if the statement has no label.
(defalias 'f90-looking-at-where-or-forall #[nil "\303\304!\205. \305\306\306\224\205 \224\225{)\303\307!\203* \310\310\224\205( \224\225{)	\n*D\207" [arg struct label looking-at "\\(\\(\\sw+\\)[ 	]*:\\)?[ 	]*\\(where\\|forall\\)[ 	]*(.*)[ 	]*\\(!\\|$\\)" nil 3 "\\(\\sw+\\)[ 	]*:" 1] 3 (#$ . 28927)])
(put 'f90-looking-at-where-or-forall 'byte-optimizer 'byte-compile-inline-expand)
#@102 Return (kind name) at the start of a type/interface/block-data block.
Name is non-nil only for type.
(defalias 'f90-looking-at-type-like #[nil "\302!\203\" \303\303\224\205 	\224	\225{)\304\304\224\205 	\224	\225{)D\207\302\305!\2057 \303\303\224\2054 	\224	\225{)\306D\207" [f90-type-def-re arg looking-at 1 3 "\\(interface\\|block[	]*data\\)\\>" nil] 3 (#$ . 29436)])
(put 'f90-looking-at-type-like 'byte-optimizer 'byte-compile-inline-expand)
#@74 Return (kind name) if a program block with name name starts after point.
(defalias 'f90-looking-at-program-block-start #[nil "\301\302!\203\" \303\303\224\205 \224\225{)\304\304\224\205 \224\225{)D\207\301\305!\204J \301\306!\203J \303\303\224\205: \224\225{)\304\304\224\205G \224\225{)D\207\301\307!?\205r \301\310!\205r \303\303\224\205c \224\225{)\304\304\224\205p \224\225{)D\207" [arg looking-at "\\(program\\)[ 	]+\\(\\sw+\\)\\>" 1 2 "module[ 	]*procedure\\>" "\\(module\\)[ 	]+\\(\\sw+\\)\\>" "end[ 	]*\\(function\\|subroutine\\)" "[^!\"&\n]*\\(function\\|subroutine\\)[ 	]+\\(\\sw+\\)"] 3 (#$ . 29894)])
(put 'f90-looking-at-program-block-start 'byte-optimizer 'byte-compile-inline-expand)
#@47 Return list of type and name of end of block.
(defalias 'f90-looking-at-program-block-end #[nil "\302\303\304Q!\205$ \305\305\224\205 	\224	\225{)\306\306\224\205\" 	\224	\225{)D\207" [f90-blocks-re arg looking-at "end[ 	]*" "?\\([ 	]+\\(\\sw+\\)\\)?\\>" 1 3] 4 (#$ . 30619)])
(put 'f90-looking-at-program-block-end 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'f90-comment-indent #[nil "\304\305!\203 \306\207\203 \304!\203 \306\207\304\307	!!\203 \306\207\304\n!\2031 \212\310\311x\210n)\2031 \312 \207\310\311x\210n\203= \306\202? iT]\207" [f90-directive-comment-re f90-comment-region f90-indented-comment-re comment-column looking-at "!!!" 0 regexp-quote " 	" nil f90-calculate-indent] 3])
(put 'f90-comment-indent 'byte-optimizer 'byte-compile-inline-expand)
#@54 Return continuation properties of present statement.
(defalias 'f90-present-statement-cont #[nil "\305\211\212\306 \205C \212\212\307y\210`)\305\210\203# `V\203# \202$ e\310\311\f`\"8)\203; \312\313\n\"\210\313\305x\210\202 \314\305x\210h\315U*)\212\212\307y\210`)\305\210\203^ `V\203^ \202_ e\310\311\f`\"8)\203v \312\313\n\"\210\313\305x\210\202P \314\305x\210h\315U*	\204\213 \204\213 \316\202\261 	\204\227 \203\227 \317\202\261 	\203\243 \204\243 \320\202\261 	\203\257 \203\257 \321\202\261 \322 *\207" [cont pcont bol f90-cache-position beg-pnt nil f90-previous-statement 0 4 parse-partial-sexp search-backward "!" " 	" 38 single begin end middle error] 4 (#$ . 31410)])
(put 'f90-present-statement-cont 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'f90-indent-line-no #[nil "\204 \301\302w\303U\204 \304\305!\203 \306 \210\307\302w\207" [f90-leave-line-no " 	" nil 0 looking-at "[0-9]" delete-horizontal-space " 	0-9"] 2])
(put 'f90-indent-line-no 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'f90-no-block-limit #[nil "\212\302\210`)\212\303\304!\206+ \303\305!\206+ \303\306!\206+ \303\307!\206+ \303	!\206+ \310\311\312#*?\207" [eol f90-type-def-re nil looking-at "end" "\\(do\\|if\\|else\\(if\\|where\\)?\\|select[ 	]*case\\|case\\|where\\|forall\\)\\>" "\\(program\\|module\\|interface\\|block[ 	]*data\\)\\>" "\\(contains\\|\\sw+[ 	]*:\\)" re-search-forward "\\(function\\|subroutine\\)" t] 4])
(put 'f90-no-block-limit 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'f90-update-line #[nil "\303\211\n\205 \212\304y\210`)\212\303\210`)\n\205 \305\n	#*\207" [eol bol f90-auto-keyword-case nil 0 f90-change-keywords] 4])
(put 'f90-update-line 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'f90-electric-insert #[nil "\304\305!\210\306\211\n\205# \212\307y\210`)\212\306\210`)\n\205# \310\n	#*\210\205+ \311 \207" [eol bol f90-auto-keyword-case auto-fill-function self-insert-command 1 nil 0 f90-change-keywords f90-do-auto-fill] 4 nil nil])
#@106 Get correct indent for a line starting with line number.
Does not check type and subprogram indentation.
(defalias 'f90-get-correct-indent #[nil "\212\306\210`)\306\211\212\307 \203\332 \306\211\212\307 \205V \212\212\310y\210`)\306\210\2034 `V\2034 \2025 e'\311\312'`\"8)\203N \313\314\f\"\210\314\306x\210\202& \315\306x\210h\316U*)\212\212\310y\210`)\306\210\203q `V\203q \202r e'\311\312'`\"8)\203\213 \313\314\f\"\210\314\306x\210\202c \315\306x\210h\316U*\204\240 \204\240 \317\202\306 \204\254 \203\254 \320\202\306 \203\270 \204\270 \321\202\306 \203\304 \203\304 \322\202\306 \323 *\211\321=\204\f \322=\204\f \324\325!\204\f \326 \310y\210\327\330\212\306\210`)\331#\203]\310y\210\315\306w\210\324\332!\2038\306\333(\333\224\205\n(\224(\225{))*\324\334!\203'\335(\335\224\205$(\224(\225{)*)**D\2038	+\\\202Z\212\306\211*)\324\336!\205\331\333(\333\224\205T(\224(\225{))\324\334!\203o\335(\335\224\205l(\224(\225{)*\337`\335\310#\211,\203~,b\210)\315\306w\210\324\340!\204\324\212\212\310y\210`)\306\210\203\242`V\203\242\202\243e'\311\312'`\"8)\203\274\313\314\f\"\210\314\306x\210\202\224\315\306x\210h\316U*\205\331\341 \210\342\306w\210\324\340!\205\331)*D+\204U\324\343!\203\306\333(\333\224\205\363(\224(\225{))*\324\334!\203\335(\335\224\205(\224(\225{)*)**D\204U\324\344!\203Z\306\333(\333\224\205/(\224(\225{))*\324\334!\203L\335(\335\224\205I(\224(\225{)*)**D\203Z	-\\\306\210\327\330\n\331#\203\365\310y\210\345\306w\210\324\332!\203\260\306\333(\333\224\205\202(\224(\225{))*\324\334!\203\237\335(\335\224\205\234(\224(\225{)*)**D\203\260	+\\\202\357\212\306\211*)\324\336!\205Q\333(\333\224\205\314(\224(\225{))\324\334!\203\347\335(\335\224\205\344(\224(\225{)*\337`\335\310#\211,\203\366,b\210)\315\306w\210\324\340!\204L\212\212\310y\210`)\306\210\203`V\203\202e'\311\312'`\"8)\2034\313\314\f\"\210\314\306x\210\202\f\315\306x\210h\316U*\205Q\341 \210\342\306w\210\324\340!\205Q)*D+\204\315\324\343!\203\221\306\333(\333\224\205k(\224(\225{))*\324\334!\203\210\335(\335\224\205\205(\224(\225{)*)**D\204\315\324\344!\203\325\306\333(\333\224\205\247(\224(\225{))*\324\334!\203\304\335(\335\224\205\301(\224(\225{)*)**D\203\325	-\\\202\357\324.!\203\344	-Z\202\357\324\346!\203\357	+Z\306\210\202]	,\207" [cont icol epnt pcont bol f90-cache-position nil f90-previous-statement 0 4 parse-partial-sexp search-backward "!" " 	" 38 single begin end middle error looking-at "[ 	]*[0-9]" current-indentation re-search-forward "\\(if\\|do\\|select\\|where\\|forall\\)" t "\\(\\(\\sw+\\)[ 	]*:\\)?[ 	]*\\(do\\)\\>" 3 "\\(\\sw+\\)[ 	]*:" 1 "\\(\\(\\sw+\\)[ 	]*:\\)?[ 	]*\\(if\\)\\>" scan-lists "then\\>" f90-next-statement " 	0-9&" "\\(\\(\\sw+\\)[ 	]*:\\)?[ 	]*\\(where\\|forall\\)[ 	]*(.*)[ 	]*\\(!\\|$\\)" "\\(\\(\\sw+\\)[ 	]*:\\)?[ 	]*\\(select\\)[ 	]*case[ 	]*(" " 	0-9" "end[ 	]*do\\>" beg-pnt arg struct label f90-do-indent pos f90-if-indent f90-end-if-re] 6 (#$ . 33450)])
#@59 Calculate the indent column based on previous statements.
(defalias 'f90-calculate-indent #[nil "\306\211\307`\212\310 \204 \311\202\270\306\211\212\310 \205[ \212\212\311y\210`)\306\2103\2039 `3V\2039 3\202: e4\312\3134`\"8)\203S \314\315\"\210\315\306x\210\202( \316\306x\210h\317U*)\212\212\311y\210`)\306\2103\203y `3V\203y 3\202z e4\312\3134`\"8)\203\223 \314\315\"\210\315\306x\210\202h \316\306x\210h\317U*\f\204\250 \n\204\250 \320\202\316 \f\204\264 \n\203\264 \321\202\316 \f\203\300 \n\204\300 \322\202\316 \f\203\314 \n\203\314 \323\202\316 \324 *\211\322=\203\235\306\211\212\310 \205\212\212\311y\210`)\306\2103\203\374 `3V\203\374 3\202\375 e4\312\3134`\"8)\203\314\315\"\210\315\306x\210\202\353 \316\306x\210h\317U*)\212\212\311y\210`)\306\2103\203<`3V\203<3\202=e4\312\3134`\"8)\203V\314\315\"\210\315\306x\210\202+\316\306x\210h\317U*\f\204k\n\204k\320\202\221\f\204w\n\203w\321\202\221\f\203\203\n\204\203\322\202\221\f\203\217\n\203\217\323\202\221\324 *\321=\204\235\310 \210\202\326 \n\321=\203\264\212\311y\210\325\306w\210i)5\\\202\270\n\323=\203\300\326 \202\270\212\311y\210\325\306w\210i)\316\306w\210\327\330!\203\333\331 \2021\212\306\21167\327\332!\205\3338\333\224\205\3678\2248\225{)7\327\334!\203\3358\335\224\2058\2248\225{)6\336`\335\311#\2119\203!9b\210)\316\306w\210\327\337!\204z\212\212\311y\210`)\306\2103\203H`3V\203H3\202Ie4\312\3134`\"8)\203b\314\315\"\210\315\306x\210\2027\316\306x\210h\317U*\205\340 \210\341\306w\210\327\337!\20576D+\204\327\342!\203\277\306\3338\333\224\205\2318\2248\225{)76\327\334!\203\266\3358\335\224\205\2638\2248\225{)676*D\204\327\343!\203\373\306\3338\333\224\205\3258\2248\225{)76\327\334!\203\362\3358\335\224\205\3578\2248\225{)676*D\204\327:!\203\n;\\\2021\327\344!\203N\306\3338\333\224\205 8\2248\225{)76\327\334!\203=\3358\335\224\205:8\2248\225{)676*D\203N<\\\2021\327=!\203y\3358\335\224\205d8\2248\225{)\3338\333\224\205t8\2248\225{)D\202\221\327\345!\203\234\3358\335\224\205\2168\2248\225{)\306D\203\234>\\\2021\327\346!\203\306\3358\335\224\205\2618\2248\225{)\3478\347\224\205\3018\2248\225{)D\202#\327\350!\204\366\327\351!\203\366\3358\335\224\205\3418\2248\225{)\3478\347\224\205\3618\2248\225{)D\202#\327\352!\204&\327\353!\203&\3358\335\224\2058\2248\225{)\3478\347\224\205!8\2248\225{)D\204,\327\354!\2031?\\b\210\311y\210\327\355!\204\270\327\356!\203H\311\202\270\325\306w\210\327:!\204Z\327@!\203b;Z\202\270\327\357!\203p<Z\202\270\327A!\203>Z\202\270\327\360!\204\263\327\361B\362Q!\203\270\3358\335\224\205\2368\2248\225{)\3338\333\224\205\2568\2248\225{)D\203\270?Z),\207" [pnt case-fold-search cont icol pcont bol nil t f90-previous-statement 0 4 parse-partial-sexp search-backward "!" " 	" 38 single begin end middle error " 	0-9" current-indentation looking-at "[0-9]" f90-get-correct-indent "\\(\\(\\sw+\\)[ 	]*:\\)?[ 	]*\\(if\\)\\>" 3 "\\(\\sw+\\)[ 	]*:" 1 scan-lists "then\\>" f90-next-statement " 	0-9&" "\\(\\(\\sw+\\)[ 	]*:\\)?[ 	]*\\(where\\|forall\\)[ 	]*(.*)[ 	]*\\(!\\|$\\)" "\\(\\(\\sw+\\)[ 	]*:\\)?[ 	]*\\(select\\)[ 	]*case[ 	]*(" "\\(\\(\\sw+\\)[ 	]*:\\)?[ 	]*\\(do\\)\\>" "\\(interface\\|block[	]*data\\)\\>" "\\(program\\)[ 	]+\\(\\sw+\\)\\>" 2 "module[ 	]*procedure\\>" "\\(module\\)[ 	]+\\(\\sw+\\)\\>" "end[ 	]*\\(function\\|subroutine\\)" "[^!\"&\n]*\\(function\\|subroutine\\)[ 	]+\\(\\sw+\\)" "contains[ 	]*\\($\\|!\\)" "[ 	]*$" "[ 	]*#" "end[ 	]*do\\>" "contains[ 	]*\\(!\\|$\\)" "end[ 	]*" "?\\([ 	]+\\(\\sw+\\)\\)?\\>" f90-cache-position beg-pnt f90-continuation-indent label struct arg pos f90-else-like-re f90-if-indent f90-do-indent f90-type-def-re f90-type-indent f90-program-indent f90-end-if-re f90-end-type-re f90-blocks-re] 6 (#$ . 36581) nil])
#@102 Move point to beginning of the previous F90 statement.
Return nil if no previous statement is found.
(defalias 'f90-previous-statement #[nil "\301\302y\210\303y\302U\211\203 \304\305!\204 )\207" [not-first-statement nil 0 -1 looking-at "[ 	0-9]*\\(!\\|$\\|#\\)"] 2 (#$ . 40553) nil])
#@95 Move point to beginning of the next F90 statement.
Return nil if no later statement is found.
(defalias 'f90-next-statement #[nil "\301\302y\210\303y\302U\205 m?\211\203 \304\305!\204 )\207" [not-last-statement nil 0 1 looking-at "[ 	0-9]*\\(!\\|$\\)"] 2 (#$ . 40848) nil])
#@84 Move point to the beginning of subprogram.
Return (type name) or nil if not found.
(defalias 'f90-beginning-of-subprogram #[nil "\306\307\310\311y\210\312\310w\210\313\314!\2031 \306\306\224\205 \224\225{)\315\315\224\205, \224\225{)D\202\203 \313\316!\204[ \313\317!\203[ \306\306\224\205I \224\225{)\315\315\224\205V \224\225{)D\202\203 \313\320!?\205\203 \313\321!\205\203 \306\306\224\205t \224\225{)\315\315\224\205\201 \224\225{)D\211\203\213 \nS\n\311U\204P\322\f\310\323#\203P\311y\210\312\310w\210\313\314!\203\304 \306\306\224\205\262 \224\225{)\315\315\224\205\277 \224\225{)D\202\313\316!\204\356 \313\317!\203\356 \306\306\224\205\334 \224\225{)\315\315\224\205\351 \224\225{)D\202\313\320!?\205\313\321!\205\306\306\224\205\224\225{)\315\315\224\205\224\225{)D\211\203\"\nS\211\202\214 \313\324\325Q!\203\213 \306\306\224\2057\224\225{)\326\326\224\205D\224\225{)D\203\213 \nT\211\202\214 \311y\210\n\311U\203]\202b\327\330!\210\310+\207" [matching-beg case-fold-search count arg f90-program-block-re f90-blocks-re 1 t nil 0 " 	0-9" looking-at "\\(program\\)[ 	]+\\(\\sw+\\)\\>" 2 "module[ 	]*procedure\\>" "\\(module\\)[ 	]+\\(\\sw+\\)\\>" "end[ 	]*\\(function\\|subroutine\\)" "[^!\"&\n]*\\(function\\|subroutine\\)[ 	]+\\(\\sw+\\)" re-search-backward move "end[ 	]*" "?\\([ 	]+\\(\\sw+\\)\\)?\\>" 3 message "No beginning-found."] 5 (#$ . 41134) nil])
#@78 Move point to the end of subprogram.
Return (type name) or nil if not found.
(defalias 'f90-end-of-subprogram #[nil "\306\307\310\311y\210\312\310w\210\313\314\315Q!\2051 \306\306\224\205\" \f\224\f\225{)\316\316\224\205/ \f\224\f\225{)D\211\2039 \nS\310\210\n\311U\204\317\310\320#\203\311y\210\312\310w\210\313\321!\203u \306\306\224\205c \f\224\f\225{)\322\322\224\205p \f\224\f\225{)D\202\306 \313\323!\204\237 \313\324!\203\237 \306\306\224\205\215 \f\224\f\225{)\322\322\224\205\232 \f\224\f\225{)D\202\306 \313\325!\204\317 \313\326!\203\317 \306\306\224\205\267 \f\224\f\225{)\322\322\224\205\304 \f\224\f\225{)D\203\317 \nT\202\373 \313\314\315Q!\205\363 \306\306\224\205\344 \f\224\f\225{)\316\316\224\205\361 \f\224\f\225{)D\211\203\373 \nS\310\210\202< \306y\210\n\311U\203\202\327\330!\210\310+\207" [matching-end case-fold-search count f90-blocks-re arg f90-program-block-re 1 t nil 0 " 	0-9" looking-at "end[ 	]*" "?\\([ 	]+\\(\\sw+\\)\\)?\\>" 3 re-search-forward move "\\(program\\)[ 	]+\\(\\sw+\\)\\>" 2 "module[ 	]*procedure\\>" "\\(module\\)[ 	]+\\(\\sw+\\)\\>" "end[ 	]*\\(function\\|subroutine\\)" "[^!\"&\n]*\\(function\\|subroutine\\)[ 	]+\\(\\sw+\\)" message "No end found."] 4 (#$ . 42580) nil])
#@115 Put mark at end of F90 subprogram, point at beginning.
Marks are pushed and highlight (grey shadow) is turned on.
(defalias 'f90-mark-subprogram #[nil "`\305\306 \210\307`\310\"\210	b\210\311 \312\313\n\"\203 \314 \210\202# \310\305*\207" [program pos emacs-version mark-active deactivate-mark nil f90-end-of-subprogram push-mark t f90-beginning-of-subprogram string-match "XEmacs" zmacs-activate-region] 3 (#$ . 43840) nil])
#@151 Comment/uncomment every line in the region.
Insert f90-comment-region at the beginning of every line in the region
or, if already present, remove it.
(defalias 'f90-comment-region #[(beg-region end-region) "\304 \211	\305\223\210\nb\210\306y\210\307\310!!\203 `\306\225|\210\202! c\210\311y\306U\203F `\312!W\203F \307\310!!\203@ `\306\225|\210\202! c\210\202! \305\211\223)\207" [end end-region beg-region f90-comment-region make-marker nil 0 looking-at regexp-quote 1 marker-position] 4 (#$ . 44280) "*r"])
#@34 Indent current line as F90 code.
(defalias 'f90-indent-line #[(&optional no-update) "\306\211\307 \310	`\306\223\210\311y\210\212\312 \205R \212\212\311y\210`)\306\210\2030 `V\2030 \2021 e\313\314`\"8)\203J \315\316\f\"\210\316\306x\210\202\" \317\306x\210h\320U*)\203_ \310\317\306w\210\202y  \204u \317\306w\311U\204u \321\322!\203u \323 \210\324\306w\210\321\316!\203\321 \321\325!\203\211 \311\202\315 !\203\231 \321!!\203\231 \311\202\315 \321\326\"!!\203\246 \311\202\315 \321#!\203\274 \212\317\306x\210n)\203\274 \327 \202\315 \317\306x\210n\203\310 \311\202\312 iT$]\202\342 \321\330!\203\337 %\203\337 \331 \210\327 iZ\311U\204\n&\311y\210\n\204\372 \324\306w\210\323 \210i\311U\203	&j\202\332&\333\"\210*`\334	!W\203\334	!b\210'\204I\306\211()\205G\212\311y\210`)\212\306\210`)()\205G\335)\f(#*\210*\203Q\336 \210	\306\211\223,\207" [case-fold-search pos no-line-number indent bol f90-cache-position nil make-marker t 0 f90-previous-statement 4 parse-partial-sexp search-backward "!" " 	" 38 looking-at "[0-9]" delete-horizontal-space " 	0-9" "!!!" regexp-quote f90-calculate-indent "end" f90-match-end indent-to 1 marker-position f90-change-keywords f90-do-auto-fill beg-pnt f90-leave-line-no f90-directive-comment-re f90-comment-region f90-indented-comment-re comment-column f90-smart-end col no-update eol f90-auto-keyword-case auto-fill-function] 4 (#$ . 44803) nil])
#@193 Reindent the current F90 line, insert a newline and indent the newline.
An abbrev before point is expanded if `abbrev-mode' is non-nil.
If run in the middle of a line, the line is not broken.
(defalias 'f90-indent-new-line #[nil "\306\211\307\203 \310 \210\311y\210\f\204% \312\306w\311U\204% \313\314!\203% \315 \210\316\306w\210\313\317!\2033 \320\321!\210\306\210\315 \210\203G `V\203G \202H e\322\323`\"8)\212\212\311y\210`)\306\210\203m `V\203m \202n e\324\323`\"8)\203\210 \325\326\"\210\326\306x\210\202_ \312\306x\210h\327U*\n\203\234 	\204\234 \330c\210\306\211\205\304 \212\311y\210`)\212\306\210`)\205\304 \331#*\210\332 \210\n\204\326 	\203\331 \203\331 \330c\210\320\321!+\207" [case-fold-search cont string abbrev-mode f90-leave-line-no f90-cache-position nil t expand-abbrev 0 " 	" looking-at "[0-9]" delete-horizontal-space " 	0-9" "\\(end\\|else\\|!\\)" f90-indent-line no-update 3 parse-partial-sexp 4 search-backward "!" 38 "&" f90-change-keywords newline beg-pnt bol eol f90-auto-keyword-case f90-beginning-ampersand] 4 (#$ . 46244) nil])
#@49 Indent every line in region by forward parsing.
(defalias 'f90-indent-region #[(beg-region end-region) "\306 \307 \310\211\211\211\211\211\211\211@AB\211CD\310\223\210Eb\210\311y\210\312\313!\203? \314\315!\210\316y\311U\203? `CW\204' \310\211F\212\317 \205\212 \212\212\311y\210`)G\310\210H\203g `HV\203g H\202h eI\320\321I`\"8)\203\202 \322\323G\"\210\323\310x\210\202V \324\310x\210h\325U*F)\212\212\311y\210`)G\310\210H\203\252 `HV\203\252 H\202\253 eI\320\321I`\"8)\203\305 \322\323G\"\210\323\310x\210\202\231 \324\310x\210h\325U*F\204\333 \204\333 \326\202F\204\350 \203\350 \327\202F\203\365 \204\365 \330\202F\203\203\331\202\332 *\211\331=\204\330=\203\342\317 \203\342\310\211F\212\317 \205b\212\212\311y\210`)G\310\210H\203?`HV\203?H\202@eI\320\321I`\"8)\203Z\322\323G\"\210\323\310x\210\202.\324\310x\210h\325U*F)\212\212\311y\210`)G\310\210H\203\202`HV\203\202H\202\203eI\320\321I`\"8)\203\235\322\323G\"\210\323\310x\210\202q\324\310x\210h\325U*F\204\263\204\263\326\202\334F\204\300\203\300\327\202\334F\203\315\204\315\330\202\334F\203\332\203\332\331\202\334\332 *\211\202`H\314\315!\210\212\311y\210\333\310w\210i)\211@\311y\210\333\310w\210\310\312\334!\2057\310\335J\335\224\205J\224J\225{)K\312\336!\2032\316J\316\224\205/J\224J\225{)K\nK*D\211\203AL\202P\212\310\211K\312\337!\205\344\335J\335\224\205\\J\224J\225{)\312\336!\203v\316J\316\224\205sJ\224J\225{)K\340`\316\311#\211M\203\205Mb\210)\324\310w\210\312\341!\204\340\212\212\311y\210`)G\310\210H\203\255`HV\203\255H\202\256eI\320\321I`\"8)\203\310\322\323G\"\210\323\310x\210\202\234\324\310x\210h\325U*\205\344\342 \210\343\310w\210\312\341!\205\344\nKD+\211\204i\312\344!\205!\310\335J\335\224\205 J\224J\225{)K\312\336!\203\316J\316\224\205J\224J\225{)K\nK*D\211\204i\312\345!\205]\310\335J\335\224\205<J\224J\225{)K\312\336!\203X\316J\316\224\205UJ\224J\225{)K\nK*D\211\204i\312N!\203nO\202P\312P!\203\231\316J\316\224\205\204J\224J\225{)\335J\335\224\205\224J\224J\225{)D\202\261\312\346!\205\261\316J\316\224\205\256J\224J\225{)\310D\211\203\273Q\202P\312\347!\203\345\316J\316\224\205\320J\224J\225{)\350J\350\224\205\340J\224J\225{)D\202C\312\351!\204\312\352!\203\316J\316\224\205 J\224J\225{)\350J\350\224\205J\224J\225{)D\202C\312\353!?\205C\312\354!\205C\316J\316\224\2051J\224J\225{)\350J\350\224\205AJ\224J\225{)D\211\204N\312\355!\205PR\211\203[@\f\\@\n\203e\nABA\212\212\311y\210`)G\310\210H\203\202`HV\203\202H\202\203eI\320\321I`\"8)\203\235\322\323G\"\210\323\310x\210\202q\324\310x\210h\325U*\203\360\316y\311U\203\360`CW\203\360\356 S\\Z\311U\204eS\\\357TU\311y\210T\204\327\333\310w\210\360 \210i\311U\203\346Uj\202\353\361U\316\"\210*\202e\316y\311U\203\270	`CW\203\270	\311y\210V\204\324\310w\311U\204\312\362!\203\360 \210\333\310w\210`H\312\363!\203)\311\202\375\312\364!\2034\311\202\375\312\323!\203\214\312\365!\203D\311\202\210W\203T\312W!\203T\311\202\210\312\366X!!\203a\311\202\210\312Y!\203w\212\324\310x\210n)\203w\367 \202\210\324\310x\210n\203\203\311\202\205iTZ]\202\375\212\310\210`)[\212\312\370!\206\272\312\371!\206\272\312\372!\206\272\312\373!\206\272\312P!\206\272\374\375[\376#*\204\304@\202\375\312N!\203\324@OZ\202\375\312\355!\203\343@RZ\202\375\312\334!\205\310\335J\335\224\205\371J\224J\225{)K\312\336!\203\316J\316\224\205J\224J\225{)K\nK*D\211\203$L\202&\212\310\211K\312\337!\205\307\335J\335\224\205?J\224J\225{)\312\336!\203Y\316J\316\224\205VJ\224J\225{)K\340`\316\311#\211M\203hMb\210)\324\310w\210\312\341!\204\303\212\212\311y\210`)G\310\210H\203\220`HV\203\220H\202\221eI\320\321I`\"8)\203\253\322\323G\"\210\323\310x\210\202\324\310x\210h\325U*\205\307\342 \210\343\310w\210\312\341!\205\307\nKD+\211\204E\312\344!\205\310\335J\335\224\205\343J\224J\225{)K\312\336!\203\377\316J\316\224\205\374J\224J\225{)K\nK*D\211\204E\312\345!\205@\310\335J\335\224\205J\224J\225{)K\312\336!\203;\316J\316\224\2058J\224J\225{)K\nK*D\211\203JO\202&\312P!\203u\316J\316\224\205`J\224J\225{)\335J\335\224\205pJ\224J\225{)D\202\215\312\346!\205\215\316J\316\224\205\212J\224J\225{)\310D\211\203\227Q\202&\312\347!\203\301\316J\316\224\205\254J\224J\225{)\350J\350\224\205\274J\224J\225{)D\202\312\351!\204\361\312\352!\203\361\316J\316\224\205\334J\224J\225{)\350J\350\224\205\354J\224J\225{)D\202\312\353!?\205\312\354!\205\316J\316\224\205J\224J\225{)\350J\350\224\205J\224J\225{)D\211\205&R\211\203A@\f\2038@\f\\@\nABA\202\375\312\377\\\201c Q!\205n\316J\316\224\205\\J\224J\225{)\335J\335\224\205lJ\224J\225{)D\211\203\372A@AAA]\203\222\212\201d 	@	A@@A@$\210)\312^!\203\236O\202\351\312\201e !\203\253L\202\351\312_!\203\267Q\202\351\312\377\\\201c Q!\205\351\316J\316\224\205\322J\224J\225{)\335J\335\224\205\342J\224J\225{)D\205\351R\211\203\364@\fZ@@\202\375@iZ\311U\204-	\310TU\311y\210T\204	\333\310w\210\360 \210i\311U\203&	Uj\202+	\361U\316\"\210*\212\212\311y\210`)G\310\210H\203J	`HV\203J	H\202K	eI\320\321I`\"8)\203e	\322\323G\"\210\323\310x\210\2029	\324\310x\210h\325U*\203\360\316y\311U\203\360`CW\203\360\356 S\\Z\311U\204-	S\\\357TU\311y\210T\204\237	\333\310w\210\360 \210i\311U\203\256	Uj\202\263	\361U\316\"\210*\202-	\310HBb\210C\310\211\223\210B\310\211\223\210\201f \201g `\"\203\336	\201h  \202\355	a\205\355	\310b\201i \201j !.\n\207" [end-struct beg-struct struct cont ind-b ind-curr make-marker point-marker nil 0 looking-at "[ 	]*[0-9]*\\(!\\|#\\|[ 	]*$\\)" f90-indent-line no-update 1 f90-previous-statement 4 parse-partial-sexp search-backward "!" " 	" 38 single begin end middle error " 	0-9" "\\(\\(\\sw+\\)[ 	]*:\\)?[ 	]*\\(do\\)\\>" 3 "\\(\\sw+\\)[ 	]*:" "\\(\\(\\sw+\\)[ 	]*:\\)?[ 	]*\\(if\\)\\>" scan-lists "then\\>" f90-next-statement " 	0-9&" "\\(\\(\\sw+\\)[ 	]*:\\)?[ 	]*\\(select\\)[ 	]*case[ 	]*(" "\\(\\(\\sw+\\)[ 	]*:\\)?[ 	]*\\(where\\|forall\\)[ 	]*(.*)[ 	]*\\(!\\|$\\)" "\\(interface\\|block[	]*data\\)\\>" "\\(program\\)[ 	]+\\(\\sw+\\)\\>" 2 "module[ 	]*procedure\\>" "\\(module\\)[ 	]+\\(\\sw+\\)\\>" "end[ 	]*\\(function\\|subroutine\\)" "[^!\"&\n]*\\(function\\|subroutine\\)[ 	]+\\(\\sw+\\)" "contains[ 	]*\\($\\|!\\)" current-indentation no-line-no delete-horizontal-space indent-to "[0-9]" "[ 	]*$" "[ 	]*#" "!!!" regexp-quote f90-calculate-indent "end" "\\(do\\|if\\|else\\(if\\|where\\)?\\|select[ 	]*case\\|case\\|where\\|forall\\)\\>" "\\(program\\|module\\|interface\\|block[ 	]*data\\)\\>" "\\(contains\\|\\sw+[ 	]*:\\)" re-search-forward "\\(function\\|subroutine\\)" t "end[ 	]*" ind-lev block-list save-point end-region-mark end-region beg-region pcont bol f90-cache-position beg-pnt arg label f90-do-indent pos f90-else-like-re f90-if-indent f90-type-def-re f90-type-indent f90-program-indent f90-continuation-indent no-line-number col f90-leave-line-no f90-directive-comment-re f90-comment-region f90-indented-comment-re comment-column eol f90-blocks-re f90-smart-end f90-end-if-re f90-end-type-re emacs-version transient-mark-mode mark-active "?\\([ 	]+\\(\\sw+\\)\\)?\\>" f90-block-match "end[ 	]*do\\>" string-match "XEmacs" zmacs-deactivate-region run-hooks deactivate-mark-hook] 11 (#$ . 47357) "*r"])
#@54 Properly indent the subprogram which contains point.
(defalias 'f90-indent-subprogram #[nil "\212\301\302 \211\203$ \303\304@A@#\210\305`\306 \"\210\303\307@A@#\2021 \303\310!\210\305`\306 \"\210\303\311!*\207" [program nil f90-mark-subprogram message "Indenting %s %s..." f90-indent-region mark "Indenting %s %s...done" "Indenting the whole file..." "Indenting the whole file...done"] 5 (#$ . 54983) nil])
#@64 Break line at point, insert continuation marker(s) and indent.
(defalias 'f90-break-line #[(&optional no-update) "\306	\203 `	V\203 	\202 e\307\310\n`\"8)\203( \311c\210\312 \210\311c\210\202\333 	\2036 `	V\2036 	\2027 e\313\310\n`\"8)\203\242 \212\306\212\306\210`)	\203Z `	V\203Z 	\202[ e\313\310\n`\"8)\203\226 \314y\210\315\316\"\210	\203| `	V\203| 	\202} e\307\310\n`\"8)\203\220 \315\316\"\210\202n \314\224\314\225{\f+\312 \210c\210\202\333 \311c\210\204\320 \306\211\205\316 \212\314y\210`)\212\306\210`)\205\316 \317#*\210\312 \210\203\333 \311c\210)\320 \207" [ctype f90-cache-position beg-pnt eol type no-update nil 3 parse-partial-sexp "&" newline 4 0 re-search-forward "[!]+" f90-change-keywords f90-indent-line bol f90-auto-keyword-case f90-beginning-ampersand] 4 (#$ . 55402) nil])
#@56 From fill-column, search backward for break-delimiter.
(defalias 'f90-find-breakpoint #[nil "\212\304y\210`)\305	\"\210\n\203 \306 \210\307!?\205, \310u\202, \307!\203* \311u\202, \310u)\207" [bol f90-break-delimiters f90-break-before-delimiters f90-no-break-re 0 re-search-backward backward-char looking-at nil 2] 3 (#$ . 56240)])
#@76 Break line if non-white characters beyond fill-column. Also, update line. 
(defalias 'f90-do-auto-fill #[nil "\306\211\n\205 \212\307y\210`)\212\306\210`)\n\205 \310\n	#*\210iV\205\\ \311 \312!\210\203< `V\203< \202= e\313\314`\"8)\204M \315 \210\316 \210\fb\210\f\306\211\223\210)\202! \207" [eol bol f90-auto-keyword-case fill-column pos-mark f90-cache-position nil 0 f90-change-keywords point-marker move-to-column 3 parse-partial-sexp f90-find-breakpoint f90-break-line beg-pnt] 4 (#$ . 56583) nil])
#@61 Join present line with next line, if this line ends with &.
(defalias 'f90-join-lines #[nil "\306`\306\210\307\306x\210h\310U\205b \311\312!\210`\313y\210\307\306w\210\314\315!\203( \311\313!\210	`|\210\n\203: `\nV\203: \n\202; e\316\317`\"8)\204L \320 \210\321c\210\f\203^ \212\306\210i)V\203^ \322 \210b\210\323*\207" [oldpos pos f90-cache-position beg-pnt auto-fill-function fill-column nil " 	" 38 delete-char -1 1 looking-at "&" 3 parse-partial-sexp delete-horizontal-space " " f90-do-auto-fill t] 4 (#$ . 57111) nil])
#@71 Fill every line in region by forward parsing. Join lines if possible.
(defalias 'f90-fill-region #[(beg-region end-region) "\306 \307\211\310\307\211\307\223\210b\210	\203K \311 \204 \212\307\210i)V\2038 \312!\210\313 \210\314\315!\210\202 `\316\f!W\205D \317y\320U`\202 \307\321\322\"\203[ \323 \202f \205f \307\324\325!-\207" [auto-fill-function go-on f90-auto-keyword-case f90-smart-end end-region-mark end-region make-marker nil t f90-join-lines move-to-column f90-find-breakpoint f90-break-line no-update marker-position 1 0 string-match "XEmacs" zmacs-deactivate-region run-hooks deactivate-mark-hook beg-region fill-column f90-cache-position emacs-version transient-mark-mode mark-active] 6 (#$ . 57650) "*r"])
#@102 Match end-struct with beg-struct and complete end-block if possible.
Leave point at the end of line.
(defalias 'f90-block-match #[(beg-block beg-name end-block end-name) "\300\301\212\302\210`)\"\210\303\304\215\207" [search-forward "end" nil no-match (byte-code "	\211\205\n \227\n\205 \n\227\211\f\232,\204; 	\203. \306\307	#\210\310\210\311\312\310\"\210\202? \306\313\"\210\314Pc\210\202? \315	!\210\211\205K \227\n\205Q \n\227\211\f\232,\204\256 \203s \204s \306\313\"\210\314Pc\210\202\270 \203\222 \203\222 \306\316#\210\315!\210\317!\210\202\270 \204\270 \203\270 \306\320\"\210\315!\210\317\321!\210\202\270 \203\270 \315!\210\322\323!?\205\301 \324 \207" [beg-block end-block b a b-local a-local message "END %s does not match %s." nil throw no-match "Inserting %s." " " search-forward "Replacing %s with %s." replace-match "Deleting %s." "" looking-at "[ 	]*!" delete-horizontal-space beg-name end-name] 5)] 3 (#$ . 58402)])
#@71 From an end foo statement, find the corresponding foo including name.
(defalias 'f90-match-end #[nil "\306\307 \310`\311\310\211\211\211\2112345\212\312y\210\313\310w\210\314\3156\316Q!\205L \3067\306\224\205: 7\2247\225{)\3177\317\224\205J 7\2247\225{)D\211)\205\227@A@\212\312y\2105\312U\204%\310\2118\2119\204\307 \320\3216\322Q\310\311#?\2118\203\205 \311\2119\202k :\203\226 `:V\203\226 :\202\227 e;\317\323;`\"8)\206\300 :\203\265 `:V\203\265 :\202\266 e;\324\323;`\"8)?\2119\203n 8*\204%\312y\210\313\310w\210\314\325!\203\310\3177\317\224\205\352 7\2247\225{)<=\314\326!\203\3067\306\224\2057\2247\225{)=<=*D\206\212\310\211=<\314\327!\205\266\3177\317\224\205,7\2247\225{)<\314\326!\203G\3067\306\224\205D7\2247\225{)=\330`\306\312#\211>\203V>b\210)\331\310w\210\314\332!\204\261\212\212\312y\210`)?\310\210:\203~`:V\203~:\202e;\324\323;`\"8)\203\231\333\334?\"\210\334\310x\210\202m\331\310x\210h\335U*\205\266\336 \210\337\310w\210\314\332!\205\266<=D+\206\314\340!\203\366\310\3177\317\224\205\3207\2247\225{)<=\314\326!\203\355\3067\306\224\205\3527\2247\225{)=<=*D\206\314\341!\2032\310\3177\317\224\205\f7\2247\225{)<=\314\326!\203)\3067\306\224\205&7\2247\225{)=<=*D\206\314@!\203]\3067\306\224\205H7\2247\225{)\3177\317\224\205X7\2247\225{)D\202u\314\342!\203x\3067\306\224\205r7\2247\225{)\310D\206\314\343!\203\242\3067\306\224\205\2157\2247\225{)\3447\344\224\205\2357\2247\225{)D\202\377\314\345!\204\322\314\346!\203\322\3067\306\224\205\2757\2247\225{)\3447\344\224\205\3157\2247\225{)D\202\377\314\347!\204\314\350!\203\3067\306\224\205\3557\2247\225{)\3447\344\224\205\3757\2247\225{)D\206\310\2113\2035S\2115\202_ \314\3156\351Q!\203] 5T\2115\202_ 5\312U\2042\352\353!\202\226\310\211A?B\205Z\212\312y\210`)?\212\310\210`)AB\205Z\354B?A#*\210C\355=\203\200`4W\203|\352\356\357 \312y\210`\310\210`{#\210\202\200\360\306!\2103@3A@2b\210\312y\210\361\n\f	$).\n\207" [end-struct end-block beg-block end-name beg-name case-fold-search 1 window-start nil t 0 " 	0-9" looking-at "end[ 	]*" "?\\([ 	]+\\(\\sw+\\)\\)?\\>" 3 re-search-backward "\\(" "\\)" parse-partial-sexp 4 "\\(\\(\\sw+\\)[ 	]*:\\)?[ 	]*\\(do\\)\\>" "\\(\\sw+\\)[ 	]*:" "\\(\\(\\sw+\\)[ 	]*:\\)?[ 	]*\\(if\\)\\>" scan-lists " 	" "then\\>" search-backward "!" 38 f90-next-statement " 	0-9&" "\\(\\(\\sw+\\)[ 	]*:\\)?[ 	]*\\(where\\|forall\\)[ 	]*(.*)[ 	]*\\(!\\|$\\)" "\\(\\(\\sw+\\)[ 	]*:\\)?[ 	]*\\(select\\)[ 	]*case[ 	]*(" "\\(interface\\|block[	]*data\\)\\>" "\\(program\\)[ 	]+\\(\\sw+\\)\\>" 2 "module[ 	]*procedure\\>" "\\(module\\)[ 	]+\\(\\sw+\\)\\>" "end[ 	]*\\(function\\|subroutine\\)" "[^!\"&\n]*\\(function\\|subroutine\\)[ 	]+\\(\\sw+\\)" "\\b" message "No matching beginning." f90-change-keywords blink "Matches %s: %s" what-line sit-for f90-block-match end-point matching-beg top-of-window count f90-blocks-re arg notexist stop f90-cache-position beg-pnt struct label pos bol f90-type-def-re eol f90-auto-keyword-case f90-smart-end] 11 (#$ . 59397) nil])
#@72 Inserts an complete end statement matching beginning of present block.
(defalias 'f90-insert-end #[nil "\203 \202	 \301\302c\210\303 )\207" [f90-smart-end blink "end" f90-indent-new-line] 1 (#$ . 62583) nil])
#@107 Typing `\[help-command] or `? lists all the F90 abbrevs. 
Any other key combination is executed normally.
(defalias 'f90-abbrev-start #[nil "\306\211\nc\210\307\310\"\203 \311 \312	!\202 \313 \314U\204' \f=\203, \315 \202> \307\310\"\2039 	\211\202> C\211*\207" [c e last-command-char emacs-version help-char unread-command-event nil string-match "XEmacs" next-command-event event-to-character read-event 63 f90-abbrev-help unread-command-events] 3 (#$ . 62803) nil])
#@49 List the currently defined abbrevs in F90 mode.
(defalias 'f90-abbrev-help #[nil "\300\301!\210\302\303 !\210\300\304!\207" [message "Listing abbrev table..." display-buffer f90-prepare-abbrev-list-buffer "Listing abbrev table...done"] 2 (#$ . 63292) nil])
(defalias 'f90-prepare-abbrev-list-buffer #[nil "\212\300\301!q\210\302 \210\303\304\305\"\210eb\210\306\307!\210\310 \210)\300\301!\207" [get-buffer-create "*Abbrevs*" erase-buffer insert-abbrev-table-description f90-mode-abbrev-table t set-buffer-modified-p nil edit-abbrevs-mode] 3])
#@40 Upcase all F90 keywords in the buffer.
(defalias 'f90-upcase-keywords #[nil "\300\301!\207" [f90-change-keywords upcase-word] 2 (#$ . 63842) nil])
#@44 Capitalize all F90 keywords in the buffer.
(defalias 'f90-capitalize-keywords #[nil "\300\301!\207" [f90-change-keywords capitalize-word] 2 (#$ . 63995) nil])
#@42 Downcase all F90 keywords in the buffer.
(defalias 'f90-downcase-keywords #[nil "\300\301!\207" [f90-change-keywords downcase-word] 2 (#$ . 64160) nil])
#@40 Upcase all F90 keywords in the region.
(defalias 'f90-upcase-region-keywords #[(beg end) "\302\303	#\207" [beg end f90-change-keywords upcase-word] 4 (#$ . 64319) "*r"])
#@44 Capitalize all F90 keywords in the region.
(defalias 'f90-capitalize-region-keywords #[(beg end) "\302\303	#\207" [beg end f90-change-keywords capitalize-word] 4 (#$ . 64496) "*r"])
#@42 Downcase all F90 keywords in the region.
(defalias 'f90-downcase-region-keywords #[(beg end) "\302\303	#\207" [beg end f90-change-keywords downcase-word] 4 (#$ . 64685) "*r"])
(defalias 'f90-change-keywords #[(change-word &optional beg end) "\212\203	 \202\n e	\203 	\202 d\306\n\307\307\f\307\310\260	e\311\312 \311\211b\210\313\216\314	\315#\205\214 \316`\"\3178\2047 \3208\2047 \212\321y\210\322\311w\210\323\324!)\2047 `\212\325\326!\210`)\211{\327!\210{\230\2047 \315\2027 .\207" [beg end f90-keywords-re f90-procedures-re f90-hpf-keywords-re f90-operators-re "\\(" "\\|" "\\)" nil buffer-modified-p ((byte-code "\204 \301\302!\210\302\207" [modified set-buffer-modified-p nil] 2)) re-search-forward t parse-partial-sexp 3 4 0 " 	0-9" looking-at "#" backward-word 1 -1 back-point saveword modified state ref-point keyword-re change-word] 10])
(provide 'f90)
