.#! 41 F90_Continue_Char! & / custom_variable! 52 F90_Comment_String! ! / custom_variable! 61 F90_Indent_Amount! 2 / custom_variable! 72 F90_Default_Format$ free / custom_variable," 11/ F90_Mode_Format 1 blocal_var_exists." 12/ F90_Mode_Format . get_blocal_varw/c" 13! 0w! 9/ get_format_mode,*" 16 ! x+" 18/ F90_Mode_Format 1 create_blocal_var" 19 ! x & strlow$ freeA/ F90_Mode_Format . set_blocal_var" 16/ set_format_mode(" 22 1 Zero_Indent_Words+" 23' PROG RAM" 221 Zero_Indent_Words(" 25 5 Block_Indent_Keywords+" 27) ASSOCIATE" 28$ CASE" 29( CONTAINS" 30" DO" 31$ ELSE" 32& FORALL" 33" IF" 34& SELECT" 35$ TYPE" 36% WHERE" 37& ElSEIF) ELSEWHERE" 38) INTERFACE" 39( FUNCTION* SU BROUTINE& MODULE" 40 1 Zero_Indent_Words" 255 Block_Indent_Keywords," 45 # eol." 46 $ bolpN/." 48 + bskip_white" 49! 0 . parse_to_pointA.v/c" 51! 1 ' go_left/f" 435 goto_end_of_code_line,." 57 $ bobpN/." 59 + bskip_white" 60 $ bolp. " 62! 1 % go_upu/c*" 65 ! p+ . parse_to_point! p" 66 ! p." 68 ! p" -2B.! 0! ! % bfindA/7." 69! 1 ' go_left/cu/c" 74 ) push_mark" 75 # bol" 76! # * looking_at." 78 * pop_mark_0u/c" 81 * pop_mark_1w/f" 55. bskip_non_code," 88 ) push_spot" 89 5 goto_end_of_code_line*" 90 ! c+! & + blooking_at! c" 91 ( pop_spot" 92 ! cw" 86. line_continues," 97 ) push_spot" 98 # bol" 99 . bskip_non_code*# 100 ! c+! & + blooking_at! c# 101 ( pop_spot# 102 ! cw" 952 line_was_c ontinued,*# 108 % words % wordp+# 110 ) push_spot# 111 ) push_mark# 112* A-Za-z0-9_ * skip_chars*# 113 $ word+ ) bufsubstr % strup$ word# 114 ( pop_spot# 115 % wordp $ NULLB. $ word % wordp/c# 116 % words $ wordA # anyw# 108/ looking_a t_word,*# 119 % words % wordp+# 121 ) push_spot# 122 ) push_mark# 123* A-Za-z0-9_ + bskip_chars*# 124 $ word+ ) bufsubstr % strup$ word# 125 ( pop_spot# 126 % wordp $ NULLB. $ word % wordp/c# 127 % words $ wordA # anyw# 1191 blooking_a t_words,# 132 . bskip_non_code.# 133 2 line_was_continued. $ up_1/6/./f# 135 . bol_skip_white# 130, bskip_to_bos,*# 140 ! f+# 142 ) push_spot.# 145 ( pop_spot/o# 148 ! f % ffind.# 149$# \\C ! f. [ ]+[A-Za-z_] & strcat - re_looking_at/ .# 150! 0 . parse_to_pointA/6w# 1402 line_contains_word,# 1547 compute_free_f90_indent,*# 157 ) start_pos+ 0 create_user_mark) start_pos*# 159 $ goal+! 0$ goal# 161 . bol_skip_white# 162 1 Zero_Indent_Words $ NULL / looking_at_word.# 163 ! 1w/c# 165! ! * looking_at.# 167 ) push_spot# 168 $ up_1.# 170 . bol_skip_white# 171! ! * looking_at.# 173 + what_column$ goal# 174 ( pop_spot# 175 $ goalw/c/c# 178 ( pop_spot/c*# 181 ( is_paren+! ) * looking_at.! ] * looking_at/. # 182" /) * looking_at/7# 181( is_paren# 183! 1" 41 7 find_matching_delimiterA.# 185 + what_column ( is_paren! 0A9$ goal# 190$ (/ * skip_chars# 191! & * looking_at.# 193 ) start_pos . goto_user_mark# 194 $ goalw/b# 196! 0$ g oal/c# 198 ) start_pos . goto_user_mark*# 200 ( bol_word+.# 201 $ up_1/.# 203 . bskip_non_code*# 204 ( eol_word+# 205 }( eol_word 1 blooking_at_wordsP*# 207 - will_continue+ . line_continues- will_continue*# 208 - was_continued+ 2 line_was_ continued- was_continued# 210 - will_continue! 0A.# 212! 0- was_continued# 213 , bskip_to_bos/c# 216 - will_continue. $ goal! 0A/6.# 218 ) go_left_1# 219 + bskip_white# 220! ) + blooking_at.# 222! 0- was_continued# 223 , bskip_to_bos/c/ c# 227 . bol_skip_white# 230 - was_continued.*# 232 ! p+ * _get_point! p# 233% 0-9 * skip_chars# 234 ! p * _get_pointB.# 236 ) push_spot# 237 7 compute_free_f90_indent$ goal# 238 ( pop_spot/c/b# 242 $ goal! 0A.# 243 + what_column$ goal/ c# 245 ( eol_word$ THENA.# 247 - was_continued.# 248 1 F90_Indent_Amount$ goal/bv/c# 256 ) push_mark# 257, A-Za-z0-9_ * skip_chars# 258! : * looking_at." :: * looking_atN/6.# 260# : * skip_chars# 261 * pop_mark_0/.# 263 * pop_ma rk_1/d# 265 5 Block_Indent_Keywords}( bol_word / looking_at_word.*# 267 ' is_func+! 0' is_func# 268 ( bol_word# ENDB.( FUNCTION* SUBROUTINE.*# 270 ! f+! f# 271 ! f 2 line_contains_word.# 273! 1' is_funcv/c//c# 278 ' is_func! 0A.# 280 - was_continued. 1 F90_Indent_Amount$ goal/c# 281 - will_continue. 1 F90_Indent_Amount$ goal/cv/c/b# 286 1 F90_Indent_Amount$ goal# 288 ( bol_word.# 290" IFx3# 291 - will_continue! 0A. ( eol_word$ THENB/6.# 292 1 F90_Indent_Amount$ goal/ c/.# 295$ TYPEx3# 296 - will_continue! 0A.# 298! 4 ( go_right# 299 * skip_white# 300" 40 / looking_at_char.# 302( FUNCTION 2 line_contains_word.# 303* SUBROUTINE 2 line_contains_word/7.# 304 1 F90_Indent_Amount$ goal/b/c/c/.# 309& MODULEx3# 310 - will_continue! 0A.# 312! 6 ( go_right# 313 * skip_white# 314) PROCEDURE * looking_at.# 315 1 F90_Indent_Amount$ goal/c/c/.# 319% WHEREx3# 320 - will_continue! 0A.# 322 1 F90_Indent_Amount$ goal# 323! 5 ( go_right# 324 * skip_white# 325! ( * looking_at.# 326! 1" 40 7 find_matching_delimiterA/6.# 328! 1 ( go_right# 329 * skip_white# 330! ! * looking_at. $ eolp/7.# 331 1 F90_Indent_Amount$ goal/c/c/.# 334 1 F90_Indent_Amount$ goal/d/.# 337 - wil l_continue.# 338 1 F90_Indent_Amount$ goal/c/jv/f*# 344 ) curr_word+# 345 ) start_pos . goto_user_mark# 346 # bol# 347% 0-9 * skip_chars# 348$ CASE$ ELSE) ELSEWHERE& ELSEIF( CONTAINS}) curr_word / looking_at_word.# 350 1 F90_Inden t_Amount$ goal# 351 ) curr_word$ CASEA. ( bol_word& SELECTA/6.# 353 1 F90_Indent_Amount$ goal/c/.# 356! 0 ) curr_word# END! 3 ' strncmpA.# 358! 3 ( go_right# 359 * skip_white# 360 1 Zero_Indent_Words $ NULL / looking_at_word.# 361! 1 w/c# 362 5 Block_Indent_Keywords}) curr_word / looking_at_word.# 364 1 F90_Indent_Amount$ goal# 365 ) curr_word& SELECTA. ( bol_word& SELECTB/6.# 367 1 F90_Indent_Amount$ goal/c/c/c/d# 371 $ goalw# 1557 compute_free_f90_indent,*# 376 " cs+ + CASE_SEARCH" cs! 0+ CASE_SEARCH.# 379 " cs+ CASE_SEARCH/o*# 382 ) start_pos+ 0 create_user_mark) start_pos*# 383 $ goal+ 7 compute_free_f90_indent$ goal# 385 . bol_skip_white*# 386 # col+ + what_column# col# 387# 0-9 * skip_chars*# 388 - label_end_col+! 0- label_end_col# 389 # col + what_columnB.# 391 2 line_was_continued.# 393 # col! 2B.# 395 ( bol_trim# 396 3 insert_single_space/c# 398# 0-9 * skip_chars# 399 + what_column- label_end_col# 400! * looking_at. 3 insert _single_space/b# 401 * skip_white/.# 403 . bol_skip_white//c# 406 + what_column# col# 407 $ goal # colB.# 409 + bskip_white# 410 - label_end_col.# 412 - label_end_col$ goal# 413 $ goal! 1=.! 1$ goal/c# 414$ goal/c# 416 - label_end_col! 0 A. $ goal! 1?/7.# 418 + what_column# col# 419 * skip_white# 420 $ goal! 1: + what_column # col:B.# 422 + bskip_white# 423 $ trim# 424 $ goal! 1: - insert_spaces/c/c/c# 428 # eol# 430 * _get_point# 132?.# 431D Line %d contains more than 1 32 bytes ) what_line ( vmessage/c# 433 ) start_pos . goto_user_mark# 434 + bskip_white# 435 $ bolp.# 437 * skip_whitew/c# 440 ) start_pos . goto_user_mark# 374/ free_f90_indent,# 446 # bol# 447! ! * looking_at# 4443 free_f90_is_comment ,*# 452 ! p $ cont % cont1+# 454 $ bolp.# 456 ' newlinew/c# 460 / free_f90_indent# 461 ) push_spot# 462 + bskip_white $ trim# 464 + what_column" 72?.# 466 ) push_spot# 467 . bol_skip_white# 468 $ bolp.8 Line exceeds 72 columns. ' message/b # 469 ( pop_spot/c# 472 * _get_point! p# 473* -+*=/,(&<> + bskip_chars# 475 ! p * _get_pointB$ cont# 476 $ cont% cont1# 478 $ cont.# 480! & * looking_at.# 482! 0% cont1/c/c# 486 3 free_f90_is_comment.! 0$ cont/c# 488 . bol_skip_white # 489% data * looking_at.! 0$ cont/c# 491 ( pop_spot# 493 % cont1.# 495! & insert# 496 1 F90_Continue_Char & insert/c# 498 ' newline# 499 $ cont.# 501 1 F90_Continue_Char & insert# 502! & insert/c# 504 3 insert_single_space# 505 / free_f90_indent# 4504 old_free_f90_newline,# 510 + bskip_white# 511! 0 . parse_to_pointA.*# 513 ! m+ 0 create_user_mark! m# 514* -+*=/,(<>: + bskip_chars*# 515 / needs_continued+ ! m 0 create_user_markB/ needs_continued# 516 / needs_ continued.# 517! 1" 41 7 find_matching_delimiterA/ needs_continued/b# 518 ! m . goto_user_mark# 519 / needs_continued.! & + blooking_atN/6.# 520" & & insert/c/c# 522 $ trim# 524 + what_column" 72?.# 5258 Line exceeds 72 columns. ' message/c# 527 ' newline# 528 / free_f90_indent# 5080 free_f90_newline,*# 537 $ goal+! 7$ goal*# 538 " cs+ + CASE_SEARCH" cs*# 539 " ch+.# 544 # bol# 545% 0-9 * skip_chars# 546 1 F90_Continue_Char * looking_at. * go_right_1/c# 547 * skip_white/p# 550 ) push_spot# 551 ) push_spot# 552! 0+ CASE_SEARCH.# 553 $ up_1/.# 555 . bol_skip_white# 556 $ eolp. 1 F90_Continue_Char * looking_at/7.u/c# 557 - X_USER_BLOCK0# 558 + what_column$ goal# 560 $ goal! 1A.u/c# 562# do * looking_at.$ else * looking_at/.# 563* subroutine * looking_at/.# 564) interface * looking_at/.# 565' program * looking_at/7.# 567 1 F90_Indent_Amount$ goal/.# 568# if * looking_at.# if( * looking_at/7.# 570$ then % ffind. 1 F 90_Indent_Amount$ goal/c/.# 572% type * looking_at.' module * looking_at/7.# 574" :: % ffindN. 1 F90_Indent_Amount$ goal/c/c/d/dv/f# 580 ( pop_spot# 581 ) push_spot# 582 - X_USER_BLOCK0# 584# end * looking_at# 585( continue * lo oking_atD# 586$ else * looking_atD. 1 F90_Indent_Amount$ goal/c# 588 " cs+ CASE_SEARCH# 589 $ goal! 7=.! 7$ goal/c# 590 ( pop_spot# 592 . bol_skip_white.# 597# 0-9 * skip_chars# 598 $ trim# 599 1 F90_Continue_Char * looking_at.# 601 ! 6 + what_column: - insert_spaces# 602 * go_right_1 $ trim# 603 1 F90_Indent_Amount$ goal/c# 605 $ goal + what_column: - insert_spaces/q# 608 ) what_char $ char" ch# 609 " ch.# 611 " ch ' isdigit3# 613 + what_column! 6@.# 615 # bol $ t rim# 616 3 insert_single_space/c# 618 - X_USER_BLOCK1/.# 621 1 F90_Continue_Charx3# 622 # bol $ trim% & insert# 623 - X_USER_BLOCK1/.# 626 $ bolpN. $ eolp/73# 627 # bol $ trim# 628$ goal# 629 $ goal - insert_spaces/j# 631 ( pop_spot # 632 * skip_white# 535y0 fixed_f90_indent,# 637 # bol# 638% 0-9 * skip_chars# 639 $ bolp $ eolpNC# 635y4 fixed_f90_is_comment,*# 644 ! p $ cont+# 646 $ bolp.# 648 ' newlinew/c# 652 0 fixed_f90_indent# 653 ) push_spot# 654 + bskip_white $ trim# 656 + what_column" 72?.# 658 ) push_spot# 659 . bol_skip_white# 660 $ bolp.8 Line exceeds 72 columns. ' message/b# 661 ( pop_spot/c# 664 * _get_point! p# 665' -+*=/,( + bskip_chars# 667 ! p * _get_pointB$ cont# 669 4 fixed_f90_is _comment.! 0$ cont/c# 671 . bol_skip_white# 672% data * looking_at.! 0$ cont/c# 674 ( pop_spot# 676 ' newline# 677 3 insert_single_space# 678 $ cont. 1 F90_Continue_Char & insert/c# 679 0 fixed_f90_indent# 642y1 fixed_f90_newline,*# 684 $ free % fixed+# 686 / get_format_mode.# 688 $ freew/c# 692 % fixed# 6845 dispatch_f90_function,# 697}/ free_f90_indent}0 fixed_f90_indent 5 dispatch_f90_function# 695y* f90_indent,# 702}3 free_f90_is_comment}4 fixed_f90_is_comment 5 d ispatch_f90_function# 700y. f90_is_comment,# 707}0 free_f90_newline}1 fixed_f90_newline 5 dispatch_f90_function# 705y+ f90_newline,# 712 + f90_newline# 714 ) push_spot# 715 . bol_skip_white# 716 1 F90_Continue_Char * looking_at. ( pop_spot/. # 719 1 F90_Continue_Char & insert# 720 ( pop_spot# 721 * f90_indent# 722 * go_right_1# 723 * skip_white/d# 710y4 f90_continue_newline,# 732 ) LAST_CHAR + insert_char# 734 / get_format_mode.w/c# 737 ) push_spot# 739 . f90_is_comment. ( pop_s pot/.# 742 . bol_skip_white# 743# 0-9 * skip_chars $ trim# 744 ( pop_spot# 745 * f90_indent/d# 730y2 f90_electric_label,# 753 ) push_spot# 754 . f90_is_comment.# 756 # bol# 757 2 F90_Comment_String * looking_at.# 758 2 F90_Comment_String & strlen $ deln/.# 759 # del/d/c# 762 * f90_indent# 763 ( pop_spot# 764 ) go_down_1# 751y- f90_uncomment,# 769 . f90_is_comment.# 771 ) push_spot# 772 # bol# 773 2 F90_Comment_String & insert/b# 775 ( pop_spot# 776 ) go_down_1# 767y+ f90 _comment,*# 784 " cs+ + CASE_SEARCH" cs# 786! 0+ CASE_SEARCH.# 789 . bol_skip_white# 790 * _get_point.# 792' program * looking_at.# 793( function * looking_at/.# 794* subroutine * looking_at/7.v/c/c/.# 797 $ up_1/k# 798 " cs+ CASE_ SEARCH# 782y5 f90_beg_of_subprogram,*# 806 " cs+ + CASE_SEARCH" cs# 807! 0+ CASE_SEARCH.# 811 . bol_skip_white# 812# end * looking_at.# 814! 3 ( go_right# 815 * skip_white# 816 $ eolp.v/c/c/.# 819 & down_1/k# 820 " cs+ CASE_SEARCH# 804y5 f90_end_of_subprogram,# 825 5 f90_end_of_subprogram# 826 ) go_down_1# 827 ) push_mark, set_mark_cmd $ call# 828 5 f90_beg_of_subprogram# 829 # bol# 823y3 f90_mark_subprogram,*# 837 ! c+ + what_column! c*# 838 ! r+ + window_line! r# 8 40 # bol# 841 ) push_mark# 842$h 5 7 10 15 20 25 30 35 40 45 50 55 60 65 70\n & insert# 843$j { }|{ | | | | | | | | | | | | | }\n & insert# 845 ! c + goto_column# 846 ! r! 2>. ! 3! r/c# 847 ! r ( recenter# 848D Press SPACE to get rid of the ruler. ' message# 849! 1 7 update_sans_update_hook# 850 & getkeyP# 851 # bol# 852 * del_region# 853 ! c + goto_column# 854 + flush_input# 855 ! r ( recenter# 835y) f90 _ruler,*# 858 & dirfun+.# 860 & dirfunM/.# 862 # bol# 863$( ^0-9 \n * skip_chars# 864 * _get_point.v/b/f*# 867 # col+! 7# col# 868 / get_format_mode.# 869! 1# col/c# 871 # col 4 goto_column_best_tryP# 8587 f90_prev_next_statement, # 878}& down_1 7 f90_prev_next_statement# 876y2 f90_next_statement,# 886}$ up_1 7 f90_prev_next_statement# 884y6 f90_previous_statement# 893# F90" $1# 894 " $1 ( keymap_p. " $1 + make_keymap/b# 896+ f90_comment" ; " $1 ) definekey# 897- f90_uncomment" : " $1 ) definekey# 8984 f90_continue_newline$# \r " $1 ) definekey# 899/ self_insert_cmd! ' " $1 ) definekey# 900/ self_insert_cmd! " " $1 ) definekey# 9015 f90_beg_of_subprogram# ^A " $1 ) definekey# 9025 f90_end_of_subprogram# ^E " $1 ) definekey# 9031 f90_mark_function# ^H " $1 ) definekey# 9052 f90_next_statement" ^N " $1 2 definekey_reserved# 9066 f90_previous_statement" ^P " $1 2 definekey_reserved# 907) f90_ruler" ^R " $1 2 de finekey_reserved# 909! 0! 9! 1.# 911" $2# 9122 f90_electric_label " $2 & string " $1 ) definekey/h# 916( F90_free) F90_fixed.# 918" $1# 919 " $1 3 create_syntax_table# 920! ! " 37 " $1 - define_syntax# 921" ([" )]" 40 " $1 - define_syntax# 922" 34" 34 " $1 - define_syntax# 923" 39" 34 " $1 - define_syntax# 926* 0-9a-zA-Z_# 119 " $1 - define_syntax# 927) -+0-9eEdD" 48 " $1 - define_syntax# 928" ,." 44 " $1 - define_syntax# 929" 35" 35 " $1 - define_syntax# 930% -+/*=" 43 " $1 - define_syntax# 984 " $1( dogoifto! 2 / define_keywordsP# 985 " $1& enduse! 3 / define_keywordsP# 986 " $1X callcasedataelseexitgotokindopenreadrealsavestopthentype! 4 / define_keywordsP# 987 " $ 1W blockclosecycleenddoendifentrypauseprintwherewhilewrite! 5 / define_keywordsP# 988 " $1b commondoubleformatintentmodulepublicrecordreturnrewindselecttarget! 6 / define_keywordsP# 989 " $1m complexendfileendtypeincludeinquireintegerlogicalnul lifypointerprivateprogram! 7 / define_keywordsP# 990 " $1p allocatecontainscontinueendwhereexternalfunctionimplicitnamelistoptionalsequence! 8 / define_keywordsP# 991 " $1 associatebackspacecharacterdimensionelsewhereendmoduleendselectinterface intrinsicparameterprecisionrecursivestructure! 9 / define_keywordsP# 992 " $1H deallocateendprogramselectcasesubroutine" 10 / define_keywordsP# 993 " $1A allocatableendfunctionequivalence" 11 / define_keywordsP# 994 " $18 endblockdataendint erface" 12 / define_keywordsP# 995 " $1- endsubroutine" 13 / define_keywordsP# 996 " $1/ moduleprocedure" 15 / define_keywordsP# 998 " $1. eqgegtleltneor! 2! 1 1 define_keywords_nP# 999 " $1b absallandanycosdimexpintiorlenlgelgtllellt logmaxminmodnotsinsumtan! 3! 1 1 define_keywords_nP$ 1000 " $1| acosaintasinatancharcoshdblehugeiandieorkindnintpackrealscansignsinhsizesqrttanhtinytrimtrue! 4! 1 1 define_keywords_nP$ 1001 " $1 aimaganintatan2btestcmplxconjgcountdprodfalsefl ooribclribitsibseticharindexishftlog10mergeradixrangescaleshape! 5! 1 1 define_keywords_nP$ 1002 " $1 cshiftdigitsiacharishftclboundmatmulmaxlocmaxvalminlocminvalmodulomvbitsrepeatspreaduboundunpackverify! 6! 1 1 define_keywords_nP$ 1003 " $1 m adjustladjustrceilingeoshiftepsilonlogicalnearestpresentproductreshapespacing! 7! 1 1 define_keywords_nP$ 1004 " $1H bit_sizeexponentfractionlen_trimtransfer! 8! 1 1 define_keywords_nP$ 1005 " $1D allocatedprecisionrrspacingtranspose! 9! 1 1 define_keywords_nP$ 1006 " $1* associated" 10! 1 1 define_keywords_nP$ 1007 " $1L dot_productmaxexponentminexponentrandom_seed" 11! 1 1 define_keywords_nP$ 1008 " $18 set_exponentsystem_clock" 12! 1 1 define_keywords_nP$ 1009 " $1 : date_and_timerandom_number" 13! 1 1 define_keywords_nP$ 1010 " $11 selected_int_kind" 17! 1 1 define_keywords_nP$ 1011 " $12 selected_real_kind" 18! 1 1 define_keywords_nP/$ 1013( F90_free! 1 0 set_syntax_flags$ 1014) F90_fixed ! 1! 2J 0 set_syntax_flags$ 1015) F90_fixed$( ^0-9 \n 9 set_fortran_comment_chars,*$ 1017 & format+*$ 1019 $ mode+# F90$ mode$ 1020% %s-%s $ mode & format ' sprintf! 4" 16J ( set_mode$ 1021 $ mode * use_keymap$ 1022+ indent_hook * f90_indent / set_buffer_hook$ 10233 newline_indent_hook+ f90_newline / set_buffer_hook$ 1025 & format / set_format_mode$ 1027$ F90_ & format & strcat 0 use_syntax_table$ 1017. setup_f90_mode,$ 1032$ free . setup_f90_mode$ 10339 f90_free_format_mode_hook . run_mode_hooks$ 10304 f90_free_format_mode,$ 1038% fixed . setup_f90_mode$ 1039: f90_fixed_format_mode_hook . run_mode_hooks$ 10365 f90_fixed_format_mode,$ 1085 2 F90_Default_Format & strlow . setup_f90_mode $ 1086- f90_mode_hook . run_mode_hooks$ 1088 2 F90_Comment_String ! 4 0 set_comment_info$ 1083( f90_mode$ 1091# f90 ' provide