This directory contains LaGriT source fortran and C files.
The include file lagrit.h sets OS and date tags for the banner.
The lagrit*.h files are OS versions that are copied to lagrit.h
To build, use Makefile, Makefile.depends
type 'make help' to see a listing of make options
The make utility will maintain object files
as defined in OBJDIR. There is a seperate directory for each set
of optimized and debug for each OS platform. make will then check the
object files in the appropriate directory for updates.
The Makefile format requires GNU Make version 3.79.1 or later
To check variables in Makefile:
make list
In general to update libs and executable on each platform
make install (update optimized lib and put into LIBDIR)
make COPT=-g install (update debug lib and put into LIBDIR)
buildbin or buildbin opt (build executable into current dir)
Build scripts for compiler flags and names include:
buildbin.scr - SunOS, Linux, and Darwin (mac)
go.scr - single set of commands to compile for Ubuntu linux
config.sh - using linux modules and enviroment variables
==============================================================
V3.2 includes recent updates for WINDOWS with cygwin
See general instructions in /docs/build* and cmake*
and local README and scripts in this directory.
==============================================================
LIBRARIES: lg_util (included) and ExodusII (external)
Compile lg_util library in directory lg_util/src
Example: linux debug and optimized version 64 bit
check mm2000.h that BYTES_PER_INT = 8
if not then Remove and re-make mm2000.h from mm2000_header.F
rm -f mm2000.h
gcc -g -E -m64 -Dlinx64 mm2000_header.F -o mm2000.h
cp -p mm2000.h objects_lin64_g_gfort4.5/
cp -p mm2000.h objects_lin64_o_gfort4.5/
make COPT=-g lib
make lib
ExodusII 6.09
1) zlib/1.2.5/gcc-4.8.2
2) hdf5/1.8.6/gcc-4.8.2-serial
3) netcdf/4.3.3.1/gcc-4.8.2-serial
4) exodusii/6.09/gcc-4.8.2-serial
/n/swdev/packages/Ubuntu-14.04-x86_64/exodusii/6.09/gcc-4.8.2-serial/lib
libexodus.so libexoIIv2for.so
(static libs should be libexodus.a libexoIIv2for.a)
copy include files to src (or add -I to the link command)
exodusII.h (for C calls)
exodusII.inc (for Fortran calls)
exodusII_int.h exodusII_int.inc
NOTE: exodusII.inc is incomplete (Greg will fix in his version)
Add these lines if it does not exist:
integer EX_ELEM_SET
parameter (EX_ELEM_SET = 10)
==============================================================
BUILD EXECUTABLE Linux Ubuntu:
#### ubuntu with modules ### USING BASH instead of TCSH ######
# GNU Fortran (Ubuntu 4.8.2-19ubuntu1) 4.8.2
# using ExodusII 6.09 shared libraries
# load modules
module load exodusii/6.09/gcc-4.8.2-serial
module list
rm *.o
rm *.mod
make COPT=-g lib
### link code and libraries to build executable
# leave off -static option for the .so shared libraries:
gfortran -g -Dlinx64 -fcray-pointer -fdefault-integer-8 -fno-sign-zero -o mylagrit lagrit_main.o lagrit_fdate.o lagrit_ulin64_g_gf4.8.a /n/swdev/LAGRIT/VERS_3.103_015_MAR/lg_util/src/util_ulin64_g_gf4.8.a -L/n/swdev/packages/Ubuntu-14.04-x86_64/exodusii/6.09/gcc-4.8.2-serial/lib -lexodus -lexoIIv2for -lnetcdf -lhdf5_hl -lhdf5 -lz -lm -lstdc++
# BUILD DONE
==============================================================
Compile lagrit library and build executable (see also buildbin.scr)
# for linux version only
# create library and build executable in this directory
#
# Target: x86_64-unknown-linux-gnu
# Configured with: ../gcc-4.5.1/configure --prefix=/scratch/ymp/packages/gcc/gcc-4.5.1
# Thread model: posix gcc version 4.5.1 (GCC)
# this adds the libraries needed for exodus read/write commands.
#
# Call buildgfort for all versions
# or copy and past sections for single version compile and build
# OSTYPE = Linux gfortran 64 bit ------------------------------------------------
# build -g debug version for use with debuggers such as gdb
rm machine.h
cp lagrit_lin64.h lagrit.h
make MOPT=64 COPT=-g lib
gfortran -g -fcray-pointer -fdefault-integer-8 -Dlinx64 -c -o lagrit_main.o lagrit_main.f
gfortran -g -fcray-pointer -fdefault-integer-8 -Dlinx64 -c -o lagrit_fdate.o lagrit_fdate.f
gfortran -g -static-libgfortran -fcray-pointer -fdefault-integer-8 -Dlinx64 -o lagrit_lin64_g_gfort4.5 lagrit_main.o lagrit_fdate.o lagrit_lin64_g_gfort4.5.a /home/tam/src/lg_util/lib/util_lin64_g_gfort4.5.a -lm -L/home/tam/local/lib -lexoIIv2for -lexodus -lnetcdf -lm -lstdc++
-rw-r----- 1 tam pf 23666226 Aug 31 09:53 lagrit_lin64_g_gfort4.5.a
-rwxr-x--x 1 tam pf 14985136 Aug 31 10:09 lagrit_lin64_g_gfort4.5*
# OSTYPE = Linux gfortran 64 bit ------------------------------------------------
# build -O version optimized
rm machine.h
cp lagrit_lin64.h lagrit.h
make MOPT=64 lib
gfortran -O -fcray-pointer -fdefault-integer-8 -Dlinx64 -c -o lagrit_main.o lagrit_main.f
gfortran -O -fcray-pointer -fdefault-integer-8 -Dlinx64 -c -o lagrit_fdate.o lagrit_fdate.f
gfortran -O -static-libgfortran -fcray-pointer -fdefault-integer-8 -Dlinx64 -o lagrit_lin64_o_gfort4.5 lagrit_main.o lagrit_fdate.o lagrit_lin64_o_gfort4.5.a /home/tam/src/lg_util/lib/util_lin64_o_gfort4.5.a -lm -L/home/tam/local/lib -lexoIIv2for -lexodus -lnetcdf -lm -lstdc++
-rw-r----- 1 tam pf 10265720 Aug 31 10:09 lagrit_lin64_o_gfort4.5.a
-rwxr-x--x 1 tam pf 8480343 Aug 31 10:10 lagrit_lin64_o_gfort4.5*
==============================================================
If do not have and do not need the ExodusII and netCDF libraries.
LaGriT V3.0 supports ExodusII file format output (which sits on top of netCDF).
This means that if you want to compile your own code you have to build the ExodusII and netCDF libraries yourself. We do not distribute those packages. A quick and dirty option to compile without these libraries would to just take the code that calls those libraries and replace dumpexodusII.f it with:
subroutine dumpexodusII(ifile)
return
end
or copy dumpexodusII.f.withnoexo to dumpexodusII.f
==============================================================
Running executable lagrit_lin64_o_gfort4.5
* * * * * * * * * * * * * * * * * * * * * * * * *
* * *
* * Program: LaGriT V3.001 Linux m64 *
* * date_compile: 2011/08/01 gfort 4.5 *
* * Run Time: 2011/Aug 31 10:14:12 *
* * Manual: http://lagrit.lanl.gov *
* * *
* * * * * * * * * * * * * * * * * * * * * * * * *
-----oOo-----
LaGriT Copyright: This program was prepared by Los Alamos National Security, LLC
at Los Alamos National Laboratory (LANL) under contract No. DE-AC52-06NA25396
with the U.S. Department of Energy (DOE). All rights in the program are reserved
by the DOE and Los Alamos National Security, LLC. Permission is granted to the
public to copy and use this software without charge, provided that this Notice
and any statement of authorship are reproduced on all copies. Neither the
U.S. Government nor LANS makes any warranty, express or implied, or assumes
any liability or responsibility for the use of this software.
-----oOo-----
Output log file: outx3dgen
Command log file: logx3dgen
Enter a command
memory print
memory print
--------
MEMORY SIZES :
Sizeof char (type 3) = 1 bytes Sizeof long = 8 bytes
Sizeof real*8 (type 2) = 8 bytes Sizeof pointer = 8 bytes
Sizeof integer (type 1) = 4 bytes Sizeof INT_PTRSIZE = 8 bytes
INDEX LENGTH TYPE ADDRESS NAME PARTITION
2 10 1 102267104 global_type global_lg
3 10 1 102267296 global_index global_lg
1 10 3 102269056 global_name global_lg
4 20 1 102329536 global_integer global_lg
5 20 2 102329808 global_real global_lg
6 20 3 102330080 global_character global_lg
7 10 3 102330832 geom_names geom_lg
8 80 1 102331264 geom_info geom_lg
9 8 3 102332016 defcmo_attparam_names define_cmo_lg
10 10 3 102332384 cmo_names define_cmo_lg
11 10 1 102332816 cmo_natts define_cmo_lg
12 455 3 102333008 cmo_attlist default_cmo_lg
13 65 3 102347680 cmo_attparam_cdefault default_cmo_lg
14 65 1 102349872 cmo_attparam_idefault default_cmo_lg
15 65 2 102350496 cmo_attparam_rdefault default_cmo_lg
16 2560 1 102351120 cmd_stack initlagrit
17 1280 1 102371712 definition initlagrit
Total BYTES = 51456 Total MEGABYTES = 51.456E-03
--------