Skip to content

Commit 270bf4b

Browse files
committed
feat: Use an integer parameter for transpose direction.
1 parent 72d59ea commit 270bf4b

File tree

3 files changed

+26
-23
lines changed

3 files changed

+26
-23
lines changed

src/common.f90

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ module m_common
44
integer, parameter :: dp=kind(0.0d0)
55
real(dp), parameter :: pi = 4*atan(1.0_dp)
66

7+
integer, parameter :: TRP_X2Y = 12, TRP_X2Z = 13, TRP_Y2X = 21, &
8+
TRP_Y2Z = 23, TRP_Z2Y = 32
9+
710
type :: globs_t
811
integer :: nx, ny, nz
912
integer :: nx_loc, ny_loc, nz_loc

src/cuda/backend.f90

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ module m_cuda_backend
33

44
use m_allocator, only: allocator_t, field_t
55
use m_base_backend, only: base_backend_t
6-
use m_common, only: dp, globs_t
6+
use m_common, only: dp, globs_t, TRP_X2Y, TRP_X2Z, TRP_Y2X, TRP_Y2Z, TRP_Z2Y
77
use m_tdsops, only: dirps_t, tdsops_t
88

99
use m_cuda_allocator, only: cuda_allocator_t, cuda_field_t
@@ -432,24 +432,24 @@ subroutine trans_d2d_cuda(self, u_o, u_i, direction)
432432
select type(u_i); type is (cuda_field_t); u_i_d => u_i%data_d; end select
433433

434434
select case (direction)
435-
case (12) ! x2y
435+
case (TRP_X2Y) ! x2y
436436
blocks = dim3(self%nx_loc/SZ, self%nz_loc, self%ny_loc/SZ)
437437
threads = dim3(SZ, SZ, 1)
438438
call trans_x2y_k<<<blocks, threads>>>(u_o_d, u_i_d, self%nz_loc)
439-
case (13) ! x2z
439+
case (TRP_X2Z) ! x2z
440440
blocks = dim3(self%nx_loc, self%ny_loc/SZ, 1)
441441
threads = dim3(SZ, 1, 1)
442442
call trans_x2z_k<<<blocks, threads>>>(u_o_d, u_i_d, self%nz_loc)
443-
case (21) ! y2x
443+
case (TRP_Y2X) ! y2x
444444
blocks = dim3(self%nx_loc/SZ, self%ny_loc/SZ, self%nz_loc)
445445
threads = dim3(SZ, SZ, 1)
446446
call trans_y2x_k<<<blocks, threads>>>(u_o_d, u_i_d, self%nz_loc)
447-
case (23) ! y2z
447+
case (TRP_Y2Z) ! y2z
448448
blocks = dim3(self%nx_loc/SZ, self%ny_loc/SZ, self%nz_loc)
449449
threads = dim3(SZ, SZ, 1)
450450
call trans_y2z_k<<<blocks, threads>>>(u_o_d, u_i_d, &
451451
self%nx_loc, self%nz_loc)
452-
case (32) ! z2y
452+
case (TRP_Z2Y) ! z2y
453453
blocks = dim3(self%nx_loc/SZ, self%ny_loc/SZ, self%nz_loc)
454454
threads = dim3(SZ, SZ, 1)
455455

src/solver.f90

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
module m_solver
22
use m_allocator, only: allocator_t, field_t
33
use m_base_backend, only: base_backend_t
4-
use m_common, only: dp, globs_t
4+
use m_common, only: dp, globs_t, TRP_X2Y, TRP_X2Z, TRP_Y2X, TRP_Y2Z, TRP_Z2Y
55
use m_tdsops, only: tdsops_t, dirps_t
66
use m_time_integrator, only: time_intg_t
77

@@ -185,9 +185,9 @@ subroutine transeq(self, du, dv, dw, u, v, w)
185185
dw_y => self%backend%allocator%get_block()
186186

187187
! reorder data from x orientation to y orientation
188-
call self%backend%trans_d2d(u_y, u, 12)
189-
call self%backend%trans_d2d(v_y, v, 12)
190-
call self%backend%trans_d2d(w_y, w, 12)
188+
call self%backend%trans_d2d(u_y, u, TRP_X2Y)
189+
call self%backend%trans_d2d(v_y, v, TRP_X2Y)
190+
call self%backend%trans_d2d(w_y, w, TRP_X2Y)
191191

