\definecolor{hlbg}{RGB}{40,42,54}
\definecolor{hlfg}{RGB}{248,248,242}

\begin{tcblisting}{
  colback=hlbg,
  colframe=hlbg,
  listing only,
  breakable,
  boxrule=0pt,
  left=0.5em,
  right=0.5em,
  top=0.5em,
  bottom=0.5em,
  listing options={
    basicstyle=\ttfamily\footnotesize\color{hlfg},
    breaklines=true,
    columns=fullflexible,
    keepspaces=true,
    showspaces=false,
    showstringspaces=false,
    escapeinside={(*@}{@*)},
  }
}
(*@\textcolor[RGB]{122,122,122}{! Based on code samples from https://en.wikipedia.org/wiki/Fortran}@*)
(*@\textcolor[RGB]{122,122,122}{! and https://learnxinyminutes.com/docs/fortran95/.}@*)

(*@\textcolor[RGB]{117,215,236}{MODULE}@*) (*@\textcolor[RGB]{248,248,242}{strings}@*)
    (*@\textcolor[RGB]{117,215,236}{TYPE}@*) (*@\textcolor[RGB]{117,215,236}{string80}@*)            (*@\textcolor[RGB]{122,122,122}{! a derived type with a trailing comment}@*)
        (*@\textcolor[RGB]{117,215,236}{INTEGER}@*) (*@\textcolor[RGB]{248,248,242}{::}@*) (*@\textcolor[RGB]{248,248,242}{length}@*)
        (*@\textcolor[RGB]{117,215,236}{CHARACTER}@*)(*@\textcolor[RGB]{248,248,242}{(}@*)(*@\textcolor[RGB]{228,243,74}{80}@*)(*@\textcolor[RGB]{248,248,242}{)}@*) (*@\textcolor[RGB]{248,248,242}{::}@*) (*@\textcolor[RGB]{248,248,242}{value}@*)
    (*@\textcolor[RGB]{230,71,71}{END TYPE string80}@*)
(*@\textcolor[RGB]{230,71,71}{END MODULE}@*) (*@\textcolor[RGB]{248,248,242}{strings}@*)

(*@\textcolor[RGB]{230,71,71}{PROGRAM}@*) (*@\textcolor[RGB]{248,248,242}{test}@*)
    (*@\textcolor[RGB]{230,71,71}{USE}@*) (*@\textcolor[RGB]{248,248,242}{strings}@*)
    (*@\textcolor[RGB]{230,71,71}{IMPLICIT}@*) (*@\textcolor[RGB]{248,248,242}{NONE}@*)

    (*@\textcolor[RGB]{117,215,236}{CHARACTER}@*) (*@\textcolor[RGB]{248,248,242}{::}@*) (*@\textcolor[RGB]{248,248,242}{char1}@*)(*@\textcolor[RGB]{248,248,242}{,}@*) (*@\textcolor[RGB]{248,248,242}{char2}@*)(*@\textcolor[RGB]{248,248,242}{,}@*) (*@\textcolor[RGB]{248,248,242}{char3}@*)
    (*@\textcolor[RGB]{117,215,236}{TYPE}@*)(*@\textcolor[RGB]{248,248,242}{(}@*)(*@\textcolor[RGB]{117,215,236}{string80}@*)(*@\textcolor[RGB]{248,248,242}{)}@*) (*@\textcolor[RGB]{248,248,242}{::}@*) (*@\textcolor[RGB]{248,248,242}{str1}@*)(*@\textcolor[RGB]{248,248,242}{,}@*) (*@\textcolor[RGB]{248,248,242}{str2}@*)(*@\textcolor[RGB]{248,248,242}{,}@*) (*@\textcolor[RGB]{248,248,242}{str3}@*)
    (*@\textcolor[RGB]{117,215,236}{REAL}@*)(*@\textcolor[RGB]{248,248,242}{,}@*) (*@\textcolor[RGB]{248,248,242}{DIMENSION}@*)(*@\textcolor[RGB]{248,248,242}{(}@*)(*@\textcolor[RGB]{228,243,74}{10}@*)(*@\textcolor[RGB]{248,248,242}{,}@*) (*@\textcolor[RGB]{228,243,74}{20}@*)(*@\textcolor[RGB]{248,248,242}{)}@*) (*@\textcolor[RGB]{248,248,242}{::}@*) (*@\textcolor[RGB]{248,248,242}{a}@*)(*@\textcolor[RGB]{248,248,242}{,}@*) (*@\textcolor[RGB]{248,248,242}{b}@*)(*@\textcolor[RGB]{248,248,242}{,}@*) (*@\textcolor[RGB]{248,248,242}{c}@*)
    (*@\textcolor[RGB]{117,215,236}{REAL}@*)(*@\textcolor[RGB]{248,248,242}{,}@*) (*@\textcolor[RGB]{248,248,242}{DIMENSION}@*)(*@\textcolor[RGB]{248,248,242}{(}@*)(*@\textcolor[RGB]{228,243,74}{5}@*)(*@\textcolor[RGB]{248,248,242}{)}@*) (*@\textcolor[RGB]{248,248,242}{::}@*) (*@\textcolor[RGB]{248,248,242}{v}@*)(*@\textcolor[RGB]{248,248,242}{,}@*) (*@\textcolor[RGB]{248,248,242}{w}@*)
    (*@\textcolor[RGB]{117,215,236}{LOGICAL}@*) (*@\textcolor[RGB]{248,248,242}{::}@*) (*@\textcolor[RGB]{248,248,242}{flag}@*)(*@\textcolor[RGB]{248,248,242}{(}@*)(*@\textcolor[RGB]{228,243,74}{10}@*)(*@\textcolor[RGB]{248,248,242}{,}@*) (*@\textcolor[RGB]{228,243,74}{20}@*)(*@\textcolor[RGB]{248,248,242}{)}@*)
    (*@\textcolor[RGB]{117,215,236}{INTEGER}@*) (*@\textcolor[RGB]{248,248,242}{::}@*) (*@\textcolor[RGB]{248,248,242}{i}@*)(*@\textcolor[RGB]{248,248,242}{,}@*) (*@\textcolor[RGB]{248,248,242}{j}@*)

    (*@\textcolor[RGB]{230,71,71}{CALL}@*) (*@\textcolor[RGB]{155,107,223}{print\_message}@*)

    (*@\textcolor[RGB]{122,122,122}{! Logical literals and relational operators}@*)
    (*@\textcolor[RGB]{248,248,242}{flag}@*) (*@\textcolor[RGB]{248,248,242}{=}@*) (*@\textcolor[RGB]{228,243,74}{.true.}@*) (*@\textcolor[RGB]{248,248,242}{.AND.}@*) (*@\textcolor[RGB]{228,243,74}{.FALSE.}@*)
    (*@\textcolor[RGB]{248,248,242}{flag}@*) (*@\textcolor[RGB]{248,248,242}{=}@*) (*@\textcolor[RGB]{248,248,242}{a}@*) (*@\textcolor[RGB]{248,248,242}{<}@*) (*@\textcolor[RGB]{248,248,242}{b}@*) (*@\textcolor[RGB]{248,248,242}{.AND.}@*) (*@\textcolor[RGB]{248,248,242}{i}@*) (*@\textcolor[RGB]{248,248,242}{/=}@*) (*@\textcolor[RGB]{248,248,242}{j}@*)
    (*@\textcolor[RGB]{248,248,242}{flag}@*) (*@\textcolor[RGB]{248,248,242}{=}@*) (*@\textcolor[RGB]{248,248,242}{a}@*) (*@\textcolor[RGB]{248,248,242}{==}@*) (*@\textcolor[RGB]{248,248,242}{b}@*)

    (*@\textcolor[RGB]{230,71,71}{PRINT}@*) (*@\textcolor[RGB]{66,230,108}{"(F6.3)"}@*)(*@\textcolor[RGB]{248,248,242}{,}@*) (*@\textcolor[RGB]{228,243,74}{4.32}@*)

    (*@\textcolor[RGB]{122,122,122}{! Array assignments and sections}@*)
    (*@\textcolor[RGB]{248,248,242}{a}@*) (*@\textcolor[RGB]{248,248,242}{=}@*) (*@\textcolor[RGB]{248,248,242}{b}@*)
    (*@\textcolor[RGB]{248,248,242}{c}@*) (*@\textcolor[RGB]{248,248,242}{=}@*) (*@\textcolor[RGB]{248,248,242}{a}@*)(*@\textcolor[RGB]{248,248,242}{/}@*)(*@\textcolor[RGB]{248,248,242}{b}@*)
    (*@\textcolor[RGB]{248,248,242}{w}@*) (*@\textcolor[RGB]{248,248,242}{=}@*) (*@\textcolor[RGB]{248,248,242}{v}@*) (*@\textcolor[RGB]{248,248,242}{+}@*) (*@\textcolor[RGB]{228,243,74}{1.2}@*)
    (*@\textcolor[RGB]{248,248,242}{w}@*) (*@\textcolor[RGB]{248,248,242}{=}@*) (*@\textcolor[RGB]{228,243,74}{5}@*)(*@\textcolor[RGB]{248,248,242}{/}@*)(*@\textcolor[RGB]{248,248,242}{v}@*) (*@\textcolor[RGB]{248,248,242}{+}@*) (*@\textcolor[RGB]{248,248,242}{a}@*)(*@\textcolor[RGB]{248,248,242}{(}@*)(*@\textcolor[RGB]{228,243,74}{1}@*)(*@\textcolor[RGB]{248,248,242}{:}@*)(*@\textcolor[RGB]{228,243,74}{5}@*)(*@\textcolor[RGB]{248,248,242}{,}@*) (*@\textcolor[RGB]{228,243,74}{5}@*)(*@\textcolor[RGB]{248,248,242}{)}@*)
    (*@\textcolor[RGB]{248,248,242}{c}@*)(*@\textcolor[RGB]{248,248,242}{(}@*)(*@\textcolor[RGB]{228,243,74}{1}@*)(*@\textcolor[RGB]{248,248,242}{:}@*)(*@\textcolor[RGB]{228,243,74}{8}@*)(*@\textcolor[RGB]{248,248,242}{,}@*) (*@\textcolor[RGB]{228,243,74}{5}@*)(*@\textcolor[RGB]{248,248,242}{:}@*)(*@\textcolor[RGB]{228,243,74}{10}@*)(*@\textcolor[RGB]{248,248,242}{)}@*) (*@\textcolor[RGB]{248,248,242}{=}@*) (*@\textcolor[RGB]{248,248,242}{a}@*)(*@\textcolor[RGB]{248,248,242}{(}@*)(*@\textcolor[RGB]{228,243,74}{2}@*)(*@\textcolor[RGB]{248,248,242}{:}@*)(*@\textcolor[RGB]{228,243,74}{9}@*)(*@\textcolor[RGB]{248,248,242}{,}@*) (*@\textcolor[RGB]{228,243,74}{5}@*)(*@\textcolor[RGB]{248,248,242}{:}@*)(*@\textcolor[RGB]{228,243,74}{10}@*)(*@\textcolor[RGB]{248,248,242}{)}@*) (*@\textcolor[RGB]{248,248,242}{+}@*) (*@\textcolor[RGB]{248,248,242}{b}@*)(*@\textcolor[RGB]{248,248,242}{(}@*)(*@\textcolor[RGB]{228,243,74}{1}@*)(*@\textcolor[RGB]{248,248,242}{:}@*)(*@\textcolor[RGB]{228,243,74}{8}@*)(*@\textcolor[RGB]{248,248,242}{,}@*) (*@\textcolor[RGB]{228,243,74}{15}@*)(*@\textcolor[RGB]{248,248,242}{:}@*)(*@\textcolor[RGB]{228,243,74}{20}@*)(*@\textcolor[RGB]{248,248,242}{)}@*)
    (*@\textcolor[RGB]{248,248,242}{v}@*)(*@\textcolor[RGB]{248,248,242}{(}@*)(*@\textcolor[RGB]{228,243,74}{2}@*)(*@\textcolor[RGB]{248,248,242}{:}@*)(*@\textcolor[RGB]{228,243,74}{5}@*)(*@\textcolor[RGB]{248,248,242}{)}@*) (*@\textcolor[RGB]{248,248,242}{=}@*) (*@\textcolor[RGB]{248,248,242}{v}@*)(*@\textcolor[RGB]{248,248,242}{(}@*)(*@\textcolor[RGB]{228,243,74}{1}@*)(*@\textcolor[RGB]{248,248,242}{:}@*)(*@\textcolor[RGB]{228,243,74}{4}@*)(*@\textcolor[RGB]{248,248,242}{)}@*)

    (*@\textcolor[RGB]{248,248,242}{i}@*) (*@\textcolor[RGB]{248,248,242}{=}@*) (*@\textcolor[RGB]{228,243,74}{10}@*)
    (*@\textcolor[RGB]{230,71,71}{SELECT}@*) (*@\textcolor[RGB]{230,71,71}{CASE}@*) (*@\textcolor[RGB]{248,248,242}{(}@*)(*@\textcolor[RGB]{248,248,242}{i}@*)(*@\textcolor[RGB]{248,248,242}{)}@*)
        (*@\textcolor[RGB]{230,71,71}{CASE}@*) (*@\textcolor[RGB]{248,248,242}{(}@*)(*@\textcolor[RGB]{228,243,74}{0}@*)(*@\textcolor[RGB]{248,248,242}{)}@*) (*@\textcolor[RGB]{122,122,122}{! case i == 0}@*)
        (*@\textcolor[RGB]{248,248,242}{j}@*) (*@\textcolor[RGB]{248,248,242}{=}@*) (*@\textcolor[RGB]{228,243,74}{0}@*)
        (*@\textcolor[RGB]{230,71,71}{CASE}@*) (*@\textcolor[RGB]{248,248,242}{(}@*)(*@\textcolor[RGB]{228,243,74}{1}@*)(*@\textcolor[RGB]{248,248,242}{:}@*)(*@\textcolor[RGB]{228,243,74}{5}@*)(*@\textcolor[RGB]{248,248,242}{)}@*)
        (*@\textcolor[RGB]{248,248,242}{j}@*) (*@\textcolor[RGB]{248,248,242}{=}@*) (*@\textcolor[RGB]{228,243,74}{1}@*)
        (*@\textcolor[RGB]{230,71,71}{CASE}@*) (*@\textcolor[RGB]{248,248,242}{(}@*)(*@\textcolor[RGB]{228,243,74}{6}@*)(*@\textcolor[RGB]{248,248,242}{:}@*)(*@\textcolor[RGB]{248,248,242}{)}@*)
        (*@\textcolor[RGB]{248,248,242}{j}@*) (*@\textcolor[RGB]{248,248,242}{=}@*) (*@\textcolor[RGB]{228,243,74}{2}@*)
        (*@\textcolor[RGB]{230,71,71}{CASE}@*) (*@\textcolor[RGB]{230,71,71}{DEFAULT}@*)
        (*@\textcolor[RGB]{248,248,242}{j}@*) (*@\textcolor[RGB]{248,248,242}{=}@*) (*@\textcolor[RGB]{228,243,74}{3}@*)
    (*@\textcolor[RGB]{230,71,71}{END SELECT}@*)
(*@\textcolor[RGB]{230,71,71}{END PROGRAM}@*) (*@\textcolor[RGB]{248,248,242}{test}@*)

(*@\textcolor[RGB]{230,71,71}{SUBROUTINE}@*) (*@\textcolor[RGB]{155,107,223}{print\_message}@*)
    (*@\textcolor[RGB]{230,71,71}{PRINT}@*) (*@\textcolor[RGB]{248,248,242}{*}@*)(*@\textcolor[RGB]{248,248,242}{,}@*) (*@\textcolor[RGB]{66,230,108}{\textquotesingle{}Hello world!\textquotesingle{}}@*)
(*@\textcolor[RGB]{230,71,71}{END SUBROUTINE}@*) (*@\textcolor[RGB]{155,107,223}{print\_message}@*)

\end{tcblisting}