Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
81 commits
Select commit Hold shift + click to select a range
703ea8c
Add gablsdyn with dynamic profiling of T
karimali5 Sep 18, 2025
85a2862
use local fftw3 on Stampede3
karimali5 Sep 18, 2025
9100acd
add stable_pbl_concurrent from Kirby's branch
karimali5 Sep 18, 2025
2eb3f7a
add dummy controller so conc. follows prec. actions
karimali5 Sep 19, 2025
10ba539
changes to make code compile on AMD machine with GNU
karimali5 Oct 27, 2025
4fb9720
fix release run on AMD using GNU
karimali5 Nov 10, 2025
125d084
add O3 in GNU make flags
karimali5 Dec 3, 2025
2aef2c0
only do checks for xy-budget flags if xy-budgets are on
karimali5 Dec 3, 2025
9e2aef1
comment out start_io and xy-budgets in gablsdyn
karimali5 Dec 3, 2025
69ee728
initialize domain in gablsdyn from 1D vertical profiles
karimali5 Dec 3, 2025
b3d1180
put def of namelist in tile prog before keys def - to work with GNU
karimali5 Dec 10, 2025
d54bcac
roll back to original initialize.F90 in gablsdyn
karimali5 Dec 10, 2025
50df81f
Merge pull request #15 from Howland-Lab/gnu_amd_KA
karimali5 Dec 10, 2025
b7e7627
fix fringe association for w
karimali5 Dec 27, 2025
7dfc51a
Add compact set of deficit budgets
karimali5 Jan 29, 2026
d5fa510
Fix the sign of the mean buoyancy term
karimali5 Jan 29, 2026
ce6e0fa
comment out unnesscary checks in actuator disk
karimali5 Jan 29, 2026
e2a6314
move delta_tauij to updateBudget
karimali5 Jan 30, 2026
460e041
remove time-weighted sum because time-averaged budget are not summed …
karimali5 Jan 30, 2026
0ce6c07
Update AssembleBudget2 to use already computed flow gradients in igrid
karimali5 Feb 1, 2026
c735fb8
intermediate save
karimali5 Feb 2, 2026
9e5389f
push to Anvil to test Budget 2
Feb 2, 2026
80059d8
add MCG- add parity for ddz & E2C- expand budget 2
karimali5 Feb 3, 2026
495d00a
fix size of budget 3
karimali5 Feb 4, 2026
0b42c7a
comment out the turbine forcing covariance (small and very local)
karimali5 Feb 4, 2026
02291f5
comment out turbine forcing from TKE budget
karimali5 Feb 10, 2026
04cd7ab
update temperature initialization
karimali5 Feb 10, 2026
7b5e8ca
Fatal error when any pencil thickness = 1 and turbines are used
karimali5 Feb 15, 2026
4e78d08
some cleanup
karimali5 Feb 15, 2026
bd90b96
A program to compute derivatives offline
karimali5 Feb 16, 2026
4f1c312
Adding dx, dy, dz to turbine init in case the processor grid only has…
kirbyh Nov 3, 2025
8320ed3
small bug fix to read_2d_ascii
kirbyh Aug 12, 2025
22716f7
Added read arbitrary inflow to get_u
kirbyh Aug 12, 2025
8187f62
new, fast implementation for ADM type 5 (TESTED)
kirbyh Aug 13, 2025
52e1f14
Revert extraneous commits from other features not part of the ADM imp…
kirbyh Aug 18, 2025
e9ba023
Revert "small bug fix to read_2d_ascii"
kirbyh Aug 18, 2025
35b3fa0
Increasing ADM sampling resolution parameter to fix kernel bug
kirbyh Feb 8, 2026
a111f38
Attempt at fixing double power output
skygering Jan 8, 2026
fb5e5b1
Remove repreated turbine values written to .pow and .vel files with b…
skygering Jan 8, 2026
c6de9ab
Reorganize dump_visualization_files block
skygering Jan 8, 2026
2752495
Reset setup file
skygering Jan 9, 2026
768ac12
Decrease allocations for time budgets
skygering Oct 8, 2025
3846155
Update cmake version
skygering Oct 8, 2025
f9dbad2
Further memory cleanup in budgets
skygering Oct 8, 2025
4fa823a
Update destroy code
skygering Oct 18, 2025
ea4417c
Update destroy budget call
skygering Oct 18, 2025
1aebac6
Update destroy methods
skygering Oct 19, 2025
0b5d165
Restoring local FFTW path and updating cmake to 3.31.9 on Stampede3
kirbyh Feb 8, 2026
507e860
small updates in destroy to release correct allocated memory
kirbyh Feb 8, 2026
df8b938
use local fftw3 on Stampede3
karimali5 Sep 18, 2025
0119297
changes to make code compile on AMD machine with GNU
karimali5 Oct 27, 2025
30b3b40
fix release run on AMD using GNU
karimali5 Nov 10, 2025
23da9d2
missing endif() from merging during rebase
karimali5 Feb 19, 2026
e708588
make deficit budgets not dependent on time-avg budgets of full flow
karimali5 Feb 22, 2026
1202ce1
add option to squeeze time-avg budget 0when it runs with deficit bud…
karimali5 Feb 22, 2026
a51b85a
add option to skip box averaging of budgets in ConstructDeficitBudgets
karimali5 Feb 22, 2026
5ababb2
include squeez option for restart of time-averaged budget 0
karimali5 Feb 24, 2026
525ca72
Used ChatGPT to replace MPI_SEND & MPI_REC with MPI_GATHER in io_star…
karimali5 Feb 24, 2026
86f45b2
Add MPI_GATHER in the list of 'external' rouines in igrid.F90
karimali5 Feb 24, 2026
55cc561
Add external statement for MPI_ALLREDUCE
karimali5 Feb 24, 2026
47639ed
Cleanup MPI stuff in actuator disk module
karimali5 Mar 2, 2026
b1dd2c5
add deallocation of extra arrays in destroy
karimali5 Mar 2, 2026
d9435a2
Add y and z momentum budgets
karimali5 Mar 2, 2026
f56788f
add iostat to reading namelists in constructdeficitbudgets
karimali5 Mar 3, 2026
3089da5
fix typo in refine_fields
karimali5 Mar 3, 2026
7f553a6
add some error messages to constrcutDeficitBudget
karimali5 Mar 5, 2026
5bb4ce8
Fix zero-padding + move decomp_inter to module level
karimali5 Mar 5, 2026
ff5d0bd
deallocate ktmp at end of fft init
karimali5 Mar 11, 2026
aa03265
fix build on PadeOps
Mar 16, 2026
fc4393a
Add specific height to pertub T below instead of using xdim in case R…
karimali5 Mar 26, 2026
7800703
add hpert to pre_conc_compact_budget
karimali5 Mar 26, 2026
9bb2046
Add a fringe method to damp advection of vertical momentum
karimali5 Mar 26, 2026
15df319
fix inputfile length in declaration
karimali5 Apr 3, 2026
39a1612
safeguard actuatordisk_filtered aganst single-cell slabs
karimali5 Apr 7, 2026
218f6e2
Use correct decomp_info object for edge transpose in buoyancy term
karimali5 Apr 8, 2026
d833d7a
Add setup file for Anvil
karimali5 Apr 15, 2026
006b4de
specify versions of loaded modules
karimali5 Apr 17, 2026
2ed5165
Refactor min/max calculations in doTemporalStuff
karimali5 May 4, 2026
01d6762
Fringe: Compute reduced min/max outside function/subroutine arguments
karimali5 May 4, 2026
5b57391
fix typo in latest commit of temporalHook
karimali5 May 4, 2026
0886d52
Derivative of multiple files in the same call
karimali5 May 4, 2026
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
31 changes: 18 additions & 13 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,12 @@ set(DECOMP_LIBRARY_PATH "${DECOMP_PATH}/lib")
set(DECOMP_INCLUDE_PATH "${DECOMP_PATH}/include")

