これらの関数は、次のように文字列による探索を行います。
| index(a1,a2) | 文字列 a1 の中で最初に出現する文字列 a2 のインデックス | 
| rindex(a1,a2) | 文字列 a1 の中で最後に出現する文字列 a2 のインデックス | 
| lnblnk(a1) | 文字列 a1 の中の空白以外の最後の文字のインデックス | 
index は次の形式をとります。
index は、組み込み関数で次のように呼び出します。
| n = index( a1, a2 ) | |||
| a1 | character | 入力 | 文字列 | 
| a2 | character | 入力 | |
| 戻り値 | INTEGER | 出力 | n>0: a1 の中で最初に出現する a2 のインデックス n=0: a1 の中に a2 が出現しない | 
INTEGER*8 と宣言されている場合は、64 ビット環境用にコンパイルされ、さらに文字変数 a1 が非常に大きな文字列であるときに (2 G バイトを超えるもの)、index() は INTEGER*8 値を戻します。
関数は、次のように呼び出します。
| INTEGER*4 rindex n = rindex( a1, a2 ) | |||
| a1 | character | 入力 | 文字列 | 
| a2 | character | 入力 | 部分列 | 
| 戻り値 | INTEGER*4 または INTEGER*8 | 出力 | n>0: a1 の中で最後に出現する a2 のインデックス n=0: a1 の中に a2 が出現しない。64 ビット環境の場合は、INTEGER*8 が戻る。 | 
関数は、次のように呼び出します。
| n = lnblnk( a1 ) | |||
| a1 | character | 入力 | 文字列 | 
| 戻り値 | INTEGER*4 または INTEGER*8 | 出力 | n>0: a1 の中の空白以外の最後の文字のインデックス n=0: a1 はすべて空白以外の文字。64 ビット環境の場合は、INTEGER*8 が戻る。 | 
例: index()、rindex()、lnblnk():
| demo% cat tindex.f
*                        123456789012345678901
       character s*24 / 'abcPDQxyz...abcPDQxyz' /
       INTEGER*4 declen, index, first, last, len, lnblnk, rindex
       declen = len( s )
       first = index( s, 'abc' )
       last = rindex( s, 'abc' )
       lastnb = lnblnk( s )
       write(*,*) declen, lastnb
       write(*,*) first, last
       end
demo% f95 tindex.f
demo% a.out
24 21     <- 組み込み関数 len() が宣言された s の長さを返すため、declen は 24
 1 13 | 
64 ビット環境で動作するようコンパイルされたプログラムは、非常に大きな文字列を処理するには index、rindex 、および lnblnk (および返される変数) INTEGER*8 を宣言します。