Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add modular precision update #632

Merged
merged 85 commits into from
Dec 16, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
85 commits
Select commit Hold shift + click to select a range
bc6fec9
Replace kind(0d0) with wp declared in common
arciyer123 Sep 19, 2024
922d543
Replace instances of 0d0 and d0 with wp
arciyer123 Sep 20, 2024
5ea9a80
Replace MPI_DOUBLE_PRECISION with constant declared in common, fix bu…
arciyer123 Sep 20, 2024
ad50852
Incorporate patch file changes only, improve m_precision_select
arciyer123 Sep 22, 2024
a25acd2
implement fixes and expand to cover more cases of double precision
arciyer123 Sep 23, 2024
867a17f
Update m_precision_select.f90
aricer123 Sep 23, 2024
6707790
attempt fix for double precision with mpi support
arciyer123 Sep 24, 2024
d9f6d03
Merge branch 'master' into add-modular-precision-update
aricer123 Sep 24, 2024
1b3274b
Update syscheck.fpp
aricer123 Sep 25, 2024
613ea22
check single precision to see if working with MPI
arciyer123 Sep 30, 2024
045f582
Test to see if benchmark build working on gpu/attempt to fix error wi…
Oct 3, 2024
c6752c5
test single precision on gpus, add flags to choose between single and…
Oct 4, 2024
70569ca
Merge branch 'master' into add-modular-precision-update
sbryngelson Oct 4, 2024
c5556e6
single precision gpu test fix
Oct 4, 2024
a07b36a
add flags and distinguish between double and single precision at buil…
Oct 6, 2024
e63d80e
fix formatting
Oct 6, 2024
8dce1e1
test single precision on test suite again due to NaN issue not ready…
Oct 17, 2024
2b7e316
Most recent
Oct 17, 2024
cec8e61
fix bug in eigen solver module
Oct 17, 2024
b4505c9
update eigen_solvers
Oct 17, 2024
a5ebe3e
handle cases with NaNs after finding source of error
Oct 23, 2024
0493443
fix NaN issue without skipping and retry each test 3 times in single …
Oct 24, 2024
ac3a482
adds sp benchmarking CI to ensure speedup in single precision
Nov 6, 2024
b10d9fa
add deletion back to bench.yml
Nov 6, 2024
8952248
Merge branch 'master' into add-modular-precision-update
aricer123 Nov 6, 2024
683d620
fix issues with first merge
Nov 8, 2024
6986aac
Merge branch 'master' into add-modular-precision-update
aricer123 Nov 8, 2024
68e62d4
Merge branch 'master' into add-modular-precision-update
aricer123 Nov 8, 2024
23f5bc6
fix issues with second merge
Nov 10, 2024
9124adc
Merge branch 'master' into add-modular-precision-update
aricer123 Nov 10, 2024
aca66bf
fix Benchmarking Speedup CI
Nov 10, 2024
b525b1f
just test bench.yml changes
Nov 11, 2024
5a72708
merge again with latest changes to master
Nov 15, 2024
22d5de4
Merge branch 'master' into add-modular-precision-update
aricer123 Nov 15, 2024
90198df
Merge branch 'master' into add-modular-precision-update
aricer123 Nov 18, 2024
63c7939
fix changes to CI
Nov 18, 2024
23053e8
fix small issue
Nov 18, 2024
06cdb68
more fixes
Nov 18, 2024
6163976
Merge branch 'master' into add-modular-precision-update
aricer123 Nov 18, 2024
85df2d7
Merge branch 'master' into add-modular-precision-update
aricer123 Nov 21, 2024
f7dabe5
another small CI fix
Nov 21, 2024
60b0e50
CI fix
Nov 24, 2024
e11da22
CI fix
Nov 24, 2024
2b2702e
revert CI changes
Nov 25, 2024
973b084
Fix revert
Nov 25, 2024
f9d1e35
fix
Nov 26, 2024
a575e68
Merge branch 'master' into add-modular-precision-update
sbryngelson Nov 26, 2024
3631ea2
Merge branch 'master' into add-modular-precision-update
aricer123 Nov 26, 2024
0a131a9
fix
Nov 27, 2024
2ef46be
Merge branch 'master' into add-modular-precision-update
aricer123 Nov 27, 2024
54aea85
fix
Nov 27, 2024
b82e704
fix
Nov 27, 2024
2bcc8e0
final commit, remove last remaining warnings
Nov 28, 2024
a4dfc4c
nevermind, small fix
Nov 28, 2024
0651ec6
Update lint-source.yml
sbryngelson Nov 28, 2024
12588c3
Update lint-source.yml
sbryngelson Nov 28, 2024
dec61ba
Update lint-source.yml
sbryngelson Nov 28, 2024
4bc191d
Merge branch 'master' into add-modular-precision-update
sbryngelson Dec 1, 2024
30fab57
fix missing precision, satiate linter
sbryngelson Dec 1, 2024
650ae57
satiate
sbryngelson Dec 1, 2024
0c970ca
hack mixlayer_perturb issue, just so i can test CI
arciyer123 Dec 2, 2024
2602628
add ci to gpu
arciyer123 Dec 2, 2024
346aa65
small CI fix
arciyer123 Dec 2, 2024
f832191
CI fix
arciyer123 Dec 2, 2024
36cc17f
hopefully last commit
arciyer123 Dec 3, 2024
f7c5255
chemistry
arciyer123 Dec 3, 2024
0ee7454
fix minor issues
arciyer123 Dec 5, 2024
76e022e
Merge branch 'master' into add-modular-precision-update
aricer123 Dec 5, 2024
e794af4
fix issue with IBM
arciyer123 Dec 5, 2024
bc53b9b
format
arciyer123 Dec 5, 2024
2e6a1ce
Update m_model.fpp
aricer123 Dec 5, 2024
c395868
satiate linter
aricer123 Dec 5, 2024
92addab
Merge branch 'master' into add-modular-precision-update
sbryngelson Dec 13, 2024
b0fee45
add documentation
arciyer123 Dec 13, 2024
5693224
fix some missing ones
sbryngelson Dec 14, 2024
f770a43
add grep check
sbryngelson Dec 15, 2024
c1a9e6b
fix blunder
sbryngelson Dec 15, 2024
a77a395
cleanup
sbryngelson Dec 15, 2024
b084b1c
fix linter a bit
sbryngelson Dec 16, 2024
c2641f3
Update README.md
sbryngelson Dec 16, 2024
790e645
Discard changes to examples/3D_performance_test/case.py
sbryngelson Dec 16, 2024
6c3c55e
Discard changes to .github/workflows/phoenix/bench.sh
sbryngelson Dec 16, 2024
e08440e
Discard changes to .github/workflows/phoenix/submit.sh
sbryngelson Dec 16, 2024
58c9345
Discard changes to .github/workflows/phoenix/test.sh
sbryngelson Dec 16, 2024
ad1c092
Discard changes to .github/workflows/bench.yml
sbryngelson Dec 16, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion .github/workflows/lint-source.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,4 +29,11 @@ jobs:
run: pip install fortitude-lint ansi2txt

