Skip to content

Commit 854e682

Browse files
Buxfix in isize
1 parent 25b21ce commit 854e682

File tree

225 files changed

+2788
-2739
lines changed

Some content is hidden

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

225 files changed

+2788
-2739
lines changed

BLAS/Makefile

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,9 +63,12 @@ else
6363
BLAS_LIB ?= -lrefblas
6464
endif
6565

66-
# Optional: DIFFSIZES_access.o when using F77 ISIZE globals (run_tapenade_blas.py writes DIFFSIZES_access.f)
66+
# Optional: DIFFSIZES_access when using ISIZE globals (.f or .f90+wrappers when many vars)
67+
# Prefer .f90 when present (may have more vars than stale .f)
6768
# Must be defined before any rule that uses it as a prerequisite, so "make forward" (etc.) builds it first.
68-
ifneq ($(wildcard $(SRC_DIR)/DIFFSIZES_access.f),)
69+
ifneq ($(wildcard $(SRC_DIR)/DIFFSIZES_access.f90),)
70+
DIFFSIZES_ACCESS_OBJ := $(BUILD_DIR)/DIFFSIZES_access.o $(BUILD_DIR)/DIFFSIZES_access_wrappers.o
71+
else ifneq ($(wildcard $(SRC_DIR)/DIFFSIZES_access.f),)
6972
DIFFSIZES_ACCESS_OBJ := $(BUILD_DIR)/DIFFSIZES_access.o
7073
else
7174
DIFFSIZES_ACCESS_OBJ :=
@@ -165,10 +168,19 @@ $(BUILD_DIR)/%_dep1.o: $(SRC_DIR)/%_dep1.f
165168
$(BUILD_DIR)/%_dep2.o: $(SRC_DIR)/%_dep2.f
166169
$(FC) $(FFLAGS_F77) -c $< -o $@
167170

168-
# DIFFSIZES_access.f - global ISIZE storage and get/set/check (for _b, _bv when using F77 DIFFSIZES.inc)
171+
# DIFFSIZES_access - F77 .f or F90 .f90 (generator picks based on COMMON line length)
172+
# When .f90 exists: compile to produce .o and .mod; wrappers need .mod (depend on it explicitly)
173+
$(BUILD_DIR)/diffsizes_access.mod: $(SRC_DIR)/DIFFSIZES_access.f90
174+
$(FC) $(FFLAGS) -J$(BUILD_DIR) -c $< -o $(BUILD_DIR)/DIFFSIZES_access.o
175+
169176
$(BUILD_DIR)/DIFFSIZES_access.o: $(SRC_DIR)/DIFFSIZES_access.f
170177
$(FC) $(FFLAGS_F77) -c $< -o $@
171178

179+
# DIFFSIZES_access_wrappers.f - external symbols for F90 module (set_*, get_*, check_*)
180+
# Depend on .mod so we always build from .f90 when using F90 path (avoids stale .o from .f)
181+
$(BUILD_DIR)/DIFFSIZES_access_wrappers.o: $(SRC_DIR)/DIFFSIZES_access_wrappers.f $(BUILD_DIR)/diffsizes_access.mod
182+
$(FC) $(FFLAGS) -J$(BUILD_DIR) -c $(SRC_DIR)/DIFFSIZES_access_wrappers.f -o $@
183+
172184
# DIFFSIZES handling (supports both Fortran 90 module and Fortran 77 include)
173185
# For F90: DIFFSIZES.f90 is compiled to produce DIFFSIZES.o and DIFFSIZES.mod
174186
# For F77: DIFFSIZES.inc is included inline - no object file needed

BLAS/include/DIFFSIZES.f90