192192
! similar to the x direction, obtain derivatives in y.
193193
call self%backend%transeq_y(du_y, dv_y, dw_y, u_y, v_y, w_y, self%ydirps)
@@ -209,9 +209,9 @@ subroutine transeq(self, du, dv, dw, u, v, w)
209209
dw_z => self%backend%allocator%get_block()
210210

211211
! reorder from x to z
212-
call self%backend%trans_d2d(u_z, u, 13)
213-
call self%backend%trans_d2d(v_z, v, 13)
214-
call self%backend%trans_d2d(w_z, w, 13)
212+
call self%backend%trans_d2d(u_z, u, TRP_X2Z)
213+
call self%backend%trans_d2d(v_z, v, TRP_X2Z)
214+
call self%backend%trans_d2d(w_z, w, TRP_X2Z)
215215

216216
! get the derivatives in z
217217
call self%backend%transeq_z(du_z, dv_z, dw_z, u_z, v_z, w_z, self%zdirps)
@@ -267,9 +267,9 @@ subroutine divergence(self, div_u, u, v, w)
267267
w_y => self%backend%allocator%get_block()
268268

269269
! reorder data from x orientation to y orientation
270-
call self%backend%trans_d2d(u_y, du_x, 12)
271-
call self%backend%trans_d2d(v_y, dv_x, 12)
272-
call self%backend%trans_d2d(w_y, dw_x, 12)
270+
call self%backend%trans_d2d(u_y, du_x, TRP_X2Y)
271+
call self%backend%trans_d2d(v_y, dv_x, TRP_X2Y)
272+
call self%backend%trans_d2d(w_y, dw_x, TRP_X2Y)
273273

274274
call self%backend%allocator%release_block(du_x)
275275
call self%backend%allocator%release_block(dv_x)
@@ -303,8 +303,8 @@ subroutine divergence(self, div_u, u, v, w)
303303
call self%backend%vecadd(1._dp, dw_y, 1._dp, dv_y)
304304

305305
! reorder from y to z
306-
call self%backend%trans_d2d(u_z, du_y, 23)
307-
call self%backend%trans_d2d(w_z, dw_y, 23)
306+
call self%backend%trans_d2d(u_z, du_y, TRP_Y2Z)
307+
call self%backend%trans_d2d(w_z, dw_y, TRP_Y2Z)
308308

309309
! release all the unnecessary blocks.
310310
call self%backend%allocator%release_block(du_y)
@@ -358,8 +358,8 @@ subroutine gradient(self, dpdx, dpdy, dpdz, pressure)
358358
dpdz_sxy_y => self%backend%allocator%get_block()
359359

360360
! reorder data from z orientation to y orientation
361-
call self%backend%trans_d2d(p_sxy_y, p_sxy_z, 32)
362-
call self%backend%trans_d2d(dpdz_sxy_y, dpdz_sxy_z, 32)
361+
call self%backend%trans_d2d(p_sxy_y, p_sxy_z, TRP_Z2Y)
362+
call self%backend%trans_d2d(dpdz_sxy_y, dpdz_sxy_z, TRP_Z2Y)
363363

364364
call self%backend%allocator%release_block(p_sxy_z)
365365
call self%backend%allocator%release_block(dpdz_sxy_z)
@@ -386,9 +386,9 @@ subroutine gradient(self, dpdx, dpdy, dpdz, pressure)
386386
dpdz_sx_x => self%backend%allocator%get_block()
387387

388388
! reorder from y to x
389-
call self%backend%trans_d2d(p_sx_x, p_sx_y, 21)
390-
call self%backend%trans_d2d(dpdy_sx_x, dpdy_sx_y, 21)
391-
call self%backend%trans_d2d(dpdz_sx_x, dpdz_sx_y, 21)
389+
call self%backend%trans_d2d(p_sx_x, p_sx_y, TRP_Y2X)
390+
call self%backend%trans_d2d(dpdy_sx_x, dpdy_sx_y, TRP_Y2X)
391+
call self%backend%trans_d2d(dpdz_sx_x, dpdz_sx_y, TRP_Y2X)
392392

393393
! release all the y directional fields.
394394
call self%backend%allocator%release_block(p_sx_y)

0 commit comments

Comments
 (0)