# Where to look for Lib_VTK_IO
set(VTK_IO_PATH $ENV{VTK_IO_PATH})
set(VTK_IO_LIBRARY_PATH "${VTK_IO_PATH}/lib")
set(VTK_IO_INCLUDE_PATH "${VTK_IO_PATH}/modules")
# set(VTK_IO_PATH $ENV{VTK_IO_PATH})
# set(VTK_IO_LIBRARY_PATH "${VTK_IO_PATH}/lib")
# set(VTK_IO_INCLUDE_PATH "${VTK_IO_PATH}/modules")
# set(VTK_IO_PATH $ENV{VTK_IO_PATH})
# set(VTK_IO_LIBRARY_PATH "${VTK_IO_PATH}/lib")
# set(VTK_IO_INCLUDE_PATH "${VTK_IO_PATH}/modules")

# Where to look for HDF5
set(HDF5_PATH $ENV{HDF5_PATH})
Expand Down Expand Up @@ -58,27 +61,29 @@ elseif ( CMAKE_Fortran_COMPILER_ID MATCHES "GNU_OSX")
if ( CMAKE_BUILD_TYPE MATCHES "Release" )
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -Wall -Wconversion -Wextra -Waliasing -fopenmp -ffree-form -ffree-line-length-none -ffast-math -funroll-loops -fno-protect-parens -fno-unsafe-math-optimizations -frounding-math -fsignaling-nans")
elseif ( CMAKE_BUILD_TYPE MATCHES "Debug" )
set(CMAKE_Fortran_FLAGS "-Og -g -fbacktrace -pg -llapack -ffree-form -ffree-line-length-none -fopenmp -fbounds-check -ffpe-trap=zero,overflow -Wall -Wconversion -Wextra -Waliasing -Wsurprising -fno-unsafe-math-optimizations -frounding-math -fsignaling-nans")
set(CMAKE_Fortran_FLAGS "-Og -g -fbacktrace -pg -ffree-form -ffree-line-length-none -fopenmp -fbounds-check -ffpe-trap=zero,overflow -Wall -Wconversion -Wextra -Waliasing -Wsurprising -fno-unsafe-math-optimizations -frounding-math -fsignaling-nans")
endif()

