Skip to content

Commit 9ad3191

Browse files
committed
First drop
1 parent 2f7182b commit 9ad3191

File tree

492 files changed

+40249
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

492 files changed

+40249
-0
lines changed

des/Makefile

+30
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
SHELL=/bin/sh
2+
3+
ROOT_PATH=..
4+
INC_PATH=$(ROOT_PATH)/makes
5+
include $(INC_PATH)/makecmd.inc
6+
7+
all: debug release
8+
9+
.PHONY: debug
10+
debug:
11+
make debug -C des_engl $(MAKECMD)
12+
make debug -C des_lou/mexp $(MAKECMD)
13+
make debug -C des_lou $(MAKECMD)
14+
make debug -C des_ros/inv $(MAKECMD)
15+
make debug -C des_ros $(MAKECMD)
16+
17+
.PHONY: release
18+
release:
19+
make release -C des_engl $(MAKECMD)
20+
make release -C des_lou/mexp $(MAKECMD)
21+
make release -C des_lou $(MAKECMD)
22+
make release -C des_ros/inv $(MAKECMD)
23+
make release -C des_ros $(MAKECMD)
24+
25+
clean:
26+
make clean -C des_engl $(MAKECMD)
27+
make clean -C des_lou/mexp $(MAKECMD)
28+
make clean -C des_lou $(MAKECMD)
29+
make clean -C des_ros/inv $(MAKECMD)
30+
make clean -C des_ros $(MAKECMD)

des/des_engl/Makefile

+81
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
SHELL=/bin/sh
2+
3+
ROOT_PATH=../..
4+
INC_PATH=$(ROOT_PATH)/makes
5+
include $(INC_PATH)/defines.inc
6+
include $(INC_PATH)/suffixes.inc
7+
8+
SOURCES = $(wildcard *.f)
9+
OBJS = $(patsubst %.f, $(OBJDIR)/%.o, $(SOURCES))
10+
DOBJS = $(patsubst %.f, $(DOBJDIR)/%.o, $(SOURCES))
11+
12+
FCOMMON_FLAGS += -fPIC
13+
14+
OBJDIR =$(call concat,./obj,$(NF),$(NM),$(NE),$(NI))
15+
DOBJDIR =$(call concat,./dobj,$(NF),$(NM),$(NE),$(NI))
16+
LIBS +=$(call concat,-lcvm,$(NE),$(NI))
17+
DLIBS +=$(call concat,-lcvm,$(NE),$(NI),_debug)
18+
SONAME =$(call concat,libdes_engl,$(NE),$(NI),.so)
19+
SODNAME =$(call concat,libdes_engl,$(NE),$(NI),_debug.so)
20+
DYNAME =$(call concat,libdes_engl,$(NE),$(NI),.dylib)
21+
DYDNAME =$(call concat,libdes_engl,$(NE),$(NI),_debug.dylib)
22+
23+
include $(INC_PATH)/libs.inc
24+
25+
ifdef IFORT
26+
include $(INC_PATH)/ifort.inc
27+
endif
28+
29+
# FCOMMON_FLAGS += -Wall
30+
ifdef PROF
31+
FCOMMON_FLAGS += -pg
32+
endif
33+
34+
SOFLAGS = $(FCOMMON_FLAGS) -O3 -DCVM_EXPORTS -fPIC
35+
SOFLAGSD = $(FCOMMON_FLAGS) -g -DCVM_EXPORTS -fPIC
36+
LFLAGS += $(COMMON_LD_FLAGS) -L$(OUTDIR) -shared
37+
LFLAGSD += $(COMMON_LD_FLAGS) -L$(OUTDIR) -shared
38+
39+
all : release debug
40+
ifdef MAC
41+
release: $(OUTDIR)/$(DYNAME)
42+
debug: $(OUTDIR)/$(DYDNAME)
43+
else
44+
release: $(OUTDIR)/$(SONAME)
45+
debug: $(OUTDIR)/$(SODNAME)
46+
endif
47+
48+
$(OUTDIR)/$(SONAME): $(OBJS)
49+
$(AT)if [ ! -d $(OUTDIR) ]; then mkdir $(OUTDIR); fi
50+
$(ECHO) Linking: $@
51+
$(AT)$(F77) $(LFLAGS) -Wl,-soname,$(SONAME) -o $@ $^ -Wl,--start-group $(LIBS) -Wl,--end-group
52+
53+
$(OUTDIR)/$(SODNAME): $(DOBJS)
54+
$(AT)if [ ! -d $(OUTDIR) ]; then mkdir $(OUTDIR); fi
55+
$(ECHO) Linking: $@
56+
$(AT)$(F77) $(LFLAGSD) -Wl,-soname,$(SODNAME) -o $@ $^ -Wl,--start-group $(DLIBS) -Wl,--end-group
57+
58+
$(OUTDIR)/$(DYNAME): $(OBJS)
59+
$(AT)if [ ! -d $(OUTDIR) ]; then mkdir $(OUTDIR); fi
60+
$(ECHO) Linking: $@
61+
$(AT)$(F77) $(LFLAGS) -Wl,-dylib -o $@ $^ $(LIBS)
62+
63+
$(OUTDIR)/$(DYDNAME): $(DOBJS)
64+
$(AT)if [ ! -d $(OUTDIR) ]; then mkdir $(OUTDIR); fi
65+
$(ECHO) Linking: $@
66+
$(AT)$(F77) $(LFLAGSD) -Wl,-dylib -o $@ $^ $(DLIBS)
67+
68+
$(OBJDIR)/%.o: %.f
69+
$(AT)if [ ! -d $(OBJDIR) ]; then mkdir $(OBJDIR); fi
70+
$(ECHO) Compiling release: $<
71+
$(AT)$(F77) $(SOFLAGS) -c -o $@ $<
72+
73+
$(DOBJDIR)/%.o: %.f
74+
$(AT)if [ ! -d $(DOBJDIR) ]; then mkdir $(DOBJDIR); fi
75+
$(ECHO) Compiling debug: $<
76+
$(AT)$(F77) $(SOFLAGSD) -c -o $@ $<
77+
78+
clean:
79+
$(ECHO) Cleaning...
80+
$(AT)rm -rf $(OBJDIR) $(DOBJDIR) $(OUTDIR)/$(SONAME) $(OUTDIR)/$(SODNAME)
81+

