FEAP - A Finite Element Analysis Program
Version 7.1f: March 1999


The program is distributed by NISEE; however, they are not able to answer questions about installation or use of any versions of FEAP.
ADDRESS ALL QUESTIONS TO: R. L. TAYLOR e-mail: rlt@ce.berkeley.edu.

PLEASE READ THESE INSTRUCTIONS THOROUGHLY BEFORE ATTEMPTING AN INSTALLATION. Special attention should be given to parts labeled as IMPORTANT.


The distribution version of FEAP contains all the source files, include files, and current manuals. The program is furnished for your personal use and may not be redistributed in any form to others without prior authorization. You may install an executable version and/or an archive together with the files 'feap71.f' and 'contact.f' on a server to be used within your own institution or firm.


The program is distributed in one of two formats:

TAR FILE FORMAT

ZIP FILE FORMAT

User Manual
Programmers
Examples
Source

manual.tar
pmanual.tar
example.tar
feap71.tar

man71.ps.zip
pmanual.zip
example.zip
feap71.zip


The tar file will automatically reconstruct a standard directory structure. To unpack the files use: tar xvf feap71.tar.
The zip file needs a -d option flag to correctly reconstruct the directories. To unpack the files user: unzip -d feap71.zip (or on a PC pkunzip -d feap71.zip).


IMPORTANT for UNIX installation:

Problems have been noted that files contain erroneous Ctrl-M (^M) at the end of lines. These may be removed using utilities on the machine (consult your system administrator). Alternatively, they may be removed using the program in file 'stripm.c' contained in the maintain directory. After compilation with a C compiler the program is used as: stripm *.f *.f90 *.c *.h in each directory.


UNIX Installation and compiling

The installation of the program is achieved by performing the following steps:

  1. Make a directory to store the source and files: (e.g., mkdir Feap);
  2. Change to new directory (e.g., cd Feap);
  3. Unpack tar or zip file using: tar xvf feap71.tar or (pk)unzip -d feap71.zip, zip/unzip for UNIX may be obtained from Gnu;
  4. The source directory will contain two files: makefile and makefile.in These files may be used to build an archive (library) and executable for the program. The file "makefile.in" is used to set the compiler types (e.g., f90, f77, g77; cc, gcc; etc.), location of the include files (*.h), compiler options (e.g., archive type and location), and location of libraries;
  5. Create RCS directories and check-in program files using: make rcs, N.B. Skip steps 5 and 6 if you do not have RCS capability;
  6. Check-out all source files and makefiles using: make checkout;
  7. Compile all source files and create library archive "Feap71.a" using:
    • with RCS use: make install,
    • with no RCS use: make install_norcs.

Currently Step 7 also attempts to build an executable "feap"; however, if you need to patch the archive for your machine (see below) the build will not be completed. Unsatisfied externals will exist if a patch is required.


Windows version

Create a directory to contain the subdirectories, source files, and include files.
For a windows version the directories and source code are extracted by using: pkunzip -d dist.tar. The program will compile using any standard Fortran 90 compiler, however, a graphics interface is provided only for the Microsoft Power Fortran 4.0 compiler or the DEC Fortran 95 compiler. Successful builds have been obtained by placing the files in directories named "program" and "user" in one library, the files in directories named "plot" and "win95" in second library, the files in directory named "contact" in a third library, and the files in directory named "element" in a fourth library. The main program may then be built by combining the three libraries with the main program file in the "main" directory (i.e., feap71.f). A smaller version of the program may be built by eliminating the "contact" library and including the file contact.f in the directory "main" during the final build.
IMPORTANT: Build a Quick Windows application when including the graphics for the Microsoft or DEC compilers.


Manuals

Three manuals are distributed with the program. The first manual contains user instructions for preparing input data for FEAP. The second manual describes some example inputs and solutions. Finally, the third manual describes some of the options for users to modify the capability of the current version.
Current manuals may also be downloaded from the web page located at: www.ce.berkeley.edu/~rlt.

