\f
;; Abbrevs have generally two letters, except standard types `c, `i, `r, `t.
-(defvar f90-mode-abbrev-table nil)
-(unless f90-mode-abbrev-table
- (let ((ac abbrevs-changed))
- (define-abbrev-table 'f90-mode-abbrev-table ())
- (define-abbrev f90-mode-abbrev-table "`al" "allocate" nil 0 t)
- (define-abbrev f90-mode-abbrev-table "`ab" "allocatable" nil 0 t)
- (define-abbrev f90-mode-abbrev-table "`as" "assignment" nil 0 t)
- (define-abbrev f90-mode-abbrev-table "`ba" "backspace" nil 0 t)
- (define-abbrev f90-mode-abbrev-table "`bd" "block data" nil 0 t)
- (define-abbrev f90-mode-abbrev-table "`c" "character" nil 0 t)
- (define-abbrev f90-mode-abbrev-table "`cl" "close" nil 0 t)
- (define-abbrev f90-mode-abbrev-table "`cm" "common" nil 0 t)
- (define-abbrev f90-mode-abbrev-table "`cx" "complex" nil 0 t)
- (define-abbrev f90-mode-abbrev-table "`cn" "contains" nil 0 t)
- (define-abbrev f90-mode-abbrev-table "`cy" "cycle" nil 0 t)
- (define-abbrev f90-mode-abbrev-table "`de" "deallocate" nil 0 t)
- (define-abbrev f90-mode-abbrev-table "`df" "define" nil 0 t)
- (define-abbrev f90-mode-abbrev-table "`di" "dimension" nil 0 t)
- (define-abbrev f90-mode-abbrev-table "`dw" "do while" nil 0 t)
- (define-abbrev f90-mode-abbrev-table "`el" "else" nil 0 t)
- (define-abbrev f90-mode-abbrev-table "`eli" "else if" nil 0 t)
- (define-abbrev f90-mode-abbrev-table "`elw" "elsewhere" nil 0 t)
- (define-abbrev f90-mode-abbrev-table "`eq" "equivalence" nil 0 t)
- (define-abbrev f90-mode-abbrev-table "`ex" "external" nil 0 t)
- (define-abbrev f90-mode-abbrev-table "`ey" "entry" nil 0 t)
- (define-abbrev f90-mode-abbrev-table "`fl" "forall" nil 0 t)
- (define-abbrev f90-mode-abbrev-table "`fo" "format" nil 0 t)
- (define-abbrev f90-mode-abbrev-table "`fu" "function" nil 0 t)
- (define-abbrev f90-mode-abbrev-table "`fa" ".false." nil 0 t)
- (define-abbrev f90-mode-abbrev-table "`im" "implicit none" nil 0 t)
- (define-abbrev f90-mode-abbrev-table "`in " "include" nil 0 t)
- (define-abbrev f90-mode-abbrev-table "`i" "integer" nil 0 t)
- (define-abbrev f90-mode-abbrev-table "`it" "intent" nil 0 t)
- (define-abbrev f90-mode-abbrev-table "`if" "interface" nil 0 t)
- (define-abbrev f90-mode-abbrev-table "`lo" "logical" nil 0 t)
- (define-abbrev f90-mode-abbrev-table "`mo" "module" nil 0 t)
- (define-abbrev f90-mode-abbrev-table "`na" "namelist" nil 0 t)
- (define-abbrev f90-mode-abbrev-table "`nu" "nullify" nil 0 t)
- (define-abbrev f90-mode-abbrev-table "`op" "optional" nil 0 t)
- (define-abbrev f90-mode-abbrev-table "`pa" "parameter" nil 0 t)
- (define-abbrev f90-mode-abbrev-table "`po" "pointer" nil 0 t)
- (define-abbrev f90-mode-abbrev-table "`pr" "print" nil 0 t)
- (define-abbrev f90-mode-abbrev-table "`pi" "private" nil 0 t)
- (define-abbrev f90-mode-abbrev-table "`pm" "program" nil 0 t)
- (define-abbrev f90-mode-abbrev-table "`pu" "public" nil 0 t)
- (define-abbrev f90-mode-abbrev-table "`r" "real" nil 0 t)
- (define-abbrev f90-mode-abbrev-table "`rc" "recursive" nil 0 t)
- (define-abbrev f90-mode-abbrev-table "`rt" "return" nil 0 t)
- (define-abbrev f90-mode-abbrev-table "`rw" "rewind" nil 0 t)
- (define-abbrev f90-mode-abbrev-table "`se" "select" nil 0 t)
- (define-abbrev f90-mode-abbrev-table "`sq" "sequence" nil 0 t)
- (define-abbrev f90-mode-abbrev-table "`su" "subroutine" nil 0 t)
- (define-abbrev f90-mode-abbrev-table "`ta" "target" nil 0 t)
- (define-abbrev f90-mode-abbrev-table "`tr" ".true." nil 0 t)
- (define-abbrev f90-mode-abbrev-table "`t" "type" nil 0 t)
- (define-abbrev f90-mode-abbrev-table "`wh" "where" nil 0 t)
- (define-abbrev f90-mode-abbrev-table "`wr" "write" nil 0 t)
- (setq abbrevs-changed ac)))
+(defvar f90-mode-abbrev-table nil "Abbrev table for F90 mode.")
+(if (not f90-mode-abbrev-table)
+ (let (abbrevs-changed)
+ (define-abbrev-table 'f90-mode-abbrev-table
+ '(("`al" "allocate" nil 0 t)
+ ("`ab" "allocatable" nil 0 t)
+ ("`as" "assignment" nil 0 t)
+ ("`ba" "backspace" nil 0 t)
+ ("`bd" "block data" nil 0 t)
+ ("`c" "character" nil 0 t)
+ ("`cl" "close" nil 0 t)
+ ("`cm" "common" nil 0 t)
+ ("`cx" "complex" nil 0 t)
+ ("`cn" "contains" nil 0 t)
+ ("`cy" "cycle" nil 0 t)
+ ("`de" "deallocate" nil 0 t)
+ ("`df" "define" nil 0 t)
+ ("`di" "dimension" nil 0 t)
+ ("`dw" "do while" nil 0 t)
+ ("`el" "else" nil 0 t)
+ ("`eli" "else if" nil 0 t)
+ ("`elw" "elsewhere" nil 0 t)
+ ("`eq" "equivalence" nil 0 t)
+ ("`ex" "external" nil 0 t)
+ ("`ey" "entry" nil 0 t)
+ ("`fl" "forall" nil 0 t)
+ ("`fo" "format" nil 0 t)
+ ("`fu" "function" nil 0 t)
+ ("`fa" ".false." nil 0 t)
+ ("`im" "implicit none" nil 0 t)
+ ("`in " "include" nil 0 t)
+ ("`i" "integer" nil 0 t)
+ ("`it" "intent" nil 0 t)
+ ("`if" "interface" nil 0 t)
+ ("`lo" "logical" nil 0 t)
+ ("`mo" "module" nil 0 t)
+ ("`na" "namelist" nil 0 t)
+ ("`nu" "nullify" nil 0 t)
+ ("`op" "optional" nil 0 t)
+ ("`pa" "parameter" nil 0 t)
+ ("`po" "pointer" nil 0 t)
+ ("`pr" "print" nil 0 t)
+ ("`pi" "private" nil 0 t)
+ ("`pm" "program" nil 0 t)
+ ("`pu" "public" nil 0 t)
+ ("`r" "real" nil 0 t)
+ ("`rc" "recursive" nil 0 t)
+ ("`rt" "return" nil 0 t)
+ ("`rw" "rewind" nil 0 t)
+ ("`se" "select" nil 0 t)
+ ("`sq" "sequence" nil 0 t)
+ ("`su" "subroutine" nil 0 t)
+ ("`ta" "target" nil 0 t)
+ ("`tr" ".true." nil 0 t)
+ ("`t" "type" nil 0 t)
+ ("`wh" "where" nil 0 t)
+ ("`wr" "write" nil 0 t)))))
+
\f
(defcustom f90-mode-hook nil
"Hook run when entering F90 mode."