;ELC   
;;; Compiled by pot@pot.cnuce.cnr.it on Tue Mar 18 15:51:06 2003
;;; from file /home/pot/gnu/emacs-pretest.new/lisp/progmodes/f90.el
;;; in Emacs version 21.3
;;; with bytecomp version 2.85.4.1
;;; 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"))

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


(byte-code "\300\301\302\303\304\305%\210\300\306\302\307\310\311\304\301&\207" [custom-declare-group f90 nil "Fortran-90 mode" :group languages f90-indent "Fortran-90 indentation" :prefix "f90-"] 8)
#@42 *Extra indentation applied to DO blocks.
(custom-declare-variable 'f90-do-indent '3 '(#$ . -819) :type 'integer :group 'f90-indent)
#@73 *Extra indentation applied to IF, SELECT CASE, WHERE and FORALL blocks.
(custom-declare-variable 'f90-if-indent '3 '(#$ . -957) :type 'integer :group 'f90-indent)
#@70 *Extra indentation applied to TYPE, INTERFACE and BLOCK DATA blocks.
(custom-declare-variable 'f90-type-indent '3 '(#$ . -1126) :type 'integer :group 'f90-indent)
#@74 *Extra indentation applied to PROGRAM/MODULE/SUBROUTINE/FUNCTION blocks.
(custom-declare-variable 'f90-program-indent '2 '(#$ . -1295) :type 'integer :group 'f90-indent)
#@55 *Extra indentation applied to F90 continuation lines.
(custom-declare-variable 'f90-continuation-indent '5 '(#$ . -1471) :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 '"!!$" '(#$ . -1633) :type 'string :group 'f90-indent)
#@57 *Regexp saying which comments to be indented like code.
(custom-declare-variable 'f90-indented-comment-re '"!" '(#$ . -1814) :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\\$" '(#$ . -1979) :type 'regexp :group 'f90-indent)
#@70 *t makes automatic insertion of & at beginning of continuation line.
(custom-declare-variable 'f90-beginning-ampersand 't '(#$ . -2165) :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 '(#$ . -2336) :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 '"[-+\\*/><=,% 	]" '(#$ . -2655) :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 '(#$ . -2833) :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 '(#$ . -3008) :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 '(#$ . -3301) :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\\)\\)\\>" (#$ . 3433))
#@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\\)\\>" (#$ . 4345))
#@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\\)[ 	]*(" (#$ . 4851))
#@38 Regexp matching intrinsic operators.
(defconst f90-operators-re "\\.\\(and\\|eqv?\\|false\\|g[et]\\|l[et]\\|n\\(e\\(\\|qv\\)\\|ot\\)\\|or\\|true\\)\\." (#$ . 6033))
#@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\\)\\>" (#$ . 6204))
#@71 This does fairly subdued highlighting of comments and function calls.
(defvar f90-font-lock-keywords-1 (list '("\\<\\(module[ 	]*procedure\\)\\>" (1 font-lock-keyword-face)) '("\\<\\(end[ 	]*\\(program\\|module\\|function\\|subroutine\\)\\)\\>[ 	]*\\(\\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)) '("\\<\\(\\(?:end[ 	]*\\)?type\\)\\>\\([^()\n]*::\\)?[ 	]*\\(\\sw+\\)" (1 font-lock-keyword-face) (3 font-lock-function-name-face)) "\\<\\(\\(end[ 	]*\\)?\\(interface\\|block[ 	]*data\\)\\|contains\\)\\>") (#$ . 7255))
#@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 t) (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) (#$ . 7963))
#@55 Highlights all F90 keywords and intrinsic procedures.
(defvar f90-font-lock-keywords-3 (byte-code "\304	\n\305D\306F\"\207" [f90-font-lock-keywords-2 f90-keywords-level-3-re f90-operators-re f90-procedures-re append (1 font-lock-keyword-face keep) "\\<real\\>"] 6) (#$ . 9388))
#@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) (#$ . 9674))
#@48 *Default expressions to highlight in F90 mode.
(defvar f90-font-lock-keywords f90-font-lock-keywords-2 (#$ . -9847))
#@42 Syntax table in use in F90 mode buffers.
(defvar f90-mode-syntax-table nil (#$ . 9970))
(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 (#$ . 10467))
(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 \303\nB\356\303\357\360#\210\361\303!\204\324\362\202\324\305\nB\356\305\357\363#\210\361\305!\204\306\364!\307\f\365\366\367B#\210\356\367\370\371#\210\307\f\372\373\374B#\210\356\374\370\371#\210\307\f\375\376\377B#\210\356\377\370\371#\210\307\f\201J \201K C#\210\307\f\201L \201M \201N B#\210\307\f\201O \201P \201Q B#\210\307\f\201R \201S \201T B#\210\f)\201U \305\"\210\201U \201V \201W \"\210\201U \201X \201W \"\210\356\201V \370\201W #\210\356\201X \370\201Y #\210\201Z \201[ M\210\201\\ \201] M\210\201^ \201_ M\210\201` \201a M\210\201@ \nB\356\201@ \357\201b #\210\361\201@ !\204\343\306\201c !\307\f\201d \201e \201` B#\210\307\f\201f \201g \201^ B#\210\307\f\201h \201i \201\\ B#\210\307\f\201j \201k \201Z B#\210\307\f\201l \201K C#\210\307\f\201m \201n \201V B#\210\307\f\201o \201p \201X B#\210\f)@\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} \364\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\356\335\370\371#\210\307\201\214 \201\215 #\210\307\201\216 \201\217 #\210\356\313\370\371#\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\201A \nB\201\232 A\201B \nB\201\233 B\201C \nB\201\234 C\201D \nB\201\235 D\201E \nB\201\236 E\201F \nB\201\237 F\201G \nB\201\240 G\201H \nB\361\201H !\2044\201\241 H\201\242 \201H !\210\201I \nB\361\201I !\204O\201\241 I\201\242 \201I !\207" [f90-mode-map emacs-version current-load-list f90-xemacs-menu 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" put variable-documentation "XEmacs menu for F90 mode." 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]) "Submenu for change of case." "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 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 [line] "-----------------" [dkb] "Downcase Keywords (buffer)" f90-downcase-keywords [ckb] "Capitalize Keywords (buffer)" f90-capitalize-keywords [ukb] "Upcase Keywords (buffer)" f90-upcase-keywords 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] "Submenu for highlighting using font-lock-mode." "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" [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\\)\\>\\([^(\n]*::\\)?[ 	]*\\(\\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) (#$ . 17416))
(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\311!\210\301B\312\301!\204 \313	\204\n\314\301\313\"\210\315	\316\317\313$\210\315	\320\321\313$\210\315	\322\323\313$\210\315	\324\325\313$\210\315	\326\327\313$\210\315	\330\331\313$\210\315	\332\333\313$\210\315	\334\335\313$\210\315	\336\337\313$\210\315	\340\341\313$\210\315	\342\343\313$\210\315	\344\345\313$\210\315	\346\347\313$\210\315	\350\351\313$\210\315	\352\353\313$\210\315	\354\355\313$\210\315	\356\357\313$\210\315	\360\361\313$\210\315	\362\363\313$\210\315	\364\365\313$\210\315	\366\367\313$\210\315	\370\371\313$\210\315	\372\373\313$\210\315	\374\375\313$\210\315	\376\377\313$\210\315	\201@ \201A \313$\210\315	\201B \201C \313$\210\315	\201D \201E \313$\210\315	\201F \201G \313$\210\315	\201H \201I \313$\210\315	\201J \201K \313$\210\315	\201L \201M \313$\210\315	\201N \201O \313$\210\315	\201P \201Q \313$\210\315	\201R \201S \313$\210\315	\201T \201U \313$\210\315	\201V \201W \313$\210\315	\201X \201Y \313$\210\315	\201Z \201[ \313$\210\315	\201\\ \201] \313$\210\315	\201^ \201_ \313$\210\315	\201` \201a \313$\210\315	\201b \201c \313$\210\315	\201d \201e \313$\210\315	\201f \201g \313$\210\315	\201h \201i \313$\210\315	\201j \201k \313$\210\315	\201l \201m \313$\210\315	\201n \201o \313$\210\315	\201p \201q \313$\210\315	\201r \201s \313$\210\315	\201t \201u \313$\210\315	\201v \201w \313$\210)\313\207" [current-load-list f90-mode-abbrev-table abbrevs-changed ac put f90-add-imenu-menu menu-enable (not f90-imenu) fboundp eval-when-compile 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)
#@23 Hook run by F90 mode.
(custom-declare-variable 'f90-mode-hook 'nil '(#$ . 20672) :type 'hook :options '(f90-add-imenu-menu) :group 'f90)
#@2219 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-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/\"\203z \336\307\337\321#\210\340\341!\203z 0\203z \342\3100\"\204z \343\3440!!\210\345\3331\"\210\313\346!\210\347&\313\350!\321L\210\313\351!\2102)\313\352!\353L\210\354\355!\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 featurep menubar assoc set-buffer-menubar copy-sequence add-submenu font-lock-defaults ((f90-font-lock-keywords f90-font-lock-keywords-1 f90-font-lock-keywords-2 f90-font-lock-keywords-3 f90-font-lock-keywords-4) nil t) imenu-case-fold-search imenu-generic-expression add-log-current-defun-function f90-current-defun run-hooks f90-mode-hook indent-tabs-mode emacs-version current-menubar f90-xemacs-menu f90-imenu-generic-expression] 4 (#$ . 20817) nil])
(defalias 'f90-get-beg-of-line #[nil "\212\300 \210`)\207" [beginning-of-line] 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\303 \210\304\305!\203 \306\307y!\204 \212\303 \210`)\310\210	\203) `	V\203) 	\202* e\311\312\n`\"8)\203A \313\314\"\210\314\310x\210\202 \315\310x\210h\316U*\207" [bol f90-cache-position beg-pnt beginning-of-line looking-at "[ 	]*\\(!\\|$\\)" zerop -1 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\300 \210\301\302w\210i)\207" [beginning-of-line " 	0-9" nil] 2 (#$ . 25544)])
(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) "\302 \210\204 \303\304w\210\305 \210\306i!\203 	j\207\307	\310\"\207" [no-line-number col beginning-of-line " 	0-9" nil delete-horizontal-space zerop indent-to 1] 3 (#$ . 25837)])
(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 \307 \210\310\311\"\210\n\203: `\nV\203: \n\202; e\312\306`\"8)\203N \310\311\"\210\202, \313\224\313\225{	+\207" [eol type f90-cache-position beg-pnt nil 4 parse-partial-sexp beginning-of-line re-search-forward "[!]+" 3 0] 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 (#$ . 26817)])
(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 (#$ . 27074)])
(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 (#$ . 27514)])
(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\243 \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\240 \212\320 \210\307\321!\203V \322\323y!\204I \212\320 \210`)\306\210\203n `V\203n \202o e\324\325`\"8)\203\210 \326\327\f\"\210\327\306x\210\202` \316\306x\210h\330U*\205\243 \331 \210\332\306w\210\307\317!\205\243 	D+\207" [label struct arg pos bol f90-cache-position nil looking-at "\\(\\(\\sw+\\)[ 	]*:\\)?[ 	]*\\(if\\)\\>" 3 "\\(\\sw+\\)[ 	]*:" 1 scan-lists 0 " 	" "then\\>" beginning-of-line "[ 	]*\\(!\\|$\\)" zerop -1 4 parse-partial-sexp search-backward "!" 38 f90-next-statement " 	0-9&" beg-pnt] 5 (#$ . 28001)])
(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 (#$ . 28942)])
(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 (#$ . 29451)])
(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 (#$ . 29909)])
(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 (#$ . 30635)])
(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 \205S \212\307 \210\310\311!\203 \312\313y!\204 \212\307 \210`)\305\210\2033 `V\2033 \2024 e\314\315\f`\"8)\203K \316\317\n\"\210\317\305x\210\202% \320\305x\210h\321U*)\212\307 \210\310\311!\203f \312\313y!\204Y \212\307 \210`)\305\210\203~ `V\203~ \202 e\314\315\f`\"8)\203\226 \316\317\n\"\210\317\305x\210\202p \320\305x\210h\321U*	\204\253 \204\253 \322\202\321 	\204\267 \203\267 \323\202\321 	\203\303 \204\303 \324\202\321 	\203\317 \203\317 \325\202\321 \326 *\207" [cont pcont bol f90-cache-position beg-pnt nil f90-previous-statement beginning-of-line looking-at "[ 	]*\\(!\\|$\\)" zerop -1 4 parse-partial-sexp search-backward "!" " 	" 38 single begin end middle error] 4 (#$ . 31426)])
(put 'f90-present-statement-cont 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'f90-indent-line-no #[nil "\204 \301\302\303w!\204 \304\305!\203 \306 \210\307\303w\207" [f90-leave-line-no zerop " 	" nil looking-at "[0-9]" delete-horizontal-space " 	0-9"] 3])
(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\304 \210`)\212\303\210`)\n\205 \305\n	#*\207" [eol bol f90-auto-keyword-case nil beginning-of-line 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\307 \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 beginning-of-line 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\372 \306\211\212\307 \205f \212\310 \210\311\312!\203, \313\314y!\204 \212\310 \210`)\306\210\203D `V\203D \202E e+\315\316+`\"8)\203^ \317\320\f\"\210\320\306x\210\2026 \321\306x\210h\322U*)\212\310 \210\311\312!\203y \313\314y!\204l \212\310 \210`)\306\210\203\221 `V\203\221 \202\222 e+\315\316+`\"8)\203\253 \317\320\f\"\210\320\306x\210\202\203 \321\306x\210h\322U*\204\300 \204\300 \323\202\346 \204\314 \203\314 \324\202\346 \203\330 \204\330 \325\202\346 \203\344 \203\344 \326\202\346 \327 *\211\325=\204\f \326=\204\f \311\330!\204\f \331 \310 \210\332\333\212\306\210`)\334#\203\215\310 \210\321\306w\210\311\335!\203X\306\336,\336\224\205*,\224,\225{)-.\311\337!\203G\340,\340\224\205D,\224,\225{).-.*D\203X	/\\\202\212\212\306\211.-\311\341!\205	\336,\336\224\205t,\224,\225{)-\311\337!\203\217\340,\340\224\205\214,\224,\225{).\342`\340\343#\2110\203\2360b\210)\321\306w\210\311\344!\204\212\310 \210\311\312!\203\272\313\314y!\204\255\212\310 \210`)\306\210\203\322`V\203\322\202\323e+\315\316+`\"8)\203\354\317\320\f\"\210\320\306x\210\202\304\321\306x\210h\322U*\205	\345 \210\346\306w\210\311\344!\205	-.D+\204\205\311\347!\203I\306\336,\336\224\205#,\224,\225{)-.\311\337!\203@\340,\340\224\205=,\224,\225{).-.*D\204\205\311\350!\203\212\306\336,\336\224\205_,\224,\225{)-.\311\337!\203|\340,\340\224\205y,\224,\225{).-.*D\203\212	1\\\306\210\332\333\n\334#\2035\310 \210\351\306w\210\311\335!\203\340\306\336,\336\224\205\262,\224,\225{)-.\311\337!\203\317\340,\340\224\205\314,\224,\225{).-.*D\203\340	/\\\202/\212\306\211.-\311\341!\205\221\336,\336\224\205\374,\224,\225{)-\311\337!\203\340,\340\224\205,\224,\225{).\342`\340\343#\2110\203&0b\210)\321\306w\210\311\344!\204\214\212\310 \210\311\312!\203B\313\314y!\2045\212\310 \210`)\306\210\203Z`V\203Z\202[e+\315\316+`\"8)\203t\317\320\f\"\210\320\306x\210\202L\321\306x\210h\322U*\205\221\345 \210\346\306w\210\311\344!\205\221-.D+\204\311\347!\203\321\306\336,\336\224\205\253,\224,\225{)-.\311\337!\203\310\340,\340\224\205\305,\224,\225{).-.*D\204\311\350!\203\306\336,\336\224\205\347,\224,\225{)-.\311\337!\203\340,\340\224\205,\224,\225{).-.*D\203	1\\\202/\3112!\203$	1Z\202/\311\352!\203/	/Z\306\210\202\215	,\207" [cont icol epnt pcont bol f90-cache-position nil f90-previous-statement beginning-of-line looking-at "[ 	]*\\(!\\|$\\)" zerop -1 4 parse-partial-sexp search-backward "!" " 	" 38 single begin end middle error "[ 	]*[0-9]" current-indentation re-search-forward "\\(if\\|do\\|select\\|where\\|forall\\)" t "\\(\\(\\sw+\\)[ 	]*:\\)?[ 	]*\\(do\\)\\>" 3 "\\(\\sw+\\)[ 	]*:" 1 "\\(\\(\\sw+\\)[ 	]*:\\)?[ 	]*\\(if\\)\\>" scan-lists 0 "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 (#$ . 33640)])
#@59 Calculate the indent column based on previous statements.
(defalias 'f90-calculate-indent #[nil "\306\211\307`\212\310 \204 \311\202\306\211\212\310 \205k \212\312 \210\313\314!\203. \315\316y!\204! \212\312 \210`)\306\2107\203I `7V\203I 7\202J e8\317\3208`\"8)\203c \321\322\"\210\322\306x\210\2028 \323\306x\210h\324U*)\212\312 \210\313\314!\203~ \315\316y!\204q \212\312 \210`)\306\2107\203\231 `7V\203\231 7\202\232 e8\317\3208`\"8)\203\263 \321\322\"\210\322\306x\210\202\210 \323\306x\210h\324U*\f\204\310 \n\204\310 \325\202\356 \f\204\324 \n\203\324 \326\202\356 \f\203\340 \n\204\340 \327\202\356 \f\203\354 \n\203\354 \330\202\356 \331 *\211\327=\203\335\306\211\212\310 \205N\212\312 \210\313\314!\203\315\316y!\204\212\312 \210`)\306\2107\203,`7V\203,7\202-e8\317\3208`\"8)\203F\321\322\"\210\322\306x\210\202\323\306x\210h\324U*)\212\312 \210\313\314!\203a\315\316y!\204T\212\312 \210`)\306\2107\203|`7V\203|7\202}e8\317\3208`\"8)\203\226\321\322\"\210\322\306x\210\202k\323\306x\210h\324U*\f\204\253\n\204\253\325\202\321\f\204\267\n\203\267\326\202\321\f\203\303\n\204\303\327\202\321\f\203\317\n\203\317\330\202\321\331 *\326=\204\335\310 \210\202\366 \n\326=\203\364\212\312 \210\332\306w\210i)9\\\202\n\330=\203 \333 \202\212\312 \210\332\306w\210i)\323\306w\210\313\334!\203\335 \202\201\212\306\211:;\313\336!\205\317\337<\337\224\2057<\224<\225{);\313\340!\203R\341<\341\224\205O<\224<\225{):\342`\341\311#\211=\203a=b\210)\323\306w\210\313\343!\204\312\212\312 \210\313\314!\203}\315\316y!\204p\212\312 \210`)\306\2107\203\230`7V\203\2307\202\231e8\317\3208`\"8)\203\262\321\322\"\210\322\306x\210\202\207\323\306x\210h\324U*\205\317\344 \210\345\306w\210\313\343!\205\317;:D+\204R\313\346!\203\306\337<\337\224\205\351<\224<\225{);:\313\340!\203\341<\341\224\205<\224<\225{):;:*D\204R\313\347!\203K\306\337<\337\224\205%<\224<\225{);:\313\340!\203B\341<\341\224\205?<\224<\225{):;:*D\204R\313>!\203Z?\\\202\201\313\350!\203\236\306\337<\337\224\205p<\224<\225{);:\313\340!\203\215\341<\341\224\205\212<\224<\225{):;:*D\203\236@\\\202\201\313A!\203\311\341<\341\224\205\264<\224<\225{)\337<\337\224\205\304<\224<\225{)D\202\341\313\351!\203\354\341<\341\224\205\336<\224<\225{)\306D\203\354B\\\202\201\313\352!\203\341<\341\224\205<\224<\225{)\353<\353\224\205<\224<\225{)D\202s\313\354!\204F\313\355!\203F\341<\341\224\2051<\224<\225{)\353<\353\224\205A<\224<\225{)D\202s\313\356!\204v\313\357!\203v\341<\341\224\205a<\224<\225{)\353<\353\224\205q<\224<\225{)D\204|\313\360!\203\201C\\b\210\312 \210\313\361!\204\313\362!\203\230\311\202\332\306w\210\313>!\204\252\313D!\203\262?Z\202\313\363!\203\300@Z\202\313E!\203\317BZ\202\313\364!\204\313\365F\366Q!\203\341<\341\224\205\356<\224<\225{)\337<\337\224\205\376<\224<\225{)D\203CZ),\207" [pnt case-fold-search cont icol pcont bol nil t f90-previous-statement 0 beginning-of-line looking-at "[ 	]*\\(!\\|$\\)" zerop -1 4 parse-partial-sexp search-backward "!" " 	" 38 single begin end middle error " 	0-9" current-indentation "[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 (#$ . 36978) 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\302 \210\303\304y!\211\203 \305\306!\204 )\207" [not-first-statement nil beginning-of-line zerop -1 looking-at "[ 	0-9]*\\(!\\|$\\|#\\)"] 2 (#$ . 41205) 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\302 \210\303\304y!\205 m?\211\203 \305\306!\204 )\207" [not-last-statement nil beginning-of-line zerop 1 looking-at "[ 	0-9]*\\(!\\|$\\)"] 2 (#$ . 41522) 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\311 \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\322\n!\204N\323\f\310\324#\203N\311 \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\202\213 \313\325\326Q!\203\213 \306\306\224\2056\224\225{)\327\327\224\205C\224\225{)D\203\213 \nT\202\213 \311 \210\322\n!\203[\202`\330\331!\210\310+\207" [matching-beg case-fold-search count arg f90-program-block-re f90-blocks-re 1 t nil beginning-of-line " 	0-9" looking-at "\\(program\\)[ 	]+\\(\\sw+\\)\\>" 2 "module[ 	]*procedure\\>" "\\(module\\)[ 	]+\\(\\sw+\\)\\>" "end[ 	]*\\(function\\|subroutine\\)" "[^!'\"&\n]*\\(function\\|subroutine\\)[ 	]+\\(\\sw+\\)" zerop re-search-backward move "end[ 	]*" "?\\([ 	]+\\(\\sw+\\)\\)?\\>" 3 message "No beginning-found."] 4 (#$ . 41830) 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\311 \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\317\n!\204\320\310\321#\203\311 \210\312\310w\210\313\322!\203u \306\306\224\205c \f\224\f\225{)\323\323\224\205p \f\224\f\225{)D\202\306 \313\324!\204\237 \313\325!\203\237 \306\306\224\205\215 \f\224\f\225{)\323\323\224\205\232 \f\224\f\225{)D\202\306 \313\326!\204\317 \313\327!\203\317 \306\306\224\205\267 \f\224\f\225{)\323\323\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\317\n!\203\202\330\331!\210\310+\207" [matching-end case-fold-search count f90-blocks-re arg f90-program-block-re 1 t nil beginning-of-line " 	0-9" looking-at "end[ 	]*" "?\\([ 	]+\\(\\sw+\\)\\)?\\>" 3 zerop re-search-forward move "\\(program\\)[ 	]+\\(\\sw+\\)\\>" 2 "module[ 	]*procedure\\>" "\\(module\\)[ 	]+\\(\\sw+\\)\\>" "end[ 	]*\\(function\\|subroutine\\)" "[^!'\"&\n]*\\(function\\|subroutine\\)[ 	]+\\(\\sw+\\)" message "No end found."] 4 (#$ . 43290) 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 (#$ . 44573) 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\306 \210\307\310!!\203 `\311\225|\210\202! c\210\312\313y!\203F `\314!W\203F \307\310!!\203@ `\311\225|\210\202! c\210\202! \305\211\223)\207" [end end-region beg-region f90-comment-region make-marker nil beginning-of-line looking-at regexp-quote 0 zerop 1 marker-position] 4 (#$ . 45013) "*r"])
#@34 Indent current line as F90 code.
(defalias 'f90-indent-line #[(&optional no-update) "\306\211\307 \310	`\306\223\210\311 \210\212\312 \205b \212\311 \210\313\314!\203( \315\316y!\204 \212\311 \210`)\306\210\203@ `V\203@ \202A e#\317\320#`\"8)\203Z \321\322\f\"\210\322\306x\210\2022 \323\306x\210h\324U*)\203o \310\323\306w\210\202\211 $\204\205 \315\323\306w!\204\205 \313\325!\203\205 \326 \210\327\306w\210\313\322!\203\341 \313\330!\203\231 \331\202\335 %\203\251 \313%!\203\251 \331\202\335 \313\332&!!\203\266 \331\202\335 \313'!\203\314 \212\323\306x\210n)\203\314 \333 \202\335 \323\306x\210n\203\330 \331\202\332 iT(]\202\362 \313\334!\203\357 )\203\357 \335 \210\333 \315iZ!\204 \n*\311 \210\n\204\n\327\306w\210\326 \210\315i!\203*j\202\336*\337\"\210*`\340	!W\203-\340	!b\210+\204Y\306\211,-\205W\212\311 \210`)\212\306\210`),-\205W\341-\f,#*\210.\203a\342 \210	\306\211\223,\207" [case-fold-search pos no-line-number indent bol f90-cache-position nil make-marker t beginning-of-line f90-previous-statement looking-at "[ 	]*\\(!\\|$\\)" zerop -1 4 parse-partial-sexp search-backward "!" " 	" 38 "[0-9]" delete-horizontal-space " 	0-9" "!!!" 0 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 (#$ . 45560) 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\311 \210\f\204% \312\313\306w!\204% \314\315!\203% \316 \210\317\306w\210\320\321!\210\306\210\316 \210\203A `V\203A \202B e\322\323`\"8)\212\311 \210\314\324!\203^ \312\325y!\204Q \212\311 \210`)\306\210\203w `V\203w \202x e\326\323`\"8)\203\222 \327\330\"\210\330\306x\210\202i \313\306x\210h\331U*\n\203\246 	\204\246 \332c\210\306\211 \205\316 \212\311 \210`)\212\306\210`) \205\316 \333 #*\210\334 \210\n\204\340 	\203\343 !\203\343 \332c\210\320\321!+\207" [case-fold-search cont string abbrev-mode f90-leave-line-no f90-cache-position nil t expand-abbrev beginning-of-line zerop " 	" looking-at "[0-9]" delete-horizontal-space " 	0-9" f90-indent-line no-update 3 parse-partial-sexp "[ 	]*\\(!\\|$\\)" -1 4 search-backward "!" 38 "&" f90-change-keywords newline beg-pnt bol eol f90-auto-keyword-case f90-beginning-ampersand] 4 (#$ . 47095) 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\311 \210\312\313!\203? \314\315!\210\316\317y!\203? `CW\204' \310\211F\212\320 \205\232 \212\311 \210\312\321!\203[ \316\322y!\204N \212\311 \210`)G\310\210H\203w `HV\203w H\202x eI\323\324I`\"8)\203\222 \325\326G\"\210\326\310x\210\202f \327\310x\210h\330U*F)\212\311 \210\312\321!\203\256 \316\322y!\204\241 \212\311 \210`)G\310\210H\203\312 `HV\203\312 H\202\313 eI\323\324I`\"8)\203\345 \325\326G\"\210\326\310x\210\202\271 \327\310x\210h\330U*F\204\373 \204\373 \331\202$F\204\203\332\202$F\203\204\333\202$F\203\"\203\"\334\202$\335 *\211\334=\2042\333=\203\"\320 \203\"\310\211F\212\320 \205\222\212\311 \210\312\321!\203S\316\322y!\204F\212\311 \210`)G\310\210H\203o`HV\203oH\202peI\323\324I`\"8)\203\212\325\326G\"\210\326\310x\210\202^\327\310x\210h\330U*F)\212\311 \210\312\321!\203\246\316\322y!\204\231\212\311 \210`)G\310\210H\203\302`HV\203\302H\202\303eI\323\324I`\"8)\203\335\325\326G\"\210\326\310x\210\202\261\327\310x\210h\330U*F\204\363\204\363\331\202F\204 \203 \332\202F\203\204\333\202F\203\203\334\202\335 *\211\202'`H\314\315!\210\212\311 \210\336\310w\210i)\211@\311 \210\336\310w\210\310\312\337!\205w\310\340J\340\224\205VJ\224J\225{)K\312\341!\203r\317J\317\224\205oJ\224J\225{)K\nK*D\211\203\201L\202\240\212\310\211K\312\342!\2054\340J\340\224\205\234J\224J\225{)\312\341!\203\266\317J\317\224\205\263J\224J\225{)K\343`\317\344#\211M\203\305Mb\210)\327\310w\210\312\345!\2040\212\311 \210\312\321!\203\341\316\322y!\204\324\212\311 \210`)G\310\210H\203\375`HV\203\375H\202\376eI\323\324I`\"8)\203\325\326G\"\210\326\310x\210\202\354\327\310x\210h\330U*\2054\346 \210\347\310w\210\312\345!\2054\nKD+\211\204\271\312\350!\205q\310\340J\340\224\205PJ\224J\225{)K\312\341!\203l\317J\317\224\205iJ\224J\225{)K\nK*D\211\204\271\312\351!\205\255\310\340J\340\224\205\214J\224J\225{)K\312\341!\203\250\317J\317\224\205\245J\224J\225{)K\nK*D\211\204\271\312N!\203\276O\202\240\312P!\203\351\317J\317\224\205\324J\224J\225{)\340J\340\224\205\344J\224J\225{)D\202\312\352!\205\317J\317\224\205\376J\224J\225{)\310D\211\203Q\202\240\312\353!\2035\317J\317\224\205 J\224J\225{)\354J\354\224\2050J\224J\225{)D\202\223\312\355!\204e\312\356!\203e\317J\317\224\205PJ\224J\225{)\354J\354\224\205`J\224J\225{)D\202\223\312\357!?\205\223\312\360!\205\223\317J\317\224\205\201J\224J\225{)\354J\354\224\205\221J\224J\225{)D\211\204\236\312\361!\205\240R\211\203\253@\f\\@\n\203\265\nABA\212\311 \210\312\321!\203\306\316\322y!\204\271\212\311 \210`)G\310\210H\203\342`HV\203\342H\202\343eI\323\324I`\"8)\203\375\325\326G\"\210\326\310x\210\202\321\327\310x\210h\330U*\203\316\316\317y!\203\316`CW\203\316\312\362!\203\224\312\363!\203&\344\202jS\2036\312S!\2036\344\202j\312\364T!!\203C\344\202j\312U!\203Y\212\327\310x\210n)\203Y\365 \202j\327\310x\210n\203e\344\202giTV]\310WX\311 \210W\204{\336\310w\210\366 \210\316i!\203\212Xj\202\217\367X\317\"\210*\202\265\316\370 Y\\Z!\204\265Y\\\371WX\311 \210W\204\265\336\310w\210\366 \210\316i!\203\304Xj\202\311\367X\317\"\210*\202\265\316\317y!\203@`CW\203@\311 \210Z\204\365\316\327\310w!\204\365\312\372!\203\365\366 \210\336\310w\210`H\312\373!\203\344\202\367	\312\374!\203\344\202\367	\312\326!\203j\312\363!\203\"\344\202fS\2032\312S!\2032\344\202f\312\364T!!\203?\344\202f\312U!\203U\212\327\310x\210n)\203U\365 \202f\327\310x\210n\203a\344\202ciTV]\202\367	\212\310\210`)[\212\312\375!\206\240\312\376!\206\240\312\377!\206\240\312\201c !\206\240\312P!\206\240\201d \201e [\201f #*\204\252@\202\367	\312N!\203\272@OZ\202\367	\312\361!\203\311@RZ\202\367	\312\337!\205 \310\340J\340\224\205\337J\224J\225{)K\312\341!\203\373\317J\317\224\205\370J\224J\225{)K\nK*D\211\203\nL\202	\212\310\211K\312\342!\205\275\340J\340\224\205%J\224J\225{)\312\341!\203?\317J\317\224\205<J\224J\225{)K\343`\317\344#\211M\203NMb\210)\327\310w\210\312\345!\204\271\212\311 \210\312\321!\203j\316\322y!\204]\212\311 \210`)G\310\210H\203\206`HV\203\206H\202\207eI\323\324I`\"8)\203\241\325\326G\"\210\326\310x\210\202u\327\310x\210h\330U*\205\275\346 \210\347\310w\210\312\345!\205\275\nKD+\211\204;\312\350!\205\372\310\340J\340\224\205\331J\224J\225{)K\312\341!\203\365\317J\317\224\205\362J\224J\225{)K\nK*D\211\204;\312\351!\2056\310\340J\340\224\205J\224J\225{)K\312\341!\2031\317J\317\224\205.J\224J\225{)K\nK*D\211\203@O\202	\312P!\203k\317J\317\224\205VJ\224J\225{)\340J\340\224\205fJ\224J\225{)D\202\203\312\352!\205\203\317J\317\224\205\200J\224J\225{)\310D\211\203\215Q\202	\312\353!\203\267\317J\317\224\205\242J\224J\225{)\354J\354\224\205\262J\224J\225{)D\202	\312\355!\204\347\312\356!\203\347\317J\317\224\205\322J\224J\225{)\354J\354\224\205\342J\224J\225{)D\202	\312\357!?\205	\312\360!\205	\317J\317\224\205	J\224J\225{)\354J\354\224\205	J\224J\225{)D\211\205	R\211\2037	@\f\203.	@\f\\@\nABA\202\367	\312\201g \\\201h Q!\205f	\317J\317\224\205T	J\224J\225{)\340J\340\224\205d	J\224J\225{)D\211\203\364	A@AAA]\203\212	\212\201i 	@	A@@A@$\210)\312^!\203\226	O\202\343	\312\201j !\203\243	L\202\343	\312_!\203\257	Q\202\343	\312\201g \\\201h Q!\205\343	\317J\317\224\205\314	J\224J\225{)\340J\340\224\205\334	J\224J\225{)D\205\343	R\211\203\356	@\fZ@@\202\367	@\316iZ!\204'\n\310WX\311 \210W\204\n\336\310w\210\366 \210\316i!\203 \nXj\202%\n\367X\317\"\210*\212\311 \210\312\321!\2038\n\316\322y!\204+\n\212\311 \210`)G\310\210H\203T\n`HV\203T\nH\202U\neI\323\324I`\"8)\203o\n\325\326G\"\210\326\310x\210\202C\n\327\310x\210h\330U*\203\316\316\317y!\203\316`CW\203\316\312\362!\203\312\363!\203\230\n\344\202\334\nS\203\250\n\312S!\203\250\n\344\202\334\n\312\364T!!\203\265\n\344\202\334\n\312U!\203\313\n\212\327\310x\210n)\203\313\n\365 \202\334\n\327\310x\210n\203\327\n\344\202\331\niTV]\310WX\311 \210W\204\355\n\336\310w\210\366 \210\316i!\203\374\nXj\202\367X\317\"\210*\202'\n\316\370 Y\\Z!\204'\nY\\\371WX\311 \210W\204'\336\310w\210\366 \210\316i!\2036Xj\202;\367X\317\"\210*\202'\n\310HBb\210C\310\211\223\210B\310\211\223\210\201k \201l `\"\203f\201m  \202ua\205u\310b\201n \201o !.\n\207" [end-struct beg-struct struct cont ind-b ind-curr make-marker point-marker nil beginning-of-line looking-at "[ 	]*[0-9]*\\(!\\|#\\|[ 	]*$\\)" f90-indent-line no-update zerop 1 f90-previous-statement "[ 	]*\\(!\\|$\\)" -1 4 parse-partial-sexp search-backward "!" " 	" 38 single begin end middle error " 	0-9" "\\(\\(\\sw+\\)[ 	]*:\\)?[ 	]*\\(do\\)\\>" 3 "\\(\\sw+\\)[ 	]*:" "\\(\\(\\sw+\\)[ 	]*:\\)?[ 	]*\\(if\\)\\>" scan-lists 0 "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[ 	]*\\($\\|!\\)" "[ 	]*!" "!!!" regexp-quote f90-calculate-indent delete-horizontal-space indent-to current-indentation no-line-no "[0-9]" "[ 	]*$" "[ 	]*#" "end" "\\(do\\|if\\|else\\(if\\|where\\)?\\|select[ 	]*case\\|case\\|where\\|forall\\)\\>" "\\(program\\|module\\|interface\\|block[ 	]*data\\)\\>" 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-directive-comment-re f90-comment-region f90-indented-comment-re comment-column no-line-number col f90-continuation-indent f90-leave-line-no eol f90-blocks-re f90-smart-end f90-end-if-re f90-end-type-re emacs-version transient-mark-mode mark-active "\\(contains\\|\\sw+[ 	]*:\\)" re-search-forward "\\(function\\|subroutine\\)" t "end[ 	]*" "?\\([ 	]+\\(\\sw+\\)\\)?\\>" f90-block-match "end[ 	]*do\\>" string-match "XEmacs" zmacs-deactivate-region run-hooks deactivate-mark-hook] 11 (#$ . 48254) "*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 (#$ . 56911) 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\202\327 	\2030 `	V\2030 	\2021 e\312\310\n`\"8)\203\235 \212\306\212\306\210`)	\203T `	V\203T 	\202U e\312\310\n`\"8)\203\220 \313 \210\314\315\"\210	\203v `	V\203v 	\202w e\307\310\n`\"8)\203\212 \314\315\"\210\202h \316\224\316\225{\f+\317\320!\210c\210\202\327 \321c\210\204\313 \306\211\205\311 \212\313 \210`)\212\306\210`)\205\311 \322#*\210\317\320!\210\203\327 \321c\210)\323 \207" [ctype f90-cache-position beg-pnt eol type no-update nil 3 parse-partial-sexp "&\n&" 4 beginning-of-line re-search-forward "[!]+" 0 newline 1 "&" f90-change-keywords f90-indent-line bol f90-auto-keyword-case f90-beginning-ampersand] 4 (#$ . 57330) nil])
#@56 From fill-column, search backward for break-delimiter.
(defalias 'f90-find-breakpoint #[nil "\212\304 \210`)\305	\"\210\n\203 \306u\210\307!?\205, \310u\202, \307!\203* \311u\202, \310u)\207" [bol f90-break-delimiters f90-break-before-delimiters f90-no-break-re beginning-of-line re-search-backward -1 looking-at nil 2] 3 (#$ . 58186)])
#@76 Break line if non-white characters beyond fill-column. Also, update line. 
(defalias 'f90-do-auto-fill #[nil "\306\211\n\205 \212\307 \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 beginning-of-line f90-change-keywords point-marker move-to-column 3 parse-partial-sexp f90-find-breakpoint f90-break-line beg-pnt] 4 (#$ . 58534) 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 (#$ . 59078) 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 \317\320y!`\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 zerop 1 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 (#$ . 59617) "*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 (#$ . 60373)])
#@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6789\212\312 \210\313\310w\210\314\315:\316Q!\205L \306;\306\224\205: ;\224;\225{)\317;\317\224\205J ;\224;\225{)D\211)\205\245@A@\212\312 \210\3209!\2043\310\211<\211=\204\307 \321\322:\323Q\310\311#?\211<\203\205 \311\211=\202k >\203\226 `>V\203\226 >\202\227 e?\317\324?`\"8)\206\300 >\203\265 `>V\203\265 >\202\266 e?\325\324?`\"8)?\211=\203n <*\2043\312 \210\313\310w\210\314\326!\203\310\317;\317\224\205\352 ;\224;\225{)@A\314\327!\203\306;\306\224\205;\224;\225{)A@A*D\206\212\310\211A@\314\330!\205\306\317;\317\224\205,;\224;\225{)@\314\327!\203G\306;\306\224\205D;\224;\225{)A\331`\306\332#\211B\203VBb\210)\333\310w\210\314\334!\204\301\212\312 \210\314\335!\203r\320\336y!\204e\212\312 \210`)C\310\210>\203\216`>V\203\216>\202\217e?\325\324?`\"8)\203\251\337\340C\"\210\340\310x\210\202}\333\310x\210h\341U*\205\306\342 \210\343\310w\210\314\334!\205\306@AD+\206\314\344!\203\310\317;\317\224\205\340;\224;\225{)@A\314\327!\203\375\306;\306\224\205\372;\224;\225{)A@A*D\206\314\345!\203B\310\317;\317\224\205;\224;\225{)@A\314\327!\2039\306;\306\224\2056;\224;\225{)A@A*D\206\314D!\203m\306;\306\224\205X;\224;\225{)\317;\317\224\205h;\224;\225{)D\202\205\314\346!\203\210\306;\306\224\205\202;\224;\225{)\310D\206\314\347!\203\262\306;\306\224\205\235;\224;\225{)\350;\350\224\205\255;\224;\225{)D\202\314\351!\204\342\314\352!\203\342\306;\306\224\205\315;\224;\225{)\350;\350\224\205\335;\224;\225{)D\202\314\353!\204\314\354!\203\306;\306\224\205\375;\224;\225{)\350;\350\224\205;\224;\225{)D\206\310\2117\203!9S9\202] \314\315:\355Q!\203] 9T9\202] \3209!\204@\356\357!\202\244\310\211ECF\205h\212\312 \210`)C\212\310\210`)EF\205h\360FCE#*\210G\361=\203\216`8W\203\212\356\362\363 \312 \210`\310\210`{#\210\202\216\364\306!\2107@7A@6b\210\312 \210\365\n\f	$).\n\207" [end-struct end-block beg-block end-name beg-name case-fold-search 1 window-start nil t beginning-of-line " 	0-9" looking-at "end[ 	]*" "?\\([ 	]+\\(\\sw+\\)\\)?\\>" 3 zerop re-search-backward "\\(" "\\)" parse-partial-sexp 4 "\\(\\(\\sw+\\)[ 	]*:\\)?[ 	]*\\(do\\)\\>" "\\(\\sw+\\)[ 	]*:" "\\(\\(\\sw+\\)[ 	]*:\\)?[ 	]*\\(if\\)\\>" scan-lists 0 " 	" "then\\>" "[ 	]*\\(!\\|$\\)" -1 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 (#$ . 61368) nil])
#@71 Inserts a 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 (#$ . 64641) nil])
#@106 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 \314=\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 (#$ . 64860) 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 (#$ . 65348) 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 (#$ . 65898) nil])
#@44 Capitalize all F90 keywords in the buffer.
(defalias 'f90-capitalize-keywords #[nil "\300\301!\207" [f90-change-keywords capitalize-word] 2 (#$ . 66051) nil])
#@42 Downcase all F90 keywords in the buffer.
(defalias 'f90-downcase-keywords #[nil "\300\301!\207" [f90-change-keywords downcase-word] 2 (#$ . 66216) 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 (#$ . 66375) "*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 (#$ . 66552) "*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 (#$ . 66741) "*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\213 \316`\"\3178\2047 \3208\2047 \212\321 \210\322\311w\210\323\324!)\2047 `\212\325v\210`)\211{\325!\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 beginning-of-line " 	0-9" looking-at "#" -1 back-point saveword modified state ref-point keyword-re change-word] 10])
#@67 Function to use for `add-log-current-defun-function' in F90 mode.
(defalias 'f90-current-defun #[nil "\212\300 A@)\207" [f90-beginning-of-subprogram] 1 (#$ . 67644)])
(provide 'f90)