- name: Lint the source code
run: fortitude check --ignore=E001,S001,S101,M011,F001,S041,T001 ./src/*/* || true
run: fortitude check --file-extensions=f90,fpp,fypp --ignore=E001,S001,S101,M011,F001,S041,T001,S101 ./src/** || true

- name: Ensure kind is specified
run: fortitude check --file-extensions=f90,fpp,fypp --select=P001 ./src/**

- name: No double precision intrinsics
run: |
! grep -iR 'dexp\|dlog\|dble\|dabs\|double\ precision\|real(8)\|real(4)\|dprod\|dmin\|dmax\|dfloat\|dreal\|dcos\|dsin\|dtan\|dsign\|dtanh\|dsinh\|dcosh\|\.d0\|\dd0' --exclude-dir=syscheck ./src/*
6 changes: 4 additions & 2 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ jobs:
matrix:
os: ['ubuntu', 'macos']
mpi: ['mpi']
precision: ['']
debug: ['debug', 'no-debug']
intel: [true, false]
exclude:
Expand All @@ -35,6 +36,7 @@ jobs:
include:
- os: ubuntu
mpi: no-mpi
precision: single
debug: no-debug
intel: false

Expand Down Expand Up @@ -86,7 +88,7 @@ jobs:
- name: Build
run: |
if [ '${{ matrix.intel }}' == 'true' ]; then . /opt/intel/oneapi/setvars.sh; fi
/bin/bash mfc.sh build -j $(nproc) --${{ matrix.debug }} --${{ matrix.mpi }}
/bin/bash mfc.sh build -j $(nproc) --${{ matrix.debug }} --${{ matrix.mpi }} --${{ matrix.precision }}

- name: Test
run: |
Expand Down Expand Up @@ -140,4 +142,4 @@ jobs:
if: always()
with:
name: logs-${{ strategy.job-index }}-${{ matrix.device }}
path: test-${{ matrix.device }}.out
path: test-${{ matrix.device }}.out
7 changes: 7 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ option(MFC_POST_PROCESS "Build post_process" OFF
option(MFC_SYSCHECK "Build syscheck" OFF)
option(MFC_DOCUMENTATION "Build documentation" OFF)
option(MFC_ALL "Build everything" OFF)
option(MFC_SINGLE_PRECISION "Build single precision" OFF)

if (MFC_ALL)
set(MFC_PRE_PROCESS ON FORCE)
Expand All @@ -34,6 +35,12 @@ if (MFC_ALL)
set(MFC_DOCUMENTATION ON FORCE)
endif()

if (MFC_SINGLE_PRECISION)
add_compile_definitions(MFC_SINGLE_PRECISION)
else()
add_compile_definitions(MFC_DOUBLE_PRECISION)
endif()


# CMake Library Imports

Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,7 @@ They are organized below. Just click the drop-downs!
* \>66K AMD GPUs on the first exascale computer, [OLCF Frontier](https://www.olcf.ornl.gov/frontier/) (AMD MI250X-based)
* Near compute roofline behavior
* RDMA (remote data memory access; GPU-GPU direct communication) via GPU-aware MPI on NVIDIA (CUDA-aware MPI) and AMD GPU systems
* Optional single-precision computation and storage
</details>

<details>
Expand Down
1 change: 1 addition & 0 deletions docs/documentation/getting-started.md
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,7 @@ MFC can be built with support for various (compile-time) features:
| **Debug** | `--debug` | `--no-debug` | Off | Requests the compiler build MFC in debug mode. |
| **GCov** | `--gcov` | `--no-gcov` | Off | Builds MFC with coverage flags on. |
| **Unified Memory** | `--unified` | `--no-unified` | Off | Builds MFC with unified CPU/GPU memory (GH-200 superchip only) |
| **Single** | `--single` | `--no-single` | Off | Builds MFC in single precision

_⚠️ The `--gpu` option requires that your compiler supports OpenACC for Fortran for your target GPU architecture._

Expand Down
12 changes: 6 additions & 6 deletions misc/m_silo_proxy.f90
Original file line number Diff line number Diff line change
Expand Up @@ -189,9 +189,9 @@ function DBPUTQM(dbid, name, lname, xname, lxname, yname, lyname, & !! -
integer, intent(IN) :: lyname
character(LEN=*), intent(IN) :: zname
integer, intent(IN) :: lzname
real(kind(0d0)), dimension(:), intent(IN) :: x
real(kind(0d0)), dimension(:), intent(IN) :: y
real(kind(0d0)), dimension(:), intent(IN) :: z
real(wp), dimension(:), intent(IN) :: x
real(wp), dimension(:), intent(IN) :: y
real(wp), dimension(:), intent(IN) :: z
integer, dimension(:), intent(IN) :: dims
integer, intent(IN) :: ndims
integer, intent(IN) :: datatype
Expand All @@ -215,8 +215,8 @@ function DBPUTCURVE(dbid, curvename, lcurvename, xvals, yvals, & !! ----
integer, intent(IN) :: dbid
character(LEN=*), intent(IN) :: curvename
integer, intent(IN) :: lcurvename
real(kind(0d0)), dimension(:), intent(IN) :: xvals
real(kind(0d0)), dimension(:), intent(IN) :: yvals
real(wp), dimension(:), intent(IN) :: xvals
real(wp), dimension(:), intent(IN) :: yvals
integer, intent(IN) :: datatype
integer, intent(IN) :: npoints
integer, intent(IN) :: optlist_id
Expand Down Expand Up @@ -264,7 +264,7 @@ function DBPUTQV1(dbid, name, lname, meshname, lmeshname, var, & !! ----
integer, intent(IN) :: lname
character(LEN=*), intent(IN) :: meshname
integer, intent(IN) :: lmeshname
real(kind(0d0)), dimension(:, :, :), intent(IN) :: var
real(wp), dimension(:, :, :), intent(IN) :: var
integer, dimension(:), intent(IN) :: dims
integer, intent(IN) :: ndims
integer, intent(IN) :: mixvar
Expand Down
4 changes: 2 additions & 2 deletions src/common/include/macros.fpp
Original file line number Diff line number Diff line change
Expand Up @@ -92,8 +92,8 @@
end if
#:enddef

#define t_vec3 real(kind(0d0)), dimension(1:3)
#define t_mat4x4 real(kind(0d0)), dimension(1:4,1:4)
#define t_vec3 real(wp), dimension(1:3)
#define t_mat4x4 real(wp), dimension(1:4,1:4)

#:def ASSERT(predicate, message = None)
if (.not. (${predicate}$)) then
Expand Down
32 changes: 16 additions & 16 deletions src/common/m_checker_common.fpp
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ module m_checker_common

implicit none

private; public :: s_check_inputs_common
private; public :: s_check_inputs_common, wp

contains

Expand Down Expand Up @@ -61,7 +61,7 @@ contains
!! Called by s_check_inputs_common for simulation and post-processing
subroutine s_check_inputs_time_stepping
if (cfl_dt) then
@:PROHIBIT(cfl_target < 0 .or. cfl_target > 1d0)
@:PROHIBIT(cfl_target < 0 .or. cfl_target > 1._wp)
@:PROHIBIT(t_stop <= 0)
@:PROHIBIT(t_save <= 0)
@:PROHIBIT(t_save > t_stop)
Expand Down Expand Up @@ -144,10 +144,10 @@ contains
@:PROHIBIT(relax .and. model_eqns /= 3, "phase change requires model_eqns = 3")
@:PROHIBIT(relax .and. relax_model < 0, "relax_model must be in between 0 and 6")
@:PROHIBIT(relax .and. relax_model > 6, "relax_model must be in between 0 and 6")
@:PROHIBIT(relax .and. palpha_eps <= 0d0, "palpha_eps must be positive")
@:PROHIBIT(relax .and. palpha_eps >= 1d0, "palpha_eps must be less than 1")
@:PROHIBIT(relax .and. ptgalpha_eps <= 0d0, "ptgalpha_eps must be positive")
@:PROHIBIT(relax .and. ptgalpha_eps >= 1d0, "ptgalpha_eps must be less than 1")
@:PROHIBIT(relax .and. palpha_eps <= 0._wp, "palpha_eps must be positive")
@:PROHIBIT(relax .and. palpha_eps >= 1._wp, "palpha_eps must be less than 1")
@:PROHIBIT(relax .and. ptgalpha_eps <= 0._wp, "ptgalpha_eps must be positive")
@:PROHIBIT(relax .and. ptgalpha_eps >= 1._wp, "ptgalpha_eps must be less than 1")
@:PROHIBIT((.not. relax) .and. &
((relax_model /= dflt_int) .or. (.not. f_is_default(palpha_eps)) .or. (.not. f_is_default(ptgalpha_eps))), &
"relax is not set as true, but other phase change parameters have been modified. " // &
Expand Down Expand Up @@ -262,27 +262,27 @@ contains

do i = 1, num_fluids
call s_int_to_str(i, iStr)
@:PROHIBIT(.not. f_is_default(fluid_pp(i)%gamma) .and. fluid_pp(i)%gamma <= 0d0, &
@:PROHIBIT(.not. f_is_default(fluid_pp(i)%gamma) .and. fluid_pp(i)%gamma <= 0._wp, &
"fluid_pp("//trim(iStr)//")%gamma must be positive")

@:PROHIBIT(model_eqns == 1 .and. (.not. f_is_default(fluid_pp(i)%gamma)), &
"model_eqns = 1 does not support fluid_pp("//trim(iStr)//")%gamma")

@:PROHIBIT((i <= num_fluids + bub_fac .and. fluid_pp(i)%gamma <= 0d0) .or. &
@:PROHIBIT((i <= num_fluids + bub_fac .and. fluid_pp(i)%gamma <= 0._wp) .or. &
(i > num_fluids + bub_fac .and. (.not. f_is_default(fluid_pp(i)%gamma))), &
"for fluid_pp("//trim(iStr)//")%gamma")

@:PROHIBIT(.not. f_is_default(fluid_pp(i)%pi_inf) .and. fluid_pp(i)%pi_inf < 0d0, &
@:PROHIBIT(.not. f_is_default(fluid_pp(i)%pi_inf) .and. fluid_pp(i)%pi_inf < 0._wp, &
"fluid_pp("//trim(iStr)//")%pi_inf must be non-negative")

@:PROHIBIT(model_eqns == 1 .and. (.not. f_is_default(fluid_pp(i)%pi_inf)), &
"model_eqns = 1 does not support fluid_pp("//trim(iStr)//")%pi_inf")

@:PROHIBIT((i <= num_fluids + bub_fac .and. fluid_pp(i)%pi_inf < 0d0) .or. &
@:PROHIBIT((i <= num_fluids + bub_fac .and. fluid_pp(i)%pi_inf < 0._wp) .or. &
(i > num_fluids + bub_fac .and. (.not. f_is_default(fluid_pp(i)%pi_inf))), &
"for fluid_pp("//trim(iStr)//")%pi_inf")

@:PROHIBIT(fluid_pp(i)%cv < 0d0, &
@:PROHIBIT(fluid_pp(i)%cv < 0._wp, &
"fluid_pp("//trim(iStr)//")%cv must be positive")
end do
end subroutine s_check_inputs_stiffened_eos
Expand All @@ -293,7 +293,7 @@ contains

integer :: i

@:PROHIBIT(surface_tension .and. sigma < 0d0, &
@:PROHIBIT(surface_tension .and. sigma < 0._wp, &
"sigma must be greater than or equal to zero")

@:PROHIBIT(surface_tension .and. sigma == dflt_real, &
Expand Down Expand Up @@ -321,9 +321,9 @@ contains
!! Called by s_check_inputs_common for all three stages
subroutine s_check_inputs_moving_bc
#:for X, VB2, VB3 in [('x', 'vb2', 'vb3'), ('y', 'vb3', 'vb1'), ('z', 'vb1', 'vb2')]
if (any((/bc_${X}$%vb1, bc_${X}$%vb2, bc_${X}$%vb3/) /= 0d0)) then
if (any((/bc_${X}$%vb1, bc_${X}$%vb2, bc_${X}$%vb3/) /= 0._wp)) then
if (bc_${X}$%beg == -15) then
if (any((/bc_${X}$%${VB2}$, bc_${X}$%${VB3}$/) /= 0d0)) then
if (any((/bc_${X}$%${VB2}$, bc_${X}$%${VB3}$/) /= 0._wp)) then
call s_mpi_abort("bc_${X}$%beg must be -15 if "// &
"bc_${X}$%${VB2}$ or bc_${X}$%${VB3}$ "// &
"is set. Exiting ...")
Expand All @@ -336,9 +336,9 @@ contains
#:endfor

#:for X, VE2, VE3 in [('x', 've2', 've3'), ('y', 've3', 've1'), ('z', 've1', 've2')]
if (any((/bc_${X}$%ve1, bc_${X}$%ve2, bc_${X}$%ve3/) /= 0d0)) then
if (any((/bc_${X}$%ve1, bc_${X}$%ve2, bc_${X}$%ve3/) /= 0._wp)) then
if (bc_${X}$%end == -15) then
if (any((/bc_${X}$%${VE2}$, bc_${X}$%${VE3}$/) /= 0d0)) then
if (any((/bc_${X}$%${VE2}$, bc_${X}$%${VE3}$/) /= 0._wp)) then
call s_mpi_abort("bc_${X}$%end must be -15 if "// &
"bc_${X}$%${VE2}$ or bc_${X}$%${VE3}$ "// &
"is set. Exiting ...")
Expand Down
32 changes: 17 additions & 15 deletions src/common/m_constants.fpp
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,15 @@

module m_constants

use m_precision_select

character, parameter :: dflt_char = ' ' !< Default string value

real(kind(0d0)), parameter :: dflt_real = -1d6 !< Default real value
real(kind(0d0)), parameter :: sgm_eps = 1d-16 !< Segmentation tolerance
real(kind(0d0)), parameter :: small_alf = 1d-11 !< Small alf tolerance
real(kind(0d0)), parameter :: pi = 3.141592653589793d0 !< Pi
real(kind(0d0)), parameter :: verysmall = 1.d-12 !< Very small number
real(wp), parameter :: dflt_real = -1e6_wp !< Default real value
real(wp), parameter :: sgm_eps = 1e-16_wp !< Segmentation tolerance
real(wp), parameter :: small_alf = 1e-11_wp !< Small alf tolerance
real(wp), parameter :: pi = 3.141592653589793_wp !< Pi
real(wp), parameter :: verysmall = 1.e-12_wp !< Very small number

integer, parameter :: num_stcls_min = 5 !< Minimum # of stencils
integer, parameter :: path_len = 400 !< Maximum path length
Expand All @@ -22,21 +24,21 @@ module m_constants
integer, parameter :: num_patches_max = 10
integer, parameter :: pathlen_max = 400
integer, parameter :: nnode = 4 !< Number of QBMM nodes
real(kind(0d0)), parameter :: capillary_cutoff = 1e-6 !< color function gradient magnitude at which to apply the surface tension fluxes
real(kind(0d0)), parameter :: acoustic_spatial_support_width = 2.5d0 !< Spatial support width of acoustic source, used in s_source_spatial
real(kind(0d0)), parameter :: dflt_vcfl_dt = 100d0 !< value of vcfl_dt when viscosity is off for computing adaptive timestep size
real(kind(0d0)), parameter :: broadband_spectral_level_constant = 20d0 !< The constant to scale the spectral level at the lower frequency bound
real(kind(0d0)), parameter :: broadband_spectral_level_growth_rate = 10d0 !< The spectral level constant to correct the magnitude at each frqeuency to ensure the source is overall broadband
real(wp), parameter :: capillary_cutoff = 1e-6 !< color function gradient magnitude at which to apply the surface tension fluxes
real(wp), parameter :: acoustic_spatial_support_width = 2.5_wp !< Spatial support width of acoustic source, used in s_source_spatial
real(wp), parameter :: dflt_vcfl_dt = 100._wp !< value of vcfl_dt when viscosity is off for computing adaptive timestep size
real(wp), parameter :: broadband_spectral_level_constant = 20._wp !< The constant to scale the spectral level at the lower frequency bound
real(wp), parameter :: broadband_spectral_level_growth_rate = 10._wp !< The spectral level constant to correct the magnitude at each frqeuency to ensure the source is overall broadband

! IBM+STL interpolation constants
integer, parameter :: Ifactor_2D = 50 !< Multiple factor of the ratio (edge to cell width) for interpolation along edges for 2D models
integer, parameter :: Ifactor_3D = 5 !< Multiple factor of the ratio (edge to cell width) for interpolation along edges for 3D models
integer, parameter :: Ifactor_bary_3D = 20 !< Multiple factor of the ratio (triangle area to cell face area) for interpolation on triangle facets for 3D models
integer, parameter :: num_ray = 20 !< Default number of rays traced per cell
real(kind(0d0)), parameter :: ray_tracing_threshold = 0.9d0 !< Threshold above which the cell is marked as the model patch
real(kind(0d0)), parameter :: threshold_vector_zero = 1d-10 !< Threshold to treat the component of a vector to be zero
real(kind(0d0)), parameter :: threshold_edge_zero = 1d-10 !< Threshold to treat two edges to be overlapped
real(kind(0d0)), parameter :: threshold_bary = 1d-1 !< Threshold to interpolate a barycentric facet
real(kind(0d0)), parameter :: initial_distance_buffer = 1d12 !< Initialized levelset distance for the shortest path pair algorithm
real(wp), parameter :: ray_tracing_threshold = 0.9_wp !< Threshold above which the cell is marked as the model patch
real(wp), parameter :: threshold_vector_zero = 1e-10 !< Threshold to treat the component of a vector to be zero
real(wp), parameter :: threshold_edge_zero = 1e-10 !< Threshold to treat two edges to be overlapped
real(wp), parameter :: threshold_bary = 1e-1 !< Threshold to interpolate a barycentric facet
real(wp), parameter :: initial_distance_buffer = 1e12_wp !< Initialized levelset distance for the shortest path pair algorithm

end module m_constants
3 changes: 2 additions & 1 deletion src/common/m_delay_file_access.f90
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
module m_delay_file_access
use m_precision_select
implicit none
private

Expand All @@ -14,7 +15,7 @@ subroutine DelayFileAccess(ProcessRank)
integer, intent(in) :: ProcessRank

integer :: iDelay, nFileAccessDelayIterations
real(kind(0d0)) :: Number, Dummy
real(wp) :: Number, Dummy

nFileAccessDelayIterations &
= (ProcessRank/N_PROCESSES_FILE_ACCESS)*FILE_ACCESS_DELAY_UNIT
Expand Down
Loading
Loading