Lines changed: 1 addition & 130 deletions
Original file line numberDiff line numberDiff line change
@@ -2,121 +2,8 @@ MODULE DIFFSIZES
22
IMPLICIT NONE
33
INTEGER, PARAMETER :: nbdirsmax = 4
44
! ISIZE* are module variables (set via set_ISIZE*(), read via get_ISIZE*() or use directly after check)
5-
INTEGER, SAVE :: isize1ofap = -1, isize1ofcx = -1, isize1ofcy = -1, isize1ofdx = -1, isize1ofdy = -1, isize1ofsx = -1, &
6-
& isize1ofsy = -1, isize1ofx = -1, isize1ofy = -1, isize2ofa = -1, isize2ofb = -1
5+
INTEGER, SAVE :: isize1ofx = -1, isize1ofy = -1, isize2ofa = -1
76
CONTAINS
8-
SUBROUTINE set_ISIZE1OFAp(val)
9-
INTEGER, INTENT(IN) :: val
10-
isize1ofap = val
11-
END SUBROUTINE set_ISIZE1OFAp
12-
13-
INTEGER FUNCTION get_ISIZE1OFAp()
14-
get_ISIZE1OFAp = isize1ofap
15-
END FUNCTION get_ISIZE1OFAp
16-
17-
SUBROUTINE check_ISIZE1OFAp_initialized()
18-
IF (isize1ofap < 0) THEN
19-
WRITE(*,'(A)') 'Error: isize1ofap not set. Call set_ISIZE1OFAp before differentiated routine.'
20-
STOP 1
21-
END IF
22-
END SUBROUTINE check_ISIZE1OFAp_initialized
23-
24-
SUBROUTINE set_ISIZE1OFCx(val)
25-
INTEGER, INTENT(IN) :: val
26-
isize1ofcx = val
27-
END SUBROUTINE set_ISIZE1OFCx
28-
29-
INTEGER FUNCTION get_ISIZE1OFCx()
30-
get_ISIZE1OFCx = isize1ofcx
31-
END FUNCTION get_ISIZE1OFCx
32-
33-
SUBROUTINE check_ISIZE1OFCx_initialized()
34-
IF (isize1ofcx < 0) THEN
35-
WRITE(*,'(A)') 'Error: isize1ofcx not set. Call set_ISIZE1OFCx before differentiated routine.'
36-
STOP 1
37-
END IF
38-
END SUBROUTINE check_ISIZE1OFCx_initialized
39-
40-
SUBROUTINE set_ISIZE1OFCy(val)
41-
INTEGER, INTENT(IN) :: val
42-
isize1ofcy = val
43-
END SUBROUTINE set_ISIZE1OFCy
44-
45-
INTEGER FUNCTION get_ISIZE1OFCy()
46-
get_ISIZE1OFCy = isize1ofcy
47-
END FUNCTION get_ISIZE1OFCy
48-
49-
SUBROUTINE check_ISIZE1OFCy_initialized()
50-
IF (isize1ofcy < 0) THEN
51-
WRITE(*,'(A)') 'Error: isize1ofcy not set. Call set_ISIZE1OFCy before differentiated routine.'
52-
STOP 1
53-
END IF
54-
END SUBROUTINE check_ISIZE1OFCy_initialized
55-
56-
SUBROUTINE set_ISIZE1OFDx(val)
57-
INTEGER, INTENT(IN) :: val
58-
isize1ofdx = val
59-
END SUBROUTINE set_ISIZE1OFDx
60-
61-
INTEGER FUNCTION get_ISIZE1OFDx()
62-
get_ISIZE1OFDx = isize1ofdx
63-
END FUNCTION get_ISIZE1OFDx
64-
65-
SUBROUTINE check_ISIZE1OFDx_initialized()
66-
IF (isize1ofdx < 0) THEN
67-
WRITE(*,'(A)') 'Error: isize1ofdx not set. Call set_ISIZE1OFDx before differentiated routine.'
68-
STOP 1
69-
END IF
70-
END SUBROUTINE check_ISIZE1OFDx_initialized
71-
72-
SUBROUTINE set_ISIZE1OFDy(val)
73-
INTEGER, INTENT(IN) :: val
74-
isize1ofdy = val
75-
END SUBROUTINE set_ISIZE1OFDy
76-
77-
INTEGER FUNCTION get_ISIZE1OFDy()
78-
get_ISIZE1OFDy = isize1ofdy
79-
END FUNCTION get_ISIZE1OFDy
80-
81-
SUBROUTINE check_ISIZE1OFDy_initialized()
82-
IF (isize1ofdy < 0) THEN
83-
WRITE(*,'(A)') 'Error: isize1ofdy not set. Call set_ISIZE1OFDy before differentiated routine.'
84-
STOP 1
85-
END IF
86-
END SUBROUTINE check_ISIZE1OFDy_initialized
87-
88-
SUBROUTINE set_ISIZE1OFSx(val)
89-
INTEGER, INTENT(IN) :: val
90-
isize1ofsx = val
91-
END SUBROUTINE set_ISIZE1OFSx
92-
93-
INTEGER FUNCTION get_ISIZE1OFSx()
94-
get_ISIZE1OFSx = isize1ofsx
95-
END FUNCTION get_ISIZE1OFSx
96-
97-
SUBROUTINE check_ISIZE1OFSx_initialized()
98-
IF (isize1ofsx < 0) THEN
99-
WRITE(*,'(A)') 'Error: isize1ofsx not set. Call set_ISIZE1OFSx before differentiated routine.'
100-
STOP 1
101-
END IF
102-
END SUBROUTINE check_ISIZE1OFSx_initialized
103-
104-
SUBROUTINE set_ISIZE1OFSy(val)
105-
INTEGER, INTENT(IN) :: val
106-
isize1ofsy = val
107-
END SUBROUTINE set_ISIZE1OFSy
108-
109-
INTEGER FUNCTION get_ISIZE1OFSy()
110-
get_ISIZE1OFSy = isize1ofsy
111-
END FUNCTION get_ISIZE1OFSy
112-
113-
SUBROUTINE check_ISIZE1OFSy_initialized()
114-
IF (isize1ofsy < 0) THEN
115-
WRITE(*,'(A)') 'Error: isize1ofsy not set. Call set_ISIZE1OFSy before differentiated routine.'
116-
STOP 1
117-
END IF
118-
END SUBROUTINE check_ISIZE1OFSy_initialized
119-
1207
SUBROUTINE set_ISIZE1OFX(val)
1218
INTEGER, INTENT(IN) :: val
1229
isize1ofx = val
@@ -165,20 +52,4 @@ SUBROUTINE check_ISIZE2OFA_initialized()
16552
END IF
16653
END SUBROUTINE check_ISIZE2OFA_initialized
16754

