Skip to content

Commit 5220ef1

Browse files
bonacheaktras
andcommitted
Respond to PR feedback: Rename some identifiers for clarity
Also add some explanatory comments Co-authored-by: Katherine Rasmussen <[email protected]>
1 parent 6f2106f commit 5220ef1

File tree

1 file changed

+21
-17
lines changed

1 file changed

+21
-17
lines changed

src/caffeine/atomic_s.F90

Lines changed: 21 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@
1010
implicit none
1111

1212
! placeholder variables that simplify the macro logic below
13-
integer(PRIF_ATOMIC_INT_KIND) :: dummyti
14-
logical(PRIF_ATOMIC_LOGICAL_KIND) :: dummytl
15-
integer(PRIF_ATOMIC_INT_KIND), parameter :: dummyvi = 0
16-
logical(PRIF_ATOMIC_LOGICAL_KIND), parameter :: dummyvl = .false.
13+
integer(PRIF_ATOMIC_INT_KIND) :: out_placeholder_int
14+
logical(PRIF_ATOMIC_LOGICAL_KIND) :: out_placeholder_logical
15+
integer(PRIF_ATOMIC_INT_KIND), parameter :: in_placeholder_int = 0
16+
logical(PRIF_ATOMIC_LOGICAL_KIND), parameter :: in_placeholder_logical = .false.
1717
contains
1818

1919
#define ATOMIC_OP(OPNAME, OPCODE, caf_op) \
@@ -22,10 +22,10 @@
2222
call_assert(offset >= 0); \
2323
call base_pointer(coarray_handle, image_num, remote_base); \
2424
call CAF_CONCAT3(prif_atomic_,OPNAME,_indirect) \
25-
( image_num, remote_base + offset, OPPASSI, stat ); \
25+
( image_num, remote_base + offset, OPPASSF, stat ); \
2626
end procedure ; \
2727
module procedure CAF_CONCAT3(prif_atomic_,OPNAME,_indirect) ; \
28-
call_assert(c_sizeof(dummyti) == 8); call_assert(c_sizeof(dummytl) == 8); \
28+
call_assert(c_sizeof(out_placeholder_int) == 8); call_assert(c_sizeof(out_placeholder_logical) == 8); \
2929
call_assert_describe(image_num > 0 .and. image_num <= initial_team%num_images, "image_num not within valid range"); \
3030
call caf_op(CAF_CONCAT2(CAF_OP_,OPCODE), image_num, atom_remote_ptr, OPPASSC); \
3131
if (present(stat)) stat = 0; \
@@ -35,37 +35,41 @@
3535
#define ATOMIC_INT_OP(OPNAME,_,OPCODE) ATOMIC_OP(OPNAME,OPCODE,caf_atomic_int)
3636
#define ATOMIC_LOG_OP(OPNAME,_,OPCODE) ATOMIC_OP(OPNAME,OPCODE,caf_atomic_logical)
3737

38-
#undef OPPASSI
39-
#define OPPASSI value
38+
! OPPASSF defines the dummy argument pass-thru in Fortran,
39+
! from the direct module procedure to the indirect variant
40+
#undef OPPASSF
41+
#define OPPASSF value
42+
! OPPASSC defines the dummy argument pass-thru to C,
43+
! from the indirect module procedure to the BIND(C) call
4044
#undef OPPASSC
41-
#define OPPASSC value, dummyvi, dummyvi
45+
#define OPPASSC value, in_placeholder_int, in_placeholder_int
4246
ATOMIC_INT_OP(ref_int, ,GET)
4347
#undef OPPASSC
44-
#define OPPASSC value, dummyvl, dummyvl
48+
#define OPPASSC value, in_placeholder_logical, in_placeholder_logical
4549
ATOMIC_LOG_OP(ref_logical, ,GET)
4650
#undef OPPASSC
47-
#define OPPASSC dummytl, value, dummyvl
51+
#define OPPASSC out_placeholder_logical, value, in_placeholder_logical
4852
ATOMIC_LOG_OP(define_logical, ,SET)
4953
#undef OPPASSC
50-
#define OPPASSC dummyti, value, dummyvi
54+
#define OPPASSC out_placeholder_int, value, in_placeholder_int
5155
ATOMIC_INT_OP(define_int, ,SET)
5256

5357
ATOMIC_INT_OP(add, ,ADD)
5458
ATOMIC_INT_OP(and, ,AND)
5559
ATOMIC_INT_OP(or, ,OR)
5660
ATOMIC_INT_OP(xor, ,XOR)
5761

58-
#undef OPPASSI
59-
#define OPPASSI value, old
62+
#undef OPPASSF
63+
#define OPPASSF value, old
6064
#undef OPPASSC
61-
#define OPPASSC old, value, dummyvi
65+
#define OPPASSC old, value, in_placeholder_int
6266
ATOMIC_INT_OP(fetch_add, ,FADD)
6367
ATOMIC_INT_OP(fetch_and, ,FAND)
6468
ATOMIC_INT_OP(fetch_or, ,FOR)
6569
ATOMIC_INT_OP(fetch_xor, ,FXOR)
6670

67-
#undef OPPASSI
68-
#define OPPASSI old, compare, new
71+
#undef OPPASSF
72+
#define OPPASSF old, compare, new
6973
#undef OPPASSC
7074
#define OPPASSC old, compare, new
7175
ATOMIC_INT_OP(cas_int, ,FCAS)

0 commit comments

Comments
 (0)