Remarks:

  1. On Unix machines it is necessary to use a -Iinclude_directory_name when compiling the program. This directive tells the compiler where to look for the include files. The "include_directory_name" may need to be set to the full path name of the FEAP include directory;
  2. On PC's, to avoid the link warning on libc.lib set the following options:
    • MS Power Fortran 4.0
      Under the "Build" menu go to "Settings..." and choose the "Link" tab. Select the category "Input" and add "libc.lib to the list of Ignore libraries. The line should read: console.lib,libc.lib.
      Note: Do not leave blank spaces between the list items or items after the blank may be ignored,
    • DEC Fortran 95
      Under the "project" menu, go to "Settings" and choose the "Link" tab. In the box, named "Libraries to ignore" add "libc.lib" to list of existing ones ("dfconsol.lib" should already be in the box). Thus, the contents in "Libraries to ignore" should read: dfconsol.lib, libc.lib.
      Note: DEC compiler may not be sensitive to blanks in the line,
  3. On Windows machines: Build a Quick Win Application not a Standard Graphics Application;
  4. On Windows machines: It is necessary to set a path to INCLUDE files for the preprocessor to use during compilation. MS compiler and DEC compiler are different. Consult your compiler documentation on how to set. (MS compiler does it in the Development Studio Build tab under Settings..., Fortran; Category: Preprocessor - by setting the INCLUDE and USE paths box to the location of the include directory);
  5. On some machines subroutines are needed for various system utilities; viz. etime, fdate, getlog, and signal. Dummy routines can always be used if a suitable routine cannot be written.

    On PC machines example routines are:
          real function etime(tt)
          implicit none
          real tt(2)
          integer*2 ihr, imin, isec, ihth
    
          include 'etime1.h'
     
          call gettim (ihr,imin,isec,ihth)
          tt(2) = 0.0
          tt(1) = 0.01*ihth + isec + 60.*(imin + 60.*ihr) - tim0
          etime = tt(1) + tt(2)
    
          end
    
     
          subroutine fdate(date)
          implicit none
          character*24 date
    
          integer*2 iyr, imon, iday
    
          call getdat( iyr, imon, iday )
    
          write(date,1000) imon, iday, iyr
    
    1000  format( 2x,i2,'/',i2,'/',i4,2x)
    
          end
    
     
          subroutine getlog(user)
          character*8 user
    
          user = 'UserName'
          end
    
          subroutine signal()
          end
    

    On HP Unix machines:
          real function etime (tary)
    
          integer clock,itime
          real ttime, tary(2)
    
          itime = clock()
          ttime = float(itime)/1000000.0
          tary(2) = ttime
          tary(1) = ttime
          etime   = ttime
    
          end
    
          subroutine fdate ()
          end
    
          subroutine getlog ()
          end
    

    On IBM Unix machines:
    
          function etime(tt)
    
    c     timing on the IBM RS/6000
    
          real etime, tt(2)
    
          integer mclock
    
          tt(1) = real( mclock() )/100.0
          tt(2) = 0.0d0
          etime = tt(1) + tt(2)
    
          end
    
          subroutine getlog(uname)
          character uname*8
          uname = 'UserName'
          end
    
          subroutine fdate (cdate)
          character cdate*24
          cdate = 'undated output'
          end
    

    On some LINUX compilers:
          subroutine fdate(date)
          implicit none
          character*24 date
          date = 'undated output'
          end
     
          subroutine getlog(user)
          character*8 user
          user = 'UserName'
          end
    

    C patch for LINUX:
    
          #include <TIME.H>
    
          float etime_( float (*tt)[]) {
    
          clock_t cticks;
          float t;
    
          cticks = clock();
    
          t = (float)cticks/CLOCKS_PER_SEC;
    
          (*tt)[0] = t;
          (*tt)[1] = 0.0;
    
          return(t);
    
          }
    
  6. Once the directories are constructed from the tar/zip file source code is placed in each subdirectory. When creating an executable an archive containing the compiled object code from each source file is constructed. The directories named: "contact, elements, plot, program, unix, user" are included in the archive. A main program is built using this archive and the main program routine in the directory "main" (i.e., feap71.f). A smaller version without contact may be built by including the dummy routine contact.f which is also in the "main" directory;
  7. The current version of the program is distributed with a contact module. However, very limited documentation is provided;
  8. The structure of common blocks has been revised for version 7.1. Check any old user developed routines to be sure these changes are properly accounted for;
  9. The parameters included in calls to subprogram 'formfe' have been changed to pointers for the arrays instead of array locations (e.g., see 'pmacr1' for examples);
  10. It has been noted on some DEC Alpha 500 work stations that large memory problems require setting the data segment size to unlimited.
    Using bash: Update the .bash_login files to include ulimit -d unlimited,
    Using csh: Update the .login file to include limit datasize unlimited,
    Other machines may also require a similar statement;
  11. Machines which have only Fortran 77 compilers need to include the files in directory f77. In addition, it is necessary to replace the include file 'f77.h' in the 'include' directory by the one in the 'f77' directory (or remove the comment from the one in 'include'). In addition, replace the file 'ptmplt.f' in directory 'program' by the one in directory 'f77'. Fortran 77 compilers do not support the 'append' option.

Please report any problems to R.L. Taylor using e-mail sent to: rlt@ce.berkeley.edu.
Last update: 27 February 1999