168-
SUBROUTINE set_ISIZE2OFB(val)
169-
INTEGER, INTENT(IN) :: val
170-
isize2ofb = val
171-
END SUBROUTINE set_ISIZE2OFB
172-
173-
INTEGER FUNCTION get_ISIZE2OFB()
174-
get_ISIZE2OFB = isize2ofb
175-
END FUNCTION get_ISIZE2OFB
176-
177-
SUBROUTINE check_ISIZE2OFB_initialized()
178-
IF (isize2ofb < 0) THEN
179-
WRITE(*,'(A)') 'Error: isize2ofb not set. Call set_ISIZE2OFB before differentiated routine.'
180-
STOP 1
181-
END IF
182-
END SUBROUTINE check_ISIZE2OFB_initialized
183-
18455
END MODULE DIFFSIZES

BLAS/meson.build

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,7 @@
22
# Auto-generated - only includes files that exist in src/
33
# Total: 406 files (101 per mode x 4 modes)
44

5-
libdiffblas_src += files('include/DIFFSIZES.f90')
6-
libdiffblas_src += files('src/DIFFSIZES_access.f')
5+
libdiffblas_src += files('include/DIFFSIZES.f90', 'src/DIFFSIZES_access.f')
76

87
# Forward mode (_d) sources - 101 files
98
libdiffblas_src += files(

0 commit comments

Comments
 (0)