title: Standard F90 Library for Makefile
body: <p>Greetings Everyone,</p>
  
  <p>Trying to compile using g++ and need to link the standard f90 (or f77 even) libraries for some fortran source codes in my Makefile. I cant find the name of it anywhere.</p>
  
  <p>Makerfile:</p>
  
  <pre><code>products: SlowDynamic.exe
  
  SlowDynamic.exe: main.o SA.o mersenne.o CFE.o BCs.o EMatrix.o Numbering.o KMatrix.o Solve.o MA_57.o blas.o MA_57_Depend.o Metis.o
      g++ -L/usr/sfw/lib -R/usr/sfw/lib -lgcc_s -lstdc++ -o SlowDynamic.exe main.o \
          SA.o mersenne.o CFE.o MA_57.o blas.o MA_57_Depend.o Metis.o\
          BCs.o EMatrix.o Numbering.o KMatrix.o Solve.o
  
  main.o: main.cpp
      g++ -c -o main.o main.cpp
  
  SA.o: SA.cpp
      g++ -c -o SA.o SA.cpp
  
  mersenne.o: mersenne.cpp
      g++ -c -o mersenne.o mersenne.cpp
  
  CFE.o: CFE.c
      gcc -c -o CFE.o CFE.c
  
  MA_57.o: MA_57.f
      f77 -c -o MA_57.o MA_57.f
  
  blas.o: blas.f
      f77 -c -o blas.o blas.f
  
  MA_57_Depend.o: MA_57_Depend.f
      f77 -c -o MA_57_Depend.o MA_57_Depend.f
  
  Metis.o: Metis.f
      f77 -c -o Metis.o Metis.f
  
  BCs.o: BCs.c
      gcc -c -o BCs.o BCs.c
  
  EMatrix.o: EMatrix.c
      gcc -c -o EMatrix.o EMatrix.c
  
  Numbering.o: Numbering.c
      gcc -c -o Numbering.o Numbering.c
  
  KMatrix.o: KMatrix.c
      gcc -c -o KMatrix.o KMatrix.c
  
  Solve.o : Solve.c
      gcc -c -o Solve.o Solve.c
  
  clean: 
      rm *.o Main.exe *.gpi
  </code></pre>
  
  <p>Compiler:</p>
  
  <pre><code>birch $ make
  mksh: Warning: newline is not last character in file Makefile
  Current working directory /u/f/osv20/Y4-UNIX/complete
  g++ -L/usr/sfw/lib -R/usr/sfw/lib -lgcc_s -o SlowDynamic.exe main.o \
          SA.o mersenne.o CFE.o MA_57.o blas.o MA_57_Depend.o Metis.o\
          BCs.o EMatrix.o Numbering.o KMatrix.o Solve.o
  Undefined                       first referenced
   symbol                             in file
  __f90_sfw_i4                        MA_57.o
  __f90_sfw_ch                        MA_57.o
  __f90_sfw_r4                        MA_57.o
  __f90_ifw_ch                        MA_57.o
  __f90_ifw_r4                        MA_57.o
  __nintf                             MA_57.o
  __s_cmp                             blas.o
  __r_sign                            MA_57_Depend.o
  __f90_sifw                          MA_57.o
  __f90_ssfw                          MA_57.o
  __f90_stop                          blas.o
  __f90_esfw                          MA_57.o
  __f90_eifw                          MA_57.o
  ld: fatal: Symbol referencing errors. No output written to SlowDynamic.exe
  collect2: ld returned 1 exit status
  *** Error code 1
  make: Fatal error: Command failed for target `SlowDynamic.exe'
  </code></pre>
  
  <p>Results for running 'f77 -v hello.f'</p>
  
  <pre><code>amos $ f77 -v hello.f
  NOTICE: Invoking /usr/bin/f90 -f77 -ftrap=%none -v hello.f
  ###     command line files and options (expanded):
  ### -f77=%all -ftrap=%none -v hello.f -lf77compat
  ### f90: Note: NLSPATH = /opt/SUNWspro/prod/bin/../lib/locale/%L/LC_MESSAGES/%N.cat:/opt/SUNWspro/prod/bin/../../lib/locale/%L/LC_MESSAGES/%N.cat
  /opt/SUNWspro/prod/bin/f90comp -y-o -yhello.o -ev -y-ftrap=%none -m3 -dq -y-fbe -y/opt/SUNWspro/prod/bin/fbe -y-xarch=generic -y-s -H "/opt/SUNWspro/prod/bin/f90 -f77 -ftrap=%none -v " -y-xcache=generic -xcache=generic -I/opt/SUNWspro/prod/include/f95/v8 -p/opt/SUNWspro/prod/lib/modules -y-verbose -xall -xmemalign=8i -y-xmemalign=8i -f77=%all -y-xdbggen=no%stabs+dwarf2 -y-xdbggen=incl -xassume_control=optimize -y-xassume_control=optimize -iorounding=processor-defined -xhasc=yes hello.f
  hello.f:
   MAIN hellow:
  ### f90: Note: LD_LIBRARY_PATH = (null)
  ### f90: Note: LD_RUN_PATH     = (null)
  ### f90: Note: LD_OPTIONS = (null)
  /usr/ccs/bin/ld -t -R/opt/SUNWspro/lib/sparc:/opt/SUNWspro/lib -o a.out /opt/SUNWspro/prod/lib/crti.o /opt/SUNWspro/prod/lib/crt1.o /opt/SUNWspro/prod/lib/misalign.o /opt/SUNWspro/prod/lib/values-xi.o -Y P,/opt/SUNWspro/lib/sparc:/opt/SUNWspro/prod/lib/sparc:/opt/SUNWspro/lib:/opt/SUNWspro/prod/lib:/usr/ccs/lib:/lib:/usr/lib hello.o -lf77compat -lfui -lfai -lfai2 -lfsumai -lfprodai -lfminlai -lfmaxlai -lfminvai -lfmaxvai -lfsu -lsunmath -Bdynamic -lmtsk -lm -lc /opt/SUNWspro/prod/lib/crtn.o
  rm hello.o
  </code></pre>
  
  <p>Results for running 'f90 -v hello.f'</p>
  
  <pre><code>amos $ f90 -v hello.f
  ###     command line files and options (expanded):
  ### -v hello.f
  ### f90: Note: NLSPATH = /opt/SUNWspro/prod/bin/../lib/locale/%L/LC_MESSAGES/%N.cat:/opt/SUNWspro/prod/bin/../../lib/locale/%L/LC_MESSAGES/%N.cat
  /opt/SUNWspro/prod/bin/f90comp -y-o -yhello.o -ev -y-ftrap=common -m3 -dq -y-fbe -y/opt/SUNWspro/prod/bin/fbe -y-xarch=generic -y-s -H "/opt/SUNWspro/prod/bin/f90 -v " -y-xcache=generic -xcache=generic -I/opt/SUNWspro/prod/include/f95/v8 -p/opt/SUNWspro/prod/lib/modules -y-verbose -xall -xmemalign=8i -y-xmemalign=8i -y-xdbggen=no%stabs+dwarf2 -y-xdbggen=incl -xassume_control=optimize -y-xassume_control=optimize -iorounding=processor-defined -xhasc=yes hello.f
  ### f90: Note: LD_LIBRARY_PATH = (null)
  ### f90: Note: LD_RUN_PATH     = (null)
  ### f90: Note: LD_OPTIONS = (null)
  /usr/ccs/bin/ld -t -R/opt/SUNWspro/lib/sparc:/opt/SUNWspro/lib -o a.out /opt/SUNWspro/prod/lib/crti.o /opt/SUNWspro/prod/lib/crt1.o /opt/SUNWspro/prod/lib/misalign.o /opt/SUNWspro/prod/lib/values-xi.o -Y P,/opt/SUNWspro/lib/sparc:/opt/SUNWspro/prod/lib/sparc:/opt/SUNWspro/lib:/opt/SUNWspro/prod/lib:/usr/ccs/lib:/lib:/usr/lib hello.o -lfui -lfai -lfai2 -lfsumai -lfprodai -lfminlai -lfmaxlai -lfminvai -lfmaxvai -lfsu -lsunmath -Bdynamic -lmtsk -lm -lc /opt/SUNWspro/prod/lib/crtn.o
  rm hello.o
  </code></pre>
  
  <p>Results for a successful compile using f77:</p>
  
  <pre><code>amos $ make
  mksh: Warning: newline is not last character in file Makefile
  Current working directory /u/f/osv20/Y4-UNIX/complete
  g++ -c -o main.o main.cpp
  In file included from main.cpp:16:
  SA.h:85:9: warning: no newline at end of file
  main.cpp:38:2: warning: no newline at end of file
  g++ -c -o SA.o SA.cpp
  In file included from SA.cpp:22:
  SA.h:85:9: warning: no newline at end of file
  In file included from SA.cpp:23:
  CFE.h:25:8: warning: no newline at end of file
  SA.cpp:468:4: warning: no newline at end of file
  g++ -c -o mersenne.o mersenne.cpp
  gcc -c -o CFE.o CFE.c
  In file included from BCs.h:9,
                   from CFE.c:29:
  fg_types.h:38:7: warning: no newline at end of file
  In file included from CFE.c:29:
  BCs.h:15:84: warning: no newline at end of file
  In file included from CFE.c:32:
  KMatrix.h:12:171: warning: no newline at end of file
  In file included from CFE.c:34:
  Solve.h:9:91: warning: no newline at end of file
  CFE.c: In function `CFE':
  CFE.c:145: warning: `return' with a value, in function returning void
  gcc -c -o BCs.o BCs.c
  In file included from BCs.h:9,
                   from BCs.c:9:
  fg_types.h:38:7: warning: no newline at end of file
  In file included from BCs.c:9:
  BCs.h:15:84: warning: no newline at end of file
  BCs.c:74:2: warning: no newline at end of file
  gcc -c -o EMatrix.o EMatrix.c
  In file included from EMatrix.h:9,
                   from EMatrix.c:9:
  fg_types.h:38:7: warning: no newline at end of file
  EMatrix.c:78:2: warning: no newline at end of file
  gcc -c -o Numbering.o Numbering.c
  In file included from Numbering.h:8,
                   from Numbering.c:8:
  fg_types.h:38:7: warning: no newline at end of file
  Numbering.c:144:3: warning: no newline at end of file
  gcc -c -o KMatrix.o KMatrix.c
  In file included from KMatrix.h:8,
                   from KMatrix.c:9:
  fg_types.h:38:7: warning: no newline at end of file
  In file included from KMatrix.c:9:
  KMatrix.h:12:171: warning: no newline at end of file
  KMatrix.c:194:2: warning: no newline at end of file
  gcc -c -o Solve.o Solve.c
  In file included from Solve.c:8:
  Solve.h:9:91: warning: no newline at end of file
  Solve.c:95:2: warning: no newline at end of file
  f77 -c -o MA_57.o MA_57.f
  NOTICE: Invoking /usr/bin/f90 -f77 -ftrap=%none -c -o MA_57.o MA_57.f
  MA_57.f:
          ma57i:
          ma57a:
          ma57b:
          ma57c:
          ma57q:
          ma57r:
          ma57u:
          ma57s:
          ma57t:
          ma57d:
          ma57e:
          ma57g:
          ma57j:
          ma57k:
          ma57f:
          ma57l:
          ma57m:
          ma57n:
          ma57o:
          ma57p:
          ma57w:
          ma57x:
          ma57y:
          ma57v:
          ma57h:
          ma57z:
  f77 -c -o blas.o blas.f
  NOTICE: Invoking /usr/bin/f90 -f77 -ftrap=%none -c -o blas.o blas.f
  blas.f:
          sgemm:
          stpsv:
          isamax:
          xerbla:
          lsame:
          sgemv:
  f77 -c -o MA_57_Depend.o MA_57_Depend.f
  NOTICE: Invoking /usr/bin/f90 -f77 -ftrap=%none -c -o MA_57_Depend.o MA_57_Depend.f
  MA_57_Depend.f:
          mc47a:
          mc47b:
          mc71a:
          mc34a:
          mc59a:
          mc59b:
          mc59c:
          mc59d:
          mc59e:
          mc59f:
          ma27i:
          ma27a:
          ma27b:
          ma27c:
          ma27g:
          ma27h:
          ma27u:
          ma27j:
          ma27k:
          ma27l:
          ma27m:
          ma27n:
          ma27o:
          ma27p:
          ma27q:
          ma27r:
          mc64i:
          mc64a:
          mc64b:
          mc64d:
          mc64e:
          mc64f:
          mc64r:
          mc64s:
          mc64q:
          mc64u:
          mc64w:
          mc21a:
          mc21b:
          fd15a:
  f77 -c -o Metis.o Metis.f
  NOTICE: Invoking /usr/bin/f90 -f77 -ftrap=%none -c -o Metis.o Metis.f
  Metis.f:
          metis_nodend:
  f77 -L/usr/sfw/lib -R/usr/sfw/lib -lgcc_s -lstdc++ -o SlowDynamic.exe main.o \
          SA.o mersenne.o CFE.o MA_57.o blas.o MA_57_Depend.o Metis.o\
          BCs.o EMatrix.o Numbering.o KMatrix.o Solve.o
  NOTICE: Invoking /usr/bin/f90 -f77 -ftrap=%none -L/usr/sfw/lib -R/usr/sfw/lib -lgcc_s -lstdc++ -o SlowDynamic.exe main.o SA.o mersenne.o CFE.o MA_57.o blas.o MA_57_Depend.o Metis.o BCs.o EMatrix.o Numbering.o KMatrix.o Solve.o
  </code></pre>