des/des_engl/sengl.f

+136
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,136 @@
1+
C England ODE numerical method step with precision control
2+
3+
C Copyright Sergei Nikolaev 1992-2013
4+
C Distributed under the Boost Software License, Version 1.0.
5+
C (See accompanying file LICENSE_1_0.txt or copy at
6+
C http://www.boost.org/LICENSE_1_0.txt)
7+
8+
C F - SUBROUTINE F(PC,M,T,X,Z) computes vector Z as Z(T,X)
9+
C M - [input] arrays' length, INTEGER
10+
C HMIN - [input] minimum step length allowed, REAL
11+
C HMAX - [input] maximum step length allowed, REAL
12+
C EPS - [input] precision per step, REAL
13+
C P - [input] absolute/relative precision per step threshold, REAL
14+
C X - [input,output] source/result array, REAL
15+
C T - [input,output] source/result time, REAL
16+
C H - [input,output] RECOMMENDED step (actual step taken can be different), REAL
17+
C R - [input,output] working array of 7*M REAL elements
18+
C IERR - [output] error code, zero for success, non-zero otherwise, INTEGER
19+
20+
SUBROUTINE SENGL (PC, F, M, HMIN, HMAX, EPS, P, X, T, H, R, IERR)
21+
CDEC$ IF DEFINED (FTN_EXPORTS)
22+
CDEC$ ATTRIBUTES DLLEXPORT :: SENGL
23+
CDEC$ ENDIF
24+
INTEGER PC, M, IERR
25+
DOUBLE PRECISION HMIN, HMAX, EPS, P, X, T, H, R
26+
DIMENSION X(M), R(*)
27+
EXTERNAL F
28+
29+
INTEGER ONE /1/, I, M2, M3, M4, M5, M6, M7, MM7, IDAMAX
30+
DOUBLE PRECISION C, CDS /32.D0/, THETA, AMPL, EPS1, ZERO /0.D0/
31+
LOGICAL BULD, BULHM, BULT
32+
DIMENSION C(21)
33+
34+
DATA C
35+
1 /0.5D0, 0.6666666666666666666667D0, 0.2D0, 0.25D0, 2.0D0,
36+
2 0.2592592592592592592593D0, 0.3703703703703703703704D0,
37+
3 0.0370370370370370370370D0, 0.0448D0, -0.2D0, 0.8736D0,
38+
4 0.0864D0, -0.6048D0, -0.125D0, -0.6666666666666666666667D0,
39+
5 -0.0625D0, 0.4821428571428571428571D0,
40+
6 0.3720238095238095238095D0, 0.0416666666666666666667D0,
41+
7 0.1041666666666666666667D0, -1.0D0/
42+
43+
IERR = 0
44+
EPS1 = EPS / CDS
45+
M2 = M + 1
46+
M3 = M2 + M
47+
M4 = M3 + M
48+
M5 = M4 + M
49+
M6 = M5 + M
50+
M7 = M6 + M
51+
MM7 = M * 7
52+
53+
BULT = .TRUE.
54+
BULHM = .FALSE.
55+
30 BULD = .TRUE.
56+
57+
DO 10 I = 1, MM7
58+
R(I) = ZERO
59+
10 CONTINUE
60+
61+
CALL F (PC, M, T, X, R(M6))
62+
CALL DAXPY (M, H, R(M6), ONE, R, ONE)
63+
CALL DCOPY (M, X, ONE, R(M7), ONE)
64+
CALL DAXPY (M, C(1), R, ONE, R(M7), ONE)
65+
CALL F (PC, M, T + H*C(1), R(M7), R(M6))
66+
CALL DAXPY (M, H, R(M6), ONE, R(M2), ONE)
67+
CALL DCOPY (M, X, ONE, R(M7), ONE)
68+
CALL DAXPY (M, C(4), R, ONE, R(M7), ONE)
69+
CALL DAXPY (M, C(4), R(M2), ONE, R(M7), ONE)
70+
CALL F (PC, M, T + H*C(1), R(M7), R(M6))
71+
CALL DAXPY (M, H, R(M6), ONE, R(M3), ONE)
72+
CALL DCOPY (M, X, ONE, R(M7), ONE)
73+
CALL DAXPY (M, C(21), R(M2), ONE, R(M7), ONE)
74+
CALL DAXPY (M, C(5), R(M3), ONE, R(M7), ONE)
75+
CALL F (PC, M, T + H, R(M7), R(M6))
76+
CALL DAXPY (M, H, R(M6), ONE, R(M4), ONE)
77+
CALL DCOPY (M, X, ONE, R(M7), ONE)
78+
CALL DAXPY (M, C(6), R, ONE, R(M7), ONE)
79+
CALL DAXPY (M, C(7), R(M2), ONE, R(M7), ONE)
80+
CALL DAXPY (M, C(8), R(M4), ONE, R(M7), ONE)
81+
CALL F (PC, M, T + H*C(2), R(M7), R(M6))
82+
CALL DAXPY (M, H, R(M6), ONE, R(M5), ONE)
83+
CALL DCOPY (M, X, ONE, R(M7), ONE)
84+
CALL DAXPY (M, C(9), R, ONE, R(M7), ONE)
85+
CALL DAXPY (M, C(10), R(M2), ONE, R(M7), ONE)
86+
CALL DAXPY (M, C(11), R(M3), ONE, R(M7), ONE)
87+
CALL DAXPY (M, C(12), R(M4), ONE, R(M7), ONE)
88+
CALL DAXPY (M, C(13), R(M5), ONE, R(M7), ONE)
89+
CALL F (PC, M, T + H*C(3), R(M7), R(M6))
90+
CALL DCOPY (M, R(M6), ONE, R(M2), ONE)
91+
CALL DSCAL (M, H, R(M2), ONE)
92+
93+
C theta...
94+
CALL DCOPY (M, R, ONE, R(M7), ONE)
95+
CALL DSCAL (M, C(14), R(M7), ONE)
96+
CALL DAXPY (M, C(15), R(M3), ONE, R(M7), ONE)
97+
CALL DAXPY (M, C(16), R(M4), ONE, R(M7), ONE)
98+
CALL DAXPY (M, C(17), R(M5), ONE, R(M7), ONE)
99+
CALL DAXPY (M, C(18), R(M2), ONE, R(M7), ONE)
100+
101+
C result...
102+
CALL DCOPY (M, X, ONE, R(M6), ONE)
103+
CALL DAXPY (M, C(19), R, ONE, R(M6), ONE)
104+
CALL DAXPY (M, C(20), R(M4), ONE, R(M6), ONE)
105+
CALL DAXPY (M, C(17), R(M5), ONE, R(M6), ONE)
106+
CALL DAXPY (M, C(18), R(M2), ONE, R(M6), ONE)
107+
108+
THETA = DABS (R (IDAMAX (M, R(M7), ONE) + M7 - ONE))
109+
AMPL = DABS (R (IDAMAX (M, R(M6), ONE) + M6 - ONE))
110+
IF (AMPL .GE. P) THETA = THETA / AMPL
111+
IF (THETA .GE. EPS) GO TO 160
112+
IF (BULT) GO TO 145
113+
BULD = .FALSE.
114+
GO TO 170
115+
145 IF (THETA .GT. EPS1) BULD = .FALSE.
116+
GO TO 170
117+
160 IF (BULHM) GO TO 200
118+
H = H * C(1)
119+
BULT = .FALSE.
120+
IF (DABS (H) .GT. DABS (HMIN)) GO TO 30
121+
H = DSIGN (HMIN, H)
122+
BULHM = .TRUE.
123+
GO TO 30
124+
170 T = T + H
125+
CALL DCOPY (M, R(M6), ONE, X, ONE)
126+
IF (BULD) THEN
127+
H = H * C(5)
128+
IF (DABS (H) .GT. DABS (HMAX)) THEN
129+
H = DSIGN (HMAX, H)
130+
END IF
131+
END IF
132+
GO TO 210
133+
200 IERR = 65
134+
210 CONTINUE
135+
RETURN
136+
END

des/des_lou/Makefile

+96
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
SHELL=/bin/sh
2+
3+
ROOT_PATH=../..
4+
INC_PATH=$(ROOT_PATH)/makes
5+
include $(INC_PATH)/defines.inc
6+
include $(INC_PATH)/suffixes.inc
7+
8+
SOURCES = $(wildcard *.f)
9+
OBJS = $(patsubst %.f, $(OBJDIR)/%.o, $(SOURCES))
10+
DOBJS = $(patsubst %.f, $(DOBJDIR)/%.o, $(SOURCES))
11+
12+
FCOMMON_FLAGS += -fPIC
13+
14+
OBJDIR =$(call concat,./obj,$(NF),$(NM),$(NE),$(NI))
15+
DOBJDIR =$(call concat,./dobj,$(NF),$(NM),$(NE),$(NI))
16+
LIBS +=$(call concat,-lcvm,$(NE),$(NI))
17+
DLIBS +=$(call concat,-lcvm,$(NE),$(NI),_debug)
18+
SONAME =$(call concat,libdes_lou,$(NE),$(NI),.so)
19+
SODNAME =$(call concat,libdes_lou,$(NE),$(NI),_debug.so)
20+
DYNAME =$(call concat,libdes_lou,$(NE),$(NI),.dylib)
21+
DYDNAME =$(call concat,libdes_lou,$(NE),$(NI),_debug.dylib)
22+
23+
# matrix exponent from CVM:
24+
MEXDIR=./mexp
25+
MEXLIB =$(call concat,libmexp,$(NC),$(NE),$(NI),.a)
26+
DMEXLIB =$(call concat,libmexp,$(NC),$(NE),$(NI),_debug.a)
27+
28+
29+
include $(INC_PATH)/libs.inc
30+
31+
ifdef IFORT
32+
include $(INC_PATH)/ifort.inc
33+
endif
34+
35+
# FCOMMON_FLAGS += -Wall
36+
ifdef PROF
37+
FCOMMON_FLAGS += -pg
38+
endif
39+
40+
SOFLAGS = $(FCOMMON_FLAGS) -O3 -DCVM_EXPORTS -fPIC
41+
SOFLAGSD = $(FCOMMON_FLAGS) -g -DCVM_EXPORTS -fPIC
42+
LFLAGS += $(COMMON_LD_FLAGS) -L$(OUTDIR) -shared
43+
LFLAGSD += $(COMMON_LD_FLAGS) -L$(OUTDIR) -shared
44+
45+
all : release debug
46+
ifdef MAC
47+
LIBS += -lstdc++
48+
DLIBS += -lstdc++
49+
release: $(OUTDIR)/$(DYNAME)
50+
debug: $(OUTDIR)/$(DYDNAME)
51+
else
52+
release: $(OUTDIR)/$(SONAME)
53+
debug: $(OUTDIR)/$(SODNAME)
54+
endif
55+
56+
$(OUTDIR)/$(MEXLIB):
57+
make release -C $(MEXDIR) $(MAKECMD)
58+
59+
$(OUTDIR)/$(DMEXLIB):
60+
make debug -C $(MEXDIR) $(MAKECMD)
61+
62+
$(OUTDIR)/$(SONAME): $(OBJS) $(OUTDIR)/$(MEXLIB)
63+
$(AT)if [ ! -d $(OUTDIR) ]; then mkdir $(OUTDIR); fi
64+
$(ECHO) Linking: $@
65+
$(AT)$(F77) $(LFLAGS) -Wl,-soname,$(SONAME) -o $@ $^ -Wl,--start-group $(LIBS) -Wl,--end-group
66+
67+
$(OUTDIR)/$(SODNAME): $(DOBJS) $(OUTDIR)/$(DMEXLIB)
68+
$(AT)if [ ! -d $(OUTDIR) ]; then mkdir $(OUTDIR); fi
69+
$(ECHO) Linking: $@
70+
$(AT)$(F77) $(LFLAGSD) -Wl,-soname,$(SODNAME) -o $@ $^ -Wl,--start-group $(DLIBS) -Wl,--end-group
71+
72+
$(OUTDIR)/$(DYNAME): $(OBJS) $(OUTDIR)/$(MEXLIB)
73+
$(AT)if [ ! -d $(OUTDIR) ]; then mkdir $(OUTDIR); fi
74+
$(ECHO) Linking: $@
75+
$(AT)$(F77) $(LFLAGS) -Wl,-dylib -o $@ $^ $(LIBS)
76+
77+
$(OUTDIR)/$(DYDNAME): $(DOBJS) $(OUTDIR)/$(DMEXLIB)
78+
$(AT)if [ ! -d $(OUTDIR) ]; then mkdir $(OUTDIR); fi
79+
$(ECHO) Linking: $@
80+
$(AT)$(F77) $(LFLAGSD) -Wl,-dylib -o $@ $^ $(DLIBS)
81+
82+
$(OBJDIR)/%.o: %.f
83+
$(AT)if [ ! -d $(OBJDIR) ]; then mkdir $(OBJDIR); fi
84+
$(ECHO) Compiling release: $<
85+
$(AT)$(F77) $(SOFLAGS) -c -o $@ $<
86+
87+
$(DOBJDIR)/%.o: %.f
88+
$(AT)if [ ! -d $(DOBJDIR) ]; then mkdir $(DOBJDIR); fi
89+
$(ECHO) Compiling debug: $<
90+
$(AT)$(F77) $(SOFLAGSD) -c -o $@ $<
91+
92+
clean:
93+
$(ECHO) Cleaning...
94+
$(AT)rm -rf $(OBJDIR) $(DOBJDIR) $(OUTDIR)/$(SONAME) $(OUTDIR)/$(SODNAME)
95+
make clean -C $(MEXDIR) $(MAKECMD)
96+

0 commit comments

Comments
 (0)