the Fink project is an effort to port
popular Unix programs to Mac OS X
Package: modulef
Version: 99
Revision: 8
Source: ftp://ftp.inria.fr/INRIA/Projects/MACS/Modulef/%n%v.tar.gz
Source-MD5: e4d58bcf404abdb6954f70f05eff54a8
SourceDirectory: modulef99
Source2: http://www-rocq.inria.fr/%n/licence_en.html
Source2-MD5: dbc2d671a9f041acd996407fff86019d
Source3: http://www-rocq.inria.fr/%n/licence_fr.html
Source3-MD5: f5d32b710978723af6e80f301b6d0c06
License: OSI-Approved
Depends: gcc46-shlibs, x11-shlibs
BuildDepends: fink (>= 0.24.12), gcc46, x11-dev
Recommends: modulefdoc
PatchFile: %n.patch
PatchFile-MD5: b337ff045b8db62a0f9cf971eb2cce6a
PatchScript: <<
%{default_script}
cp -R ascii/sta/s/u_linux ascii/sta/s/u_darwin
<<
UseMaxBuildJobs: false
CompileScript: <<
#!/bin/sh -ex
unset MM
unset MR
export LANG=C
cd make
perl -pi -e 's,MR=/bidon,MR=%b,g' Makefile
make <
EOF
cd Installdarwin
perl -pi -e '
s,^(STDLIB=).*,$1-L/usr/X11R6/lib -lX11, ;
s,^(LANGUAGE=).*,$1GB, ;
' M_config
make || true
# make F77="g95 -fsloppy-char" LINK="g95 -Wl,-search_paths_first"
make F77="gfortran -O3 -fd-lines-as-comments" LINK="gfortran -O3 -Wl,-search_paths_first"
<<
InstallScript: <<
#!/bin/sh -ex
/usr/bin/install -d %i/share/%n
/bin/cp -Rp darwin ascii %i/share/%n/
/usr/bin/install -d %i/etc/profile.d
cat >%i/etc/profile.d/%n.sh <
export MR=%p/share/%n;\
source \$MR/darwin/env_sh;\
prepend_path PATH \$MdPATH\
'
EOF
cat >%i/etc/profile.d/%n.csh <
setenv MR %p/share/%n;\
source \$MR/darwin/env_csh;\
set path=(\$Mdpath \$path)\
'
EOF
chmod 755 %i/etc/profile.d/modulef.*
<<
DocFiles: ../licence_en.html ../licence_fr.html
Description: Classic Finite Element Package
DescDetail: <<
Modulef has been used for many years in the teaching of
finite element methods, but also in serious computations
in research laboratories.
From the web site:
The following capabilities are available in the MODULEF library:
Automatic generation and modification of two- and three-dimensional
meshes. Specification of material characteristics or external forces
by sub-domain or boundary section. Choice of type of finite element
method, for example, conforming, non-conforming, hybrid, or mixed.
For non-conforming methods the flow and stresses can be computed along
with the temperature or displacement, or separately.
The finite element library contains about 36 elements for thermal analysis
and about 61 elements for elasticity for isotropic and anisotropic materials
and 4 elements for magnetism and 2 elements for piezoelectric materials.
Linear systems can be solved using direct or iterative methods.
Solution methods for eigenproblems include inverse iteration, subspace
iteration, Lanczos and QR methods. Solution of time-dependent thermal
problems and dynamic problems; variational inequalities; Solution of
the Dirichlet problem for a biharmonic operator by a mixed finite
element method of order 1 or 2. Calculation of velocities and
pressure of a viscous incompressible fluid (Navier-Stokes equations).
Computation of homogenised coefficients of composite structures.
Decomposition of domains.
Several modules are available for the display of results,
interactively or in batch, for example to plot two- or
three-dimensional meshes, deformations, stresses, isovalues,
velocities and streamlines in fluid mechanics, etc.
<<
DescUsage: <<
There is an extensive on-line documentation at
http://www-rocq.inria.fr/modulef/Doc/GB/welcome.html
If you want to browse this documentation locally (in English and in French),
install the modulefdoc package.
Before starting to work with Modulef, run the command
setup_modulef
in the shell from which you will be working.
<<
DescPort: <<
This version builds the "English" language texts for the interactive programs.
Some French accent is still visible ;-)
The French version could easily be built by removing the line
s,^(LANGUAGE=),$1GB, ;
from the CompileScript.
The patch is needed for two reasons:
1. Some loops have to be converted to integer variables to
make g95 happy. This is not needeed for g77 and gfortran,
but is a good idea anyway.
2. At some places, full path names are replaced by relative paths,
because these are used as input file names for modulef commands,
and there is a restriction of 80 characters for input command
line lengths. This takes care of build directories with very
long names.
Uses gfortran now.
<<
Maintainer: Martin Costabel
Homepage: http://www-rocq.inria.fr/modulef/english.html
--- modulef99_ori/ascii/sta/s/emc2/drawc.f 1999-06-02 14:57:07.000000000 +0200
+++ modulef99/ascii/sta/s/emc2/drawc.f 2006-04-18 12:28:19.000000000 +0200
@@ -10,7 +10,7 @@
real alpha,alpha1,alpha2,dalpha,msq(4)
real cmsq(0:3),p(0:5,2)
- integer i,topo
+ integer i,topo,n
c
drawc=.false.
if(c(0).le.point)return
@@ -42,7 +42,10 @@
endif
dalpha = 2.*pi/min(max( (c(0) * 200.)/cmsq(0),20.),3000.)
call mov2to(c(1)+c(0)*cos(alpha1),c(2)+c(0)*sin(alpha1))
- do 1 alpha=alpha1,alpha2,dalpha
+ n = (alpha2-alpha1)/dalpha
+c do 1 alpha=alpha1,alpha2,dalpha
+ do 1 i=0,n
+ alpha = alpha1+i*dalpha
call lin2to(c(1)+c(0)*cos(alpha),c(2)+c(0)*sin(alpha))
1 continue
call lin2to(c(1)+c(0)*cos(alpha2),c(2)+c(0)*sin(alpha2))
--- modulef99_ori/ascii/sta/s/emc2/gecran.f 1999-06-02 14:57:24.000000000 +0200
+++ modulef99/ascii/sta/s/emc2/gecran.f 2006-04-18 12:31:29.000000000 +0200
@@ -17,7 +17,7 @@
real mmx,mmy,fx,fy,hx,hy,mx,my,dmx,dmy,rr,alpha,aa
integer pt,numn
c case marquees
- integer mkcas1,i
+ integer mkcas1,i,j
logical ffac
c
gecran=0
@@ -284,7 +284,9 @@
dx=bd(3,i)-bd(1,i)
dy=bd(4,i)-bd(2,i)
alpha=bd(5,i)
- do 1201 aa=0.,1.,0.25
+c do 1201 aa=0.,1.,0.25
+ do 1201 j=0,4
+ aa = j*0.25
fx=bd(1,i)+dx*cos(alpha*aa) - dy*sin(alpha*aa)
fy=bd(2,i)+dx*sin(alpha*aa) + dy*cos(alpha*aa)
pnt(1,1)=min(pnt(1,1),fx)
--- modulef99_ori/ascii/sta/s/emc2/genspl.f 1999-06-02 14:39:07.000000000 +0200
+++ modulef99/ascii/sta/s/emc2/genspl.f 2006-04-18 12:38:20.000000000 +0200
@@ -176,7 +176,9 @@
87672 continue
87671 continue
tgen(i)=nbgen+1
- do 87675 t=0.,1.-step+0.51*step,step
+c do 87675 t=0.,1.-step+0.51*step,step
+ do 87675 l=0,9
+ t = l*step
do 87676 nd=1,ndim
c(nd)=(t**3*w(1,nd)+t**2*w(2,nd)+t*w(3,nd)+w(4,nd))
87676 continue
--- modulef99_ori/ascii/sta/s/emc2/traspl.f 1999-06-02 14:39:09.000000000 +0200
+++ modulef99/ascii/sta/s/emc2/traspl.f 2006-04-18 12:48:09.000000000 +0200
@@ -167,12 +167,14 @@
87674 continue
87672 continue
87671 continue
- do 87675 t=0.,1.+0.51*step,step
+c do 87675 t=0.,1.+0.51*step,step
+ do 87675 l=0,9
+ t=l*step
do 87676 nd=1,ndim
c(nd)=(t**3*w(1,nd)+t**2*w(2,nd)+t*w(3,nd)+w(4,nd))
tg2(nd)=c(nd)-old(nd)
old(nd)=c(nd)
- if(i.eq.1.and.t.eq.step)then
+ if(i.eq.1.and.l.eq.1)then
tg1(nd)=c(nd)-depart(nd)
endif
87676 continue
--- modulef99_ori/ascii/sta/s/trac/mesag0.f 1999-06-02 14:40:56.000000000 +0200
+++ modulef99/ascii/sta/s/trac/mesag0.f 2006-04-18 15:36:58.000000000 +0200
@@ -741,7 +741,10 @@
CALL LIGH3(0,0,IC)
CALL DRAW3(0)
STEP = PI / SPEED
- DO 4 TETA = 0. , 4.*PI , STEP
+C DO 4 TETA = 0. , 4.*PI , STEP
+ K = 4.*PI/STEP
+ DO 4 J=0,K
+ TETA = J*STEP
PHI = TETA/4. - PI/2.
NEWOBS(1) = PVULOU(1) + DIST*COS(PHI)*COS(TETA)
NEWOBS(2) = PVULOU(2) + DIST*COS(PHI)*SIN(TETA)
--- modulef99_ori/ascii/sta/s/trac/trmc3t.f 1999-06-02 14:40:59.000000000 +0200
+++ modulef99/ascii/sta/s/trac/trmc3t.f 2006-04-18 15:48:01.000000000 +0200
@@ -617,8 +617,8 @@
CALL TUER ( 'TRTN',M )
C --- DESSIN DES FLECHES INTRODUITE MANUELLEMENT
CALL LIGH3(-1,-1,COULRF(-2))
- DO 320 FL = 1 , FLENBR
- L = NINT( FL )
+ DO 320 L = 1 , FLENBR
+C L = NINT( FL )
CALL FLECH3( COOFLE(1,L),COOFLE(2,L),COOFLE(3,L),
+ COOFLE(4,L),COOFLE(5,L),COOFLE(6,L),IFLEC)
320 CONTINUE
--- modulef99_ori/ascii/sta/s/utsd/sddesc.f 1999-06-02 14:41:28.000000000 +0200
+++ modulef99/ascii/sta/s/utsd/sddesc.f 2006-04-18 15:51:01.000000000 +0200
@@ -28,6 +28,7 @@
C ......................................................................
C PROGRAMMEUR : B.MULLER OCTOBRE 1985 INRIA POSTE 5559
C ......................................................................
+ INTEGER NBSD, SDDI
PARAMETER (NBSD = 18,SDDI = 5)
CHARACTER*4 NOMSD,STOC(NBSD)
COMMON/TRAVA1/NX(28),LONREE,IMPRE,IFILL(3)
--- modulef99_ori/ascii/sta/s/visu/drwlcur2.f 1999-06-02 14:41:42.000000000 +0200
+++ modulef99/ascii/sta/s/visu/drwlcur2.f 2006-04-18 18:28:34.000000000 +0200
@@ -32,7 +32,8 @@
real prdscl
logical inelm
c ======================================================================
- real p(3,4),vv(3,4),p0dep(3),sens,step,deb,ffin
+ real p(3,4),vv(3,4),p0dep(3),sens
+ integer isens,step,deb,ffin
real tt(9,3),v0(3)
integer i,l,k,aout,nueosc,nuedep,nufdep,nuv,nufv
integer nueold,aoutold,nufold
@@ -80,21 +81,22 @@
nufdep=nuf ! face de depart
if(nbsens.eq.2)then
- deb=1.
- ffin=-1.
- step=-2.
+ deb=1
+ ffin=-1
+ step=-2
elseif(nbsens.eq.1)then
- deb=1.
- ffin=2.
- step=2.
+ deb=1
+ ffin=2
+ step=2
elseif(nbsens.eq.-1)then
- deb=-1.
- ffin=0.
- step=2.
+ deb=-1
+ ffin=0
+ step=2
endif
c pour tous les sens demandes
- do sens=deb,ffin,step
+ do isens=deb,ffin,step
+ sens = real(isens)
nue=nuedep
nuf=nufdep
do k=1,dim
--- modulef99_ori/ascii/sta/s/visu/drwlcur3.f 1999-06-02 14:41:42.000000000 +0200
+++ modulef99/ascii/sta/s/visu/drwlcur3.f 2006-04-18 18:31:31.000000000 +0200
@@ -21,7 +21,8 @@
integer ptcur(nbe),aplcur(lmax),anfac(lmax),anelm(lmax)
include 'td2d.ins'
c ======================================================================
- real p(3,4),vv(3,4),p0dep(3),sens,step,deb,ffin
+ real p(3,4),vv(3,4),p0dep(3),sens
+ integer isens,step,deb,ffin
integer l,k,aout,nueosc,nuedep
integer next3(3),osc
real p0osc(3)
@@ -45,21 +46,22 @@
nuedep=abs(nue) ! element de depart
if(nbsens.eq.2)then
- deb=1.
- ffin=-1.
- step=-2.
+ deb=1
+ ffin=-1
+ step=-2
elseif(nbsens.eq.1)then
- deb=1.
- ffin=2.
- step=2.
+ deb=1
+ ffin=2
+ step=2
elseif(nbsens.eq.-1)then
- deb=-1.
- ffin=0.
- step=2.
+ deb=-1
+ ffin=0
+ step=2
endif
c pour tous les sens demandes
- do sens=deb,ffin,step
+ do isens=deb,ffin,step
+ sens = real(isens)
nue=nuedep
do k=1,dim
p0(k)=p0dep(k)
--- modulef99_ori/ascii/sta/s/visu/image.f 1999-06-02 14:41:44.000000000 +0200
+++ modulef99/ascii/sta/s/visu/image.f 2006-04-18 18:34:55.000000000 +0200
@@ -18,7 +18,9 @@
ymax=-infini
endif
- do 1 t=tmin,tmax,s
+c do 1 t=tmin,tmax,s
+ do 1 j=0,int((tmax-tmin)/s)
+ s=tmin+j*s
i=i+1
if(i.gt.imax)goto 2
x(i)=cos(5.*t)+sin(3.*t)
--- modulef99_ori/make/makefile.mm 2006-04-23 13:16:29.000000000 +0200
+++ modulef99/make/makefile.mm 2006-04-23 13:15:42.000000000 +0200
@@ -251,5 +251,5 @@
$(MR)/$(MM)/$(MV)/etc/proc.direct: $(ms)/ppad/symd.d $(mb)/procat
\rm -f $@
- ( export MR ; MR=$(MR) ;\
+ ( export MR ; MR=../.. ;\
export MM ; MM=$(MM) ;\
export MV ; MV=$(MV) ;\
@@ -277,5 +277,5 @@
$(dir)/Listtest.depend: $(mb)/proimp $(MR)/$(MM)/$(MV)/etc/proc.direct
- $(dir)/ListBib.test $(mb) $(dir) $(MAJMIN) $(MR) $(MM) $(MV) > $@
+ $(dir)/ListBib.test $(mb) $(dir) $(MAJMIN) ../.. $(MM) $(MV) > $@
$(dir)/Install$(MM)/List_f3d1: $(dir)/Install$(MM)/periphin.in $(dir)/Install$(MM)/periph
@@ -341,11 +341,11 @@
@\rm -f $@
USER=$${USER:-modulef} ;export USER; \
- (echo "'$?'" ; echo "'$@'") | $(mb)/pobaxx > $(dir)/Install$(MM)/poba.out
+ (echo "'$?'" ; echo "'$@'") | sed "s|$(MR)/|../../|g" | $(mb)/pobaxx > $(dir)/Install$(MM)/poba.out
if [ -f $@ ] ;then exit 0; else exit 1; fi
@echo ""
@echo "Les sorties de pobaxx sont dans $(dir)/Install$(MM)/poba.out"
@echo "Voici les 30 dernieres lignes de ce fichier :"
@echo ""
- @tail -30 $(dir)/Install$(MM)/poba.out
+ @tail -n 30 $(dir)/Install$(MM)/poba.out
POBV:PP_pobvxx $(MR)/$(MM)/$(MV)/etc/pobv.direct
@@ -355,9 +355,9 @@
USER=$${USER:-modulef} ;export USER; \
- (echo "'$?'" ; echo "'$@'" ) |$(mb)/pobvxx > $(dir)/Install$(MM)/pobv.out
+ (echo "'$?'" ; echo "'$@'" ) | sed "s|$(MR)/|../../|g" | $(mb)/pobvxx > $(dir)/Install$(MM)/pobv.out
if [ -f $@ ] ;then exit 0; else exit 1; fi
@echo ""
@echo "Les sorties de pobvxx sont dans $(dir)/Install$(MM)/pobv.out"
@echo "Voici les 30 dernieres lignes de ce fichier :"
@echo ""
- @tail -30 $(dir)/Install$(MM)/pobv.out
+ @tail -n 30 $(dir)/Install$(MM)/pobv.out