Fortran90(大文字小文字の区別)

Fortranです。Fortran90の学習なので拡張子をf90に変えてビルドしていましたが、プログラム自体を全部大文字で書いてました。小文字で書く方がFortranっぽいらしいので、これからは小文字を使っていこうと思います。ところで90以降は、大文字小文字の区別はあるのでしょうか、実験してみます。

takk@deb9:~$ gfortran var.f90
takk@deb9:~$ cat var.f90
      program main
        I=1
        i=2
        write(*,*) I,i
        stop
      end
takk@deb9:~$ gfortran var.f90
takk@deb9:~$ ./a.out
           2           2
takk@deb9:~$

このように、変数Iとiに別々の値を設定して、表示してみます。

takk@deb9:~$ gfortran var.f90
takk@deb9:~$ ./a.out
           2           2
takk@deb9:~$

同じ値が表示されました。変数名の大文字小文字の区別はないようです。
関数はどうでしょうか。
まずは適当に関数を呼び出しするプログラムを作って、

takk@deb9:~$ cat sub.f90
      program main
        call pr()
        stop
      end
      subroutine pr()
        write(*,*) 'HELLO'
      end
takk@deb9:~$ gfortran sub.f90
takk@deb9:~$ ./a.out
 HELLO
takk@deb9:~$

ビルド、実行確認したら、次にprを大文字にしたPR()を追加します。

takk@deb9:~$ cat sub.f90
      program main
        call pr()
        stop
      end
      subroutine pr()
        write(*,*) 'HELLO'
      end
      subroutine PR()
        write(*,*) 'HELLO'
      end
takk@deb9:~$

そしてビルド。

takk@deb9:~$ gfortran sub.f90
sub.f90:8:19:

sub.f90:5:19:

       subroutine pr()
                   2
sub.f90:8:19:

       subroutine PR()
                   1
Error: Global name ‘pr’ at (1) is already being used as a SUBROUTINE at (2)
takk@deb9:~$

エラーとなりました。やはり大文字小文字の区別はないようです。
gfortranで大文字小文字を区別するオプションは探すことができませんでしたが、他のコンパイラではありそうです。

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA