Skip to content

Commit b15c089

Browse files
committed
Document GPU macros and constants; remove generic use-statement comments
1 parent 17d142e commit b15c089

Some content is hidden

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

52 files changed

+216
-196
lines changed

src/common/include/parallel_macros.fpp

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
#:include 'omp_macros.fpp'
33
#:include 'acc_macros.fpp'
44

5+
! GPU parallel region (scalar reductions, maxval/minval)
56
#:def GPU_PARALLEL(code, private=None, default='present', firstprivate=None, reduction=None, reductionOp=None, &
67
& copy=None, copyin=None, copyinReadOnly=None, copyout=None, create=None, &
78
& no_create=None, present=None, deviceptr=None, attach=None, extraAccArgs=None, extraOmpArgs=None)
@@ -20,6 +21,7 @@
2021
#endif
2122
#:enddef
2223

24+
! GPU parallel loop over threads (most common GPU macro)
2325
#:def GPU_PARALLEL_LOOP(collapse=None, private=None, parallelism='[gang, vector]', &
2426
& default='present', firstprivate=None, reduction=None, reductionOp=None, &
2527
& copy=None, copyin=None, copyinReadOnly=None, copyout=None, create=None, &
@@ -39,6 +41,7 @@
3941
#endif
4042
#:enddef
4143

44+
! Required closing for GPU_PARALLEL_LOOP
4245
#:def END_GPU_PARALLEL_LOOP()
4346
#:set acc_end_directive = '!$acc end parallel loop'
4447
#:set omp_end_directive = END_OMP_PARALLEL_LOOP()
@@ -50,6 +53,7 @@
5053
#endif
5154
#:enddef
5255

56+
! Mark routine for device compilation
5357
#:def GPU_ROUTINE(function_name=None, parallelism=None, nohost=False, cray_inline=False, cray_noinline=False, extraAccArgs=None, &
5458
& extraOmpArgs=None)
5559
#:assert isinstance(cray_inline, bool)
@@ -106,6 +110,7 @@
106110
#:endif
107111
#:enddef
108112

113+
! Declare device-resident data
109114
#:def GPU_DECLARE(copy=None, copyin=None, copyinReadOnly=None, copyout=None, create=None, present=None, deviceptr=None, &
110115
& link=None, extraAccArgs=None, extraOmpArgs=None)
111116
#:set acc_code = ACC_DECLARE(copy=copy, copyin=copyin, copyinReadOnly=copyinReadOnly, copyout=copyout, create=create, &
@@ -123,6 +128,7 @@
123128
#endif
124129
#:enddef
125130

131+
! Inner loop within a GPU parallel region
126132
#:def GPU_LOOP(collapse=None, parallelism=None, data_dependency=None, reduction=None, reductionOp=None, private=None, &
127133
& extraAccArgs=None, extraOmpArgs=None)
128134
#:set acc_code = ACC_LOOP(collapse=collapse, parallelism=parallelism, data_dependency=data_dependency, reduction=reduction, &
@@ -137,6 +143,7 @@
137143
#endif
138144
#:enddef
139145

146+
! Scoped GPU data region
140147
#:def GPU_DATA(code, copy=None, copyin=None, copyinReadOnly=None, copyout=None, create=None, no_create=None, present=None, &
141148
& deviceptr=None, attach=None, default=None, extraAccArgs=None, extraOmpArgs=None)
142149
#:set acc_code = ACC_DATA(code=code, copy=copy, copyin=copyin, copyinReadOnly=copyinReadOnly, copyout=copyout, create=create, &
@@ -155,6 +162,7 @@
155162
#endif
156163
#:enddef
157164

165+
! Host code with device pointers (for MPI with GPU buffers)
158166
#:def GPU_HOST_DATA(code, use_device_addr=None, use_device_ptr=None, extraAccArgs=None, extraOmpArgs=None)
159167
#:if use_device_addr is not None and use_device_ptr is not None
160168
#:set use_device_addr_end_index = len(use_device_addr) - 1
@@ -183,6 +191,7 @@
183191
#endif
184192
#:enddef
185193

194+
! Allocate device memory (unscoped)
186195
#:def GPU_ENTER_DATA(copyin=None, copyinReadOnly=None, create=None, attach=None, extraAccArgs=None, extraOmpArgs=None)
187196
#:set acc_code = ACC_ENTER_DATA(copyin=copyin, copyinReadOnly=copyinReadOnly, create=create, attach=attach, &
188197
& extraAccArgs=extraAccArgs)
@@ -196,6 +205,7 @@
196205
#endif
197206
#:enddef
198207

208+
! Free device memory
199209
#:def GPU_EXIT_DATA(copyout=None, delete=None, detach=None, extraAccArgs=None, extraOmpArgs=None)
200210
#:set acc_code = ACC_EXIT_DATA(copyout=copyout, delete=delete, detach=detach, extraAccArgs=extraAccArgs)
201211
#:set omp_code = OMP_EXIT_DATA(copyout=copyout, delete=delete, detach=detach, extraOmpArgs=extraOmpArgs)
@@ -207,6 +217,7 @@
207217
#endif
208218
#:enddef
209219

220+
! Atomic operation on device
210221
#:def GPU_ATOMIC(atomic, extraAccArgs=None, extraOmpArgs=None)
211222
#:set acc_code = ACC_ATOMIC(atomic=atomic, extraAccArgs=extraAccArgs)
212223
#:set omp_code = OMP_ATOMIC(atomic=atomic, extraOmpArgs=extraOmpArgs)
@@ -218,6 +229,7 @@
218229
#endif
219230
#:enddef
220231

232+
! End atomic capture block
221233
#:def END_GPU_ATOMIC_CAPTURE()
222234
#:set acc_end_directive = '!$acc end atomic'
223235
#:set omp_end_directive = '!$omp end atomic'
@@ -228,6 +240,7 @@
228240
#endif
229241
#:enddef
230242

243+
! Copy data between host and device
231244
#:def GPU_UPDATE(host=None, device=None, extraAccArgs=None, extraOmpArgs=None)
232245
#:set acc_code = ACC_UPDATE(host=host, device=device, extraAccArgs=extraAccArgs)
233246
#:set omp_code = OMP_UPDATE(host=host, device=device, extraOmpArgs=extraOmpArgs)
@@ -239,6 +252,7 @@
239252
#endif
240253
#:enddef
241254

255+
! Synchronization barrier
242256
#:def GPU_WAIT(extraAccArgs=None, extraOmpArgs=None)
243257
#:set acc_code = ACC_WAIT(extraAccArgs=extraAccArgs)
244258
#:set omp_code = OMP_WAIT(extraOmpArgs=extraOmpArgs)
@@ -250,6 +264,7 @@
250264
#endif
251265
#:enddef
252266

267+
! Import GPU library module (openacc or omp_lib)
253268
#:def USE_GPU_MODULE()
254269
#if defined(MFC_OpenACC)
255270
use openacc
@@ -258,24 +273,28 @@
258273
#endif
259274
#:enddef
260275

276+
! Emit code only for AMD compiler
261277
#:def DEF_AMD(code)
262278
#:if MFC_COMPILER == AMD_COMPILER_ID
263279
$:code
264280
#:endif
265281
#:enddef
266282

283+
! Emit code for non-Cray compilers
267284
#:def UNDEF_CCE(code)
268285
#:if MFC_COMPILER != CCE_COMPILER_ID
269286
$:code
270287
#:endif
271288
#:enddef
272289

290+
! Emit code only for Cray compiler
273291
#:def DEF_CCE(code)
274292
#:if MFC_COMPILER == CCE_COMPILER_ID
275293
$:code
276294
#:endif
277295
#:enddef
278296

297+
! Emit code for non-NVIDIA compilers
279298
#:def UNDEF_NVIDIA(code)
280299
#:if MFC_COMPILER != NVIDIA_COMPILER_ID and MFC_COMPILER != PGI_COMPILER_ID
281300
$:code

src/common/m_boundary_common.fpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88

99
module m_boundary_common
1010

11-
use m_derived_types !< Definitions of the derived types
12-
use m_global_parameters !< Definitions of the global parameters
11+
use m_derived_types
12+
use m_global_parameters
1313
use m_mpi_proxy
1414
use m_constants
1515
use m_delay_file_access

src/common/m_checker_common.fpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@
88
!> @brief Shared input validation checks for grid dimensions and AMD GPU compiler limits
99
module m_checker_common
1010

11-
use m_global_parameters !< Definitions of the global parameters
12-
use m_mpi_proxy !< Message passing interface (MPI) module proxy
13-
use m_helper_basic !< Functions to compare floating point numbers
11+
use m_global_parameters
12+
use m_mpi_proxy
13+
use m_helper_basic
1414
use m_helper
1515

1616
implicit none

src/common/m_constants.fpp

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,11 @@ module m_constants
2323
integer, parameter :: fourier_rings = 5 !< Fourier filter ring limit
2424
integer, parameter :: num_fluids_max = 10 !< Maximum number of fluids in the simulation
2525
integer, parameter :: num_probes_max = 10 !< Maximum number of flow probes in the simulation
26-
integer, parameter :: num_patches_max = 1000
27-
integer, parameter :: num_bc_patches_max = 10
26+
integer, parameter :: num_patches_max = 1000 !< Maximum number of IC patches
27+
integer, parameter :: num_bc_patches_max = 10 !< Maximum number of boundary condition patches
2828
integer, parameter :: max_2d_fourier_modes = 10 !< Max Fourier mode index for 2D modal patch (geometry 13)
2929
integer, parameter :: max_sph_harm_degree = 5 !< Max degree L for 3D spherical harmonic patch (geometry 14)
30-
integer, parameter :: pathlen_max = 400
30+
integer, parameter :: pathlen_max = 400 !< Maximum path length for STL/OBJ model files
3131
integer, parameter :: nnode = 4 !< Number of QBMM nodes
3232
integer, parameter :: dflt_num_igr_iters = 2 !< number of iterations for IGR elliptic solve
3333
integer, parameter :: dflt_num_igr_warm_start_iters = 50 !< default number of iterations for IGR elliptic solve
@@ -68,24 +68,25 @@ module m_constants
6868
integer, parameter :: dflt_adap_dt_max_iters = 100 !< Default max iteration for adaptive step size
6969
! Constants of the algorithm described by Heirer, E. Hairer, S. P.Norsett, G. Wanner, Solving Ordinary Differential Equations I,
7070
! Chapter II.4 to choose the initial time step size for the adaptive time stepping routine
71-
real(wp), parameter :: threshold_first_guess = 1.e-5_wp
72-
real(wp), parameter :: threshold_second_guess = 1.e-15_wp
73-
real(wp), parameter :: scale_first_guess = 1.e-3_wp
74-
real(wp), parameter :: scale_guess = 1.e-2_wp
75-
real(wp), parameter :: small_guess = 1.e-6_wp
71+
real(wp), parameter :: threshold_first_guess = 1.e-5_wp !< Threshold for initial step size estimate
72+
real(wp), parameter :: threshold_second_guess = 1.e-15_wp !< Threshold for refined step size estimate
73+
real(wp), parameter :: scale_first_guess = 1.e-3_wp !< Scale factor for initial step size
74+
real(wp), parameter :: scale_guess = 1.e-2_wp !< Scale factor for step size adjustment
75+
real(wp), parameter :: small_guess = 1.e-6_wp !< Minimum initial step size
7676

7777
! Relativity
78+
!> Max Newton-Raphson iterations for relativistic primitive recovery
7879
integer, parameter :: relativity_cons_to_prim_max_iter = 100
7980

80-
! Pseudo-random number generator
81-
integer, parameter :: modulus = 2**30 - 1
82-
integer, parameter :: multiplier = 1664525
83-
integer, parameter :: increment = 1013904223
84-
integer, parameter :: amplifier = 3**13
85-
real(wp), parameter :: decimal_trim = 1.e5_wp
81+
! Linear congruential pseudo-random number generator parameters
82+
integer, parameter :: modulus = 2**30 - 1 !< PRNG modulus
83+
integer, parameter :: multiplier = 1664525 !< PRNG multiplier
84+
integer, parameter :: increment = 1013904223 !< PRNG increment
85+
integer, parameter :: amplifier = 3**13 !< PRNG amplifier for mixing
86+
real(wp), parameter :: decimal_trim = 1.e5_wp !< PRNG decimal truncation factor
8687

8788
! System constants
88-
integer, parameter :: CASE_FILE_ERROR_CODE = 22
89+
integer, parameter :: CASE_FILE_ERROR_CODE = 22 !< Exit code for case file validation errors
8990

9091
! Boundary condition enumeration Abbreviations CHAR - Characteristic NR - Non-reflecting SUB - subsonic SUP - supersonic FF -
9192
! Force-free CP - Constant pressure

src/common/m_derived_types.fpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
!> @brief Shared derived types for field data, patch geometry, bubble dynamics, and MPI I/O structures
88
module m_derived_types
99

10-
use m_constants !< Constants
10+
use m_constants
1111
use m_precision_select
1212
use m_thermochem, only: num_species
1313

src/common/m_helper.fpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@
88
!> @brief Utility routines for bubble model setup, coordinate transforms, array sampling, and special functions
99
module m_helper
1010

11-
use m_derived_types !< Definitions of the derived types
12-
use m_global_parameters !< Definitions of the global parameters
13-
use ieee_arithmetic !< For checking NaN
11+
use m_derived_types
12+
use m_global_parameters
13+
use ieee_arithmetic !< For checking NaN
1414
implicit none
1515

1616
private;

src/common/m_helper_basic.fpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
!> @brief Basic floating-point utilities: approximate equality, default detection, and coordinate bounds
88
module m_helper_basic
99

10-
use m_derived_types !< Definitions of the derived types
10+
use m_derived_types
1111
implicit none
1212

1313
private;

src/common/m_mpi_common.fpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ module m_mpi_common
1212
use mpi !< Message passing interface (MPI) module
1313
#endif
1414

15-
use m_derived_types !< Definitions of the derived types
16-
use m_global_parameters !< Definitions of the global parameters
15+
use m_derived_types
16+
use m_global_parameters
1717
use m_helper
1818
use ieee_arithmetic
1919
use m_nvtx

src/common/m_phase_change.fpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,12 @@
99
module m_phase_change
1010

1111
#ifndef MFC_POST_PROCESS
12-
use m_derived_types !< Definitions of the derived types
13-
use m_global_parameters !< Definitions of the global parameters
14-
use m_mpi_proxy !< Message passing interface (MPI) module proxy
15-
use m_variables_conversion !< State variables type conversion procedures
12+
use m_derived_types
13+
use m_global_parameters
14+
use m_mpi_proxy
15+
use m_variables_conversion
1616
use ieee_arithmetic
17-
use m_helper_basic !< Functions to compare floating point numbers
17+
use m_helper_basic
1818
implicit none
1919

2020
private;

src/common/m_variables_conversion.fpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@
88
!> @brief Conservative-to-primitive variable conversion, mixture property evaluation, and pressure computation
99
module m_variables_conversion
1010

11-
use m_derived_types !< Definitions of the derived types
12-
use m_global_parameters !< Definitions of the global parameters
13-
use m_mpi_proxy !< Message passing interface (MPI) module proxy
14-
use m_helper_basic !< Functions to compare floating point numbers
11+
use m_derived_types
12+
use m_global_parameters
13+
use m_mpi_proxy
14+
use m_helper_basic
1515
use m_helper
1616
use m_thermochem, only: num_species, get_temperature, get_pressure, gas_constant, get_mixture_molecular_weight, &
1717
& get_mixture_energy_mass

0 commit comments

Comments
 (0)