# Standard GNU compilers
elseif ( CMAKE_Fortran_COMPILER_ID MATCHES "GNU")
if ( CMAKE_BUILD_TYPE MATCHES "Release" )
if ($ENV{ARCH_OPT_FLAG})
set(OPTFLAG "-march=native")
else()
set(OPTFLAG $ENV{ARCH_OPT_FLAG})
endif()
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -Wall -Wconversion -Wextra -Waliasing -ffree-form -ffree-line-length-none -ffast-math ${OPTFLAG} -funroll-loops -fno-protect-parens -fopenmp")
if ($ENV{ARCH_OPT_FLAG})
# set(OPTFLAG "-march=native")
set(OPTFLAG $ENV{ARCH_OPT_FLAG})
else()
set(OPTFLAG $ENV{ARCH_OPT_FLAG})
endif()
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -Wall -Wconversion -Wextra -Waliasing -ffree-form -ffree-line-length-none -ffast-math ${OPTFLAG} -funroll-loops -fno-protect-parens -fopenmp -fallow-argument-mismatch -finit-integer=0 -finit-real=zero")
elseif ( CMAKE_BUILD_TYPE MATCHES "Debug" )
set(CMAKE_Fortran_FLAGS "-Og -g -fbacktrace -pg -llapack -ffree-form -ffree-line-length-none -fcheck=all -fbounds-check -ffpe-trap=zero,overflow -Wall -Wconversion -Wextra -Waliasing -Wsurprising")
set(CMAKE_Fortran_FLAGS "-Og -g -fbacktrace -pg -ffree-form -ffree-line-length-none -fcheck=all -fbounds-check -ffpe-trap=zero,overflow -Wall -Wconversion -Wextra -Waliasing -Wsurprising")
endif()

