[38;2;98;114;164m! Based on code samples from https://en.wikipedia.org/wiki/Fortran[0m
[38;2;98;114;164m! and https://learnxinyminutes.com/docs/fortran95/.[0m

[38;2;139;233;253mMODULE[0m [38;2;248;248;242mstrings[0m
    [38;2;139;233;253mTYPE[0m [38;2;139;233;253mstring80[0m            [38;2;98;114;164m! a derived type with a trailing comment[0m
        [38;2;139;233;253mINTEGER[0m [38;2;248;248;242m::[0m [38;2;248;248;242mlength[0m
        [38;2;139;233;253mCHARACTER[0m[38;2;248;248;242m([0m[38;2;241;250;140m80[0m[38;2;248;248;242m)[0m [38;2;248;248;242m::[0m [38;2;248;248;242mvalue[0m
    [38;2;255;85;85mEND TYPE string80[0m
[38;2;255;85;85mEND MODULE[0m [38;2;248;248;242mstrings[0m

[38;2;255;85;85mPROGRAM[0m [38;2;248;248;242mtest[0m
    [38;2;255;85;85mUSE[0m [38;2;248;248;242mstrings[0m
    [38;2;255;85;85mIMPLICIT[0m [38;2;248;248;242mNONE[0m

    [38;2;139;233;253mCHARACTER[0m [38;2;248;248;242m::[0m [38;2;248;248;242mchar1[0m[38;2;248;248;242m,[0m [38;2;248;248;242mchar2[0m[38;2;248;248;242m,[0m [38;2;248;248;242mchar3[0m
    [38;2;139;233;253mTYPE[0m[38;2;248;248;242m([0m[38;2;139;233;253mstring80[0m[38;2;248;248;242m)[0m [38;2;248;248;242m::[0m [38;2;248;248;242mstr1[0m[38;2;248;248;242m,[0m [38;2;248;248;242mstr2[0m[38;2;248;248;242m,[0m [38;2;248;248;242mstr3[0m
    [38;2;139;233;253mREAL[0m[38;2;248;248;242m,[0m [38;2;248;248;242mDIMENSION[0m[38;2;248;248;242m([0m[38;2;241;250;140m10[0m[38;2;248;248;242m,[0m [38;2;241;250;140m20[0m[38;2;248;248;242m)[0m [38;2;248;248;242m::[0m [38;2;248;248;242ma[0m[38;2;248;248;242m,[0m [38;2;248;248;242mb[0m[38;2;248;248;242m,[0m [38;2;248;248;242mc[0m
    [38;2;139;233;253mREAL[0m[38;2;248;248;242m,[0m [38;2;248;248;242mDIMENSION[0m[38;2;248;248;242m([0m[38;2;241;250;140m5[0m[38;2;248;248;242m)[0m [38;2;248;248;242m::[0m [38;2;248;248;242mv[0m[38;2;248;248;242m,[0m [38;2;248;248;242mw[0m
    [38;2;139;233;253mLOGICAL[0m [38;2;248;248;242m::[0m [38;2;248;248;242mflag[0m[38;2;248;248;242m([0m[38;2;241;250;140m10[0m[38;2;248;248;242m,[0m [38;2;241;250;140m20[0m[38;2;248;248;242m)[0m
    [38;2;139;233;253mINTEGER[0m [38;2;248;248;242m::[0m [38;2;248;248;242mi[0m[38;2;248;248;242m,[0m [38;2;248;248;242mj[0m

    [38;2;255;85;85mCALL[0m [38;2;189;147;249mprint_message[0m

    [38;2;98;114;164m! Logical literals and relational operators[0m
    [38;2;248;248;242mflag[0m [38;2;248;248;242m=[0m [38;2;241;250;140m.true.[0m [38;2;248;248;242m.AND.[0m [38;2;241;250;140m.FALSE.[0m
    [38;2;248;248;242mflag[0m [38;2;248;248;242m=[0m [38;2;248;248;242ma[0m [38;2;248;248;242m<[0m [38;2;248;248;242mb[0m [38;2;248;248;242m.AND.[0m [38;2;248;248;242mi[0m [38;2;248;248;242m/=[0m [38;2;248;248;242mj[0m
    [38;2;248;248;242mflag[0m [38;2;248;248;242m=[0m [38;2;248;248;242ma[0m [38;2;248;248;242m==[0m [38;2;248;248;242mb[0m

    [38;2;255;85;85mPRINT[0m [38;2;80;250;123m"(F6.3)"[0m[38;2;248;248;242m,[0m [38;2;241;250;140m4.32[0m

    [38;2;98;114;164m! Array assignments and sections[0m
    [38;2;248;248;242ma[0m [38;2;248;248;242m=[0m [38;2;248;248;242mb[0m
    [38;2;248;248;242mc[0m [38;2;248;248;242m=[0m [38;2;248;248;242ma[0m[38;2;248;248;242m/[0m[38;2;248;248;242mb[0m
    [38;2;248;248;242mw[0m [38;2;248;248;242m=[0m [38;2;248;248;242mv[0m [38;2;248;248;242m+[0m [38;2;241;250;140m1.2[0m
    [38;2;248;248;242mw[0m [38;2;248;248;242m=[0m [38;2;241;250;140m5[0m[38;2;248;248;242m/[0m[38;2;248;248;242mv[0m [38;2;248;248;242m+[0m [38;2;248;248;242ma[0m[38;2;248;248;242m([0m[38;2;241;250;140m1[0m[38;2;248;248;242m:[0m[38;2;241;250;140m5[0m[38;2;248;248;242m,[0m [38;2;241;250;140m5[0m[38;2;248;248;242m)[0m
    [38;2;248;248;242mc[0m[38;2;248;248;242m([0m[38;2;241;250;140m1[0m[38;2;248;248;242m:[0m[38;2;241;250;140m8[0m[38;2;248;248;242m,[0m [38;2;241;250;140m5[0m[38;2;248;248;242m:[0m[38;2;241;250;140m10[0m[38;2;248;248;242m)[0m [38;2;248;248;242m=[0m [38;2;248;248;242ma[0m[38;2;248;248;242m([0m[38;2;241;250;140m2[0m[38;2;248;248;242m:[0m[38;2;241;250;140m9[0m[38;2;248;248;242m,[0m [38;2;241;250;140m5[0m[38;2;248;248;242m:[0m[38;2;241;250;140m10[0m[38;2;248;248;242m)[0m [38;2;248;248;242m+[0m [38;2;248;248;242mb[0m[38;2;248;248;242m([0m[38;2;241;250;140m1[0m[38;2;248;248;242m:[0m[38;2;241;250;140m8[0m[38;2;248;248;242m,[0m [38;2;241;250;140m15[0m[38;2;248;248;242m:[0m[38;2;241;250;140m20[0m[38;2;248;248;242m)[0m
    [38;2;248;248;242mv[0m[38;2;248;248;242m([0m[38;2;241;250;140m2[0m[38;2;248;248;242m:[0m[38;2;241;250;140m5[0m[38;2;248;248;242m)[0m [38;2;248;248;242m=[0m [38;2;248;248;242mv[0m[38;2;248;248;242m([0m[38;2;241;250;140m1[0m[38;2;248;248;242m:[0m[38;2;241;250;140m4[0m[38;2;248;248;242m)[0m

    [38;2;248;248;242mi[0m [38;2;248;248;242m=[0m [38;2;241;250;140m10[0m
    [38;2;255;85;85mSELECT[0m [38;2;255;85;85mCASE[0m [38;2;248;248;242m([0m[38;2;248;248;242mi[0m[38;2;248;248;242m)[0m
        [38;2;255;85;85mCASE[0m [38;2;248;248;242m([0m[38;2;241;250;140m0[0m[38;2;248;248;242m)[0m [38;2;98;114;164m! case i == 0[0m
        [38;2;248;248;242mj[0m [38;2;248;248;242m=[0m [38;2;241;250;140m0[0m
        [38;2;255;85;85mCASE[0m [38;2;248;248;242m([0m[38;2;241;250;140m1[0m[38;2;248;248;242m:[0m[38;2;241;250;140m5[0m[38;2;248;248;242m)[0m
        [38;2;248;248;242mj[0m [38;2;248;248;242m=[0m [38;2;241;250;140m1[0m
        [38;2;255;85;85mCASE[0m [38;2;248;248;242m([0m[38;2;241;250;140m6[0m[38;2;248;248;242m:[0m[38;2;248;248;242m)[0m
        [38;2;248;248;242mj[0m [38;2;248;248;242m=[0m [38;2;241;250;140m2[0m
        [38;2;255;85;85mCASE[0m [38;2;255;85;85mDEFAULT[0m
        [38;2;248;248;242mj[0m [38;2;248;248;242m=[0m [38;2;241;250;140m3[0m
    [38;2;255;85;85mEND SELECT[0m
[38;2;255;85;85mEND PROGRAM[0m [38;2;248;248;242mtest[0m

[38;2;255;85;85mSUBROUTINE[0m [38;2;189;147;249mprint_message[0m
    [38;2;255;85;85mPRINT[0m [38;2;248;248;242m*[0m[38;2;248;248;242m,[0m [38;2;80;250;123m'Hello world!'[0m
[38;2;255;85;85mEND SUBROUTINE[0m [38;2;189;147;249mprint_message[0m
