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:
- Make a directory to store the source and files: (e.g., mkdir Feap);
- Change to new directory (e.g., cd Feap);
- 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;
- 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;
- 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;
- Check-out all source files and makefiles using: make checkout;
- 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:
- 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;
- 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,
- On Windows machines: Build a Quick Win Application not a Standard
Graphics Application;
- 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);
- 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);
}
- 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;
- The current version of the program is distributed with a contact module.
However, very limited documentation is provided;
- 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;
- 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);
- 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;
- 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
|