elseif ( CMAKE_Fortran_COMPILER_ID MATCHES "Cray")
if ( CMAKE_BUILD_TYPE MATCHES "Release" )
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -Wall -Wconversion -Wextra -Waliasing -ffree-form -ffree-line-length-none -ffast-math -march=native -funroll-loops -fno-protect-parens -fopenmp")
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -h omp -hlist=a")
# set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -Wall -Wconversion -Wextra -Waliasing -ffree-form -ffree-line-length-none -ffast-math -funroll-loops -fno-protect-parens -fopenmp -finit-integer=0 -finit-real=zero")
elseif ( CMAKE_BUILD_TYPE MATCHES "Debug" )
set(CMAKE_Fortran_FLAGS "-Og -g -fbacktrace -pg -llapack -ffree-form -ffree-line-length-none -fcheck=all -fbounds-check -ffpe-trap=zero,overflow -Wall -Wconversion -Wextra -Waliasing -Wsurprising")
set(CMAKE_Fortran_FLAGS "-Og -g -fbacktrace -pg -ffree-form -ffree-line-length-none -fcheck=all -fbounds-check -ffpe-trap=zero,overflow -Wall -Wconversion -Wextra -Waliasing -Wsurprising")
endif()

elseif ( CMAKE_Fortran_COMPILER_ID MATCHES "IBM")
Expand Down
2 changes: 1 addition & 1 deletion problems/incompressible/diurnal_concurrent.F90
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ program diurnal_concurrent
call precursor%start_io(.true.)

if (primary%usefringe) then
call primary%fringe_x%associateFringeTargets(precursor%u, precursor%v, precursor%wC, precursor%T)
call primary%fringe_x%associateFringeTargets(precursor%u, precursor%v, precursor%w, precursor%T)
end if

call budg_tavg%init(primary_inputfile, primary) !<-- Budget class initialization
Expand Down
64 changes: 64 additions & 0 deletions problems/incompressible/gablsdyn_igrid.F90
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
! Template for PadeOps

#include "gablsdyn_igrid_files/initialize.F90"
#include "gablsdyn_igrid_files/temporalHook.F90"

program gabls_igrid
use mpi
use kind_parameters, only: clen
use IncompressibleGrid, only: igrid
use temporalhook, only: doTemporalStuff, initialize_controller_location
use timer, only: tic, toc
use budgets_xy_avg_mod, only: budgets_xy_avg
use budgets_time_avg_mod, only: budgets_time_avg
use exits, only: message

implicit none

type(igrid), allocatable, target :: igp
character(len=clen) :: inputfile
integer :: ierr
type(budgets_xy_avg) :: budg_xy
type(budgets_time_avg) :: budg_tavg

call MPI_Init(ierr) !<-- Begin MPI

call GETARG(1,inputfile) !<-- Get the location of the input file

allocate(igp) !<-- Initialize hit_grid with defaults

call compute_xdim_udim(inputfile)
call igp%init(inputfile) !<-- Properly initialize the hit_grid solver (see hit_grid.F90)

!call igp%start_io(.false.) !<-- Start I/O by creating a header file (see io.F90)

call igp%printDivergence()

call initialize_controller_location(igp, inputfile)

! call budg_xy%init(inputfile, igp) !<-- Budget class initialization
call budg_tavg%init(inputfile, igp) !<-- Budget class initialization

call tic()
do while (igp%tsim < igp%tstop)

call igp%timeAdvance() !<-- Time stepping scheme + Pressure Proj. (see igridWallM.F90)
call doTemporalStuff(igp) !<-- Go to the temporal hook (see temporalHook.F90)

!call budg_xy%doBudgets() !<--- perform budget related operations
call budg_tavg%doBudgets() !<--- perform budget related operations
end do

!call budg_xy%destroy() !<-- release memory taken by the budget class
call budg_tavg%destroy() !<-- release memory taken by the budget class

call igp%finalize_io() !<-- Close the header file (wrap up i/o)

call igp%destroy() !<-- Destroy the IGRID derived type


deallocate(igp) !<-- Deallocate all the memory associated with scalar defaults

call MPI_Finalize(ierr) !<-- Terminate MPI

end program
Loading