Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
d15770f
Save work
mo-rickywong Dec 2, 2025
b91f952
Commit documentation changes before merging on the related code changes.
mo-rickywong Dec 2, 2025
b08fc7a
Update the branch to include the fortran source changes that the docu…
mo-rickywong Dec 3, 2025
bb6d987
Save changes to configuration documentation
mo-rickywong Dec 3, 2025
8dd023b
Save updates to branch
mo-rickywong Dec 5, 2025
3b3e13c
Update the copyright heading on some new files
mo-rickywong Dec 10, 2025
8483a5a
Merge branch 'main' into ConfigTypeAccess
mo-rickywong Dec 11, 2025
65afca1
Added self to contritbutors list file.
mo-rickywong Dec 11, 2025
6dd240d
Merge branch 'main' into ConfigTypeAccess
mo-rickywong Dec 11, 2025
e275eb1
Fix warnings on documnetation code blocks
mo-rickywong Dec 11, 2025
48297c2
Remove some whitespace
mo-rickywong Dec 11, 2025
9f1b3b3
Some tidy and add comment on multiple configurations
mo-rickywong Dec 12, 2025
2f9f624
Update documentation/source/how_it_works/build_system/configurator.rst
mo-rickywong Dec 17, 2025
92c6991
Update documentation/source/how_it_works/build_system/configurator.rst
mo-rickywong Dec 17, 2025
30aa7ee
Update infrastructure/build/tools/configurator/templates/config_type.…
mo-rickywong Dec 17, 2025
8f03526
Update infrastructure/build/tools/configurator/templates/config_type.…
mo-rickywong Dec 17, 2025
4db7e94
Update documentation/source/how_it_works/build_system/configurator.rst
mo-rickywong Dec 17, 2025
cbcbe47
Update to config_loader template to warn of untagged duplicate namelists
mo-rickywong Dec 18, 2025
430347a
Add changes in response to reviewer comments
mo-rickywong Dec 18, 2025
e706297
Merge remote-tracking branch 'origin/main' into ConfigTypeAccess
mo-rickywong Dec 18, 2025
3b82a0c
Empty Commit
mo-rickywong Dec 19, 2025
dbebd0b
Merge remote-tracking branch 'origin/main' into ConfigTypeAccess
mo-rickywong Dec 19, 2025
3d5215c
Fix documentation build
mo-rickywong Dec 19, 2025
f091ca6
Update code in response to reviewer comments
mo-rickywong Jan 8, 2026
b7f6d15
Merge branch 'main' into ConfigTypeAccess
mo-rickywong Jan 8, 2026
6d0b392
Merge branch 'main' into ConfigTypeAccess
mo-rickywong Jan 8, 2026
1c5cc07
Convert last few cases using interim access method
mo-rickywong Jan 8, 2026
867f357
Revert this file as it would require a linked ticket
mo-rickywong Jan 8, 2026
9ba4c1f
Revert this file as it will require a linked ticket
mo-rickywong Jan 8, 2026
c08ffaf
Merge branch 'main' into ConfigTypeAccess
MatthewHambley Jan 9, 2026
ed6a5aa
Save further work to purge LFric Core of configuration object interme…
mo-rickywong Jan 23, 2026
50f20ad
Update the configurator code to avoid possible memory allocation issu…
mo-rickywong Feb 2, 2026
8ddc65f
Merge branch 'main' into IntermediateApiPurge
mo-rickywong Feb 2, 2026
9e73854
Revert contributors file
mo-rickywong Feb 3, 2026
9fb8b8d
Revert Contributors back to that of main
mo-rickywong Feb 3, 2026
23646ae
Merge branch 'main' into IntermediateApiPurge
mo-rickywong Feb 3, 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
20 changes: 8 additions & 12 deletions applications/coupled/source/coupled.f90
Original file line number Diff line number Diff line change
Expand Up @@ -41,27 +41,23 @@ program coupled
call parse_command_line( filename, component_name=cpl_component_name )

call modeldb%values%initialise( 'values', 5 )

call modeldb%configuration%initialise( program_name, table_len=10 )
call modeldb%config%initialise( program_name )

write(log_scratch_space,'(A)') &
'Application built with '// trim(precision_real) // &
'-bit real numbers.'
call log_event( log_scratch_space, log_level_trace )
call modeldb%values%add_key_value('cpl_name', cpl_component_name)

modeldb%mpi => global_mpi

call modeldb%values%add_key_value('cpl_name', cpl_component_name)
call init_comm( "coupled", modeldb )

call init_config( filename, &
coupled_required_namelists, &
configuration=modeldb%configuration, &
call init_config( filename, coupled_required_namelists, &
config=modeldb%config )

call init_logger( modeldb%mpi%get_comm(), &
program_name//"_"//cpl_component_name )

write(log_scratch_space,'(A)') &
'Application built with '// trim(precision_real) // &
'-bit real numbers.'
call log_event( log_scratch_space, log_level_trace )

call init_collections()
call init_time( modeldb )
deallocate( filename )
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ subroutine initialise( program_name, modeldb, calendar )
! Create the required meshes
stencil_depth = 1
apply_partition_check = .false.
call init_mesh( modeldb%configuration, &
call init_mesh( modeldb%config, &
modeldb%mpi%get_comm_rank(), &
modeldb%mpi%get_comm_size(), &
base_mesh_names, extrusion, &
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ module io_demo_constants_mod
! Infrastructure
use constants_mod, only: i_def, r_def, l_def, &
str_def, str_short
use driver_modeldb_mod, only: modeldb_type
use field_collection_mod, only: field_collection_type
use field_mod, only: field_type
use fs_continuity_mod, only: W2
Expand Down Expand Up @@ -49,16 +48,14 @@ module io_demo_constants_mod
contains

!> @brief Subroutine to create the finite element constants
!> @param[in] modeldb Application state object
!> @param[in] mesh The prime model mesh
!> @param[in] chi Coordinate fields
!> @param[in] panel_id Panel_id field
subroutine create_io_demo_constants(modeldb, mesh, chi, panel_id)
subroutine create_io_demo_constants(mesh, chi, panel_id)

implicit none

! Arguments
type(modeldb_type), intent(in) :: modeldb
type(mesh_type), pointer, intent(in) :: mesh
type(field_type), target, intent(in) :: chi(:)
type(field_type), target, intent(in) :: panel_id
Expand Down
2 changes: 1 addition & 1 deletion applications/io_demo/source/driver/init_io_demo_mod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ subroutine init_io_demo(modeldb, mesh, chi, panel_id)
! Create io_demo runtime constants. This creates various things
! needed by the fem algorithms such as mass matrix operators, mass
! matrix diagonal fields and the geopotential field
call create_io_demo_constants(modeldb, mesh, chi, panel_id)
call create_io_demo_constants(mesh, chi, panel_id)

call log_event( 'io_demo: Miniapp initialised', LOG_LEVEL_TRACE )

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@ subroutine initialise(program_name, modeldb)
! ---------------------------------------------------------
stencil_depth = 1
check_partitions = .false.
call init_mesh( modeldb%configuration, &
call init_mesh( modeldb%config, &
modeldb%mpi%get_comm_rank(), &
modeldb%mpi%get_comm_size(), &
base_mesh_names, extrusion, &
Expand Down
48 changes: 24 additions & 24 deletions applications/io_demo/source/io_demo.f90
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@ program io_demo

use cli_mod, only : parse_command_line
use driver_collections_mod, only : init_collections, final_collections
use constants_mod, only : precision_real
use constants_mod, only : precision_real,l_def, &
str_max_filename
use driver_comm_mod, only : init_comm, final_comm
use driver_config_mod, only : init_config, final_config
use driver_log_mod, only : init_logger, final_logger
Expand All @@ -25,46 +26,45 @@ program io_demo
use io_demo_mod, only: io_demo_required_namelists
use io_demo_driver_mod, only: initialise, step, finalise
use timing_mod, only: init_timing, final_timing
use io_config_mod, only: timer_output_path
use namelist_mod, only: namelist_type

implicit none

! The technical and scientific state
type(modeldb_type) :: modeldb
character(*), parameter :: program_name = "io_demo"
character(:), allocatable :: filename
type(namelist_type), pointer :: io_nml
logical :: lsubroutine_timers
integer, parameter :: default_seed = 123456789
type(modeldb_type) :: modeldb
character(*), parameter :: program_name = "io_demo"
character(:), allocatable :: filename
integer, parameter :: default_seed = 123456789

type(random_number_generator_type), pointer :: rng

character(str_max_filename) :: timer_output_path
logical(l_def) :: subroutine_timers

call parse_command_line( filename )
call modeldb%values%initialise()
call modeldb%configuration%initialise( program_name, table_len=10 )
call modeldb%config%initialise(program_name)
call modeldb%values%initialise()

modeldb%mpi => global_mpi

call init_comm(program_name, modeldb)
call init_config(filename, io_demo_required_namelists, &
config=modeldb%config)

call init_logger( modeldb%mpi%get_comm(), program_name )

write(log_scratch_space,&
'("Application built with ", A, "-bit real numbers")') &
trim(precision_real)
call log_event( log_scratch_space, log_level_trace )
modeldb%mpi => global_mpi
call init_comm(program_name, modeldb)

call init_config(filename, &
io_demo_required_namelists, &
configuration=modeldb%configuration, &
config=modeldb%config)
subroutine_timers = modeldb%config%io%subroutine_timers()
timer_output_path = modeldb%config%io%timer_output_path()
call init_timing( modeldb%mpi%get_comm(), subroutine_timers, &
program_name, timer_output_path )

deallocate( filename )

call init_logger( modeldb%mpi%get_comm(), program_name )
io_nml => modeldb%configuration%get_namelist('io')
call io_nml%get_value('subroutine_timers', lsubroutine_timers)
call init_timing( modeldb%mpi%get_comm(), lsubroutine_timers, program_name, timer_output_path )
nullify( io_nml )
call init_collections()
call init_time(modeldb)
deallocate( filename )

allocate(rng, source=random_number_generator_type(default_seed))
call modeldb%values%add_key_value("rng", rng)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,7 @@ subroutine initialise( program_name, modeldb)
stencil_depth = 1
check_partitions = .false.

call init_mesh( modeldb%configuration, &
call init_mesh( modeldb%config, &
modeldb%mpi%get_comm_rank(), &
modeldb%mpi%get_comm_size(), &
base_mesh_names, extrusion, &
Expand Down
20 changes: 8 additions & 12 deletions applications/lbc_demo/source/lbc_demo.f90
Original file line number Diff line number Diff line change
Expand Up @@ -37,22 +37,16 @@ program lbc_demo
integer :: geometry, topology

call parse_command_line( filename )
call modeldb%config%initialise( program_name )

write(log_scratch_space, '(A)') &
'Application built with ' // trim(precision_real) // '-bit real numbers'
call log_event( log_scratch_space, log_level_trace )

! The technical and scientific state
modeldb%mpi => global_mpi
call modeldb%configuration%initialise( program_name, table_len=10 )
call modeldb%config%initialise( program_name )

call init_comm(program_name, modeldb)

call init_config(filename, required_namelists, &
configuration=modeldb%configuration, &
call init_config(filename, required_namelists, &
config=modeldb%config)

call init_logger( modeldb%mpi%get_comm(), program_name )

! Before anything else, test that the mesh provided was a regional domain.
! This application is not intended for cubed-sphere meshes.
geometry = modeldb%config%base_mesh%geometry()
Expand All @@ -64,10 +58,12 @@ program lbc_demo
call log_event( 'Cubed-Sphere mesh is not supported.', log_level_error)
end if

call init_logger( modeldb%mpi%get_comm(), program_name )
write(log_scratch_space, '(A)') &
'Application built with ' // trim(precision_real) // '-bit real numbers'
call log_event( log_scratch_space, log_level_trace )

call init_collections()
call init_time(modeldb)

deallocate( filename )

! Create the depository field collection and place it in modeldb
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ module simple_diffusion_constants_mod
! Infrastructure
use constants_mod, only: i_def, r_def, l_def, &
str_def, str_short
use driver_modeldb_mod, only: modeldb_type
use field_collection_mod, only: field_collection_type
use field_mod, only: field_type
use fs_continuity_mod, only: W2
Expand Down Expand Up @@ -49,19 +48,16 @@ module simple_diffusion_constants_mod
contains

!> @brief Subroutine to create the finite element constants
!> @param[in] modeldb Application state object
!> @param[in] mesh The prime model mesh
!> @param[in] chi Coordinate fields
!> @param[in] panel_id Panel_id field
subroutine create_simple_diffusion_constants( modeldb, &
mesh, &
subroutine create_simple_diffusion_constants( mesh, &
chi, &
panel_id )

implicit none

! Arguments
type(modeldb_type), intent(in) :: modeldb
type(mesh_type), pointer, intent(in) :: mesh
type(field_type), target, intent(in) :: chi(:)
type(field_type), target, intent(in) :: panel_id
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,7 @@ module init_simple_diffusion_mod
use function_space_collection_mod, only : function_space_collection
use function_space_mod, only : function_space_type
use fs_continuity_mod, only : Wtheta
use log_mod, only : log_event, &
LOG_LEVEL_TRACE
use log_mod, only : log_event, log_level_trace
use mesh_mod, only : mesh_type
use lfric_xios_write_mod, only : write_field_generic
use simple_diffusion_constants_mod, only : create_simple_diffusion_constants
Expand Down Expand Up @@ -64,7 +63,8 @@ subroutine init_simple_diffusion(mesh, chi, panel_id, modeldb)

fs => function_space_collection%get_fs(mesh, order_h, order_v, Wtheta)

call log_event( 'simple_diffusion: Initialising miniapp ...', LOG_LEVEL_TRACE )
call log_event( 'simple_diffusion: Initialising miniapp ...', &
log_level_trace )

! Create prognostic fields
! Creates a field in the Wtheta function space
Expand All @@ -87,9 +87,9 @@ subroutine init_simple_diffusion(mesh, chi, panel_id, modeldb)
! Create simple_diffusion runtime constants. This creates various things
! needed by the fem algorithms such as mass matrix operators, mass
! matrix diagonal fields and the geopotential field
call create_simple_diffusion_constants(modeldb, mesh, chi, panel_id)
call create_simple_diffusion_constants(mesh, chi, panel_id)

call log_event( 'simple_diffusion: Miniapp initialised', LOG_LEVEL_TRACE )
call log_event( 'simple_diffusion: Miniapp initialised', log_level_trace )

end subroutine init_simple_diffusion

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ subroutine initialise( program_name, modeldb)
! ---------------------------------------------------------
stencil_depth = 1
check_partitions = .false.
call init_mesh( modeldb%configuration, &
call init_mesh( modeldb%config, &
modeldb%mpi%get_comm_rank(), &
modeldb%mpi%get_comm_size(), &
base_mesh_names, extrusion, &
Expand Down
20 changes: 10 additions & 10 deletions applications/simple_diffusion/source/simple_diffusion.f90
Original file line number Diff line number Diff line change
Expand Up @@ -36,25 +36,25 @@ program simple_diffusion

call parse_command_line( filename )
call modeldb%values%initialise()
call modeldb%configuration%initialise( program_name, table_len=10 )
call modeldb%config%initialise( program_name )

write(log_scratch_space,&
'("Application built with ", A, "-bit real numbers")') &
trim(precision_real)
call log_event( log_scratch_space, log_level_trace )
modeldb%mpi => global_mpi
call init_comm(program_name, modeldb)

call init_config( filename, simple_diffusion_required_namelists, &
configuration=modeldb%configuration, &
call init_comm(program_name, modeldb)
call init_config( filename, &
simple_diffusion_required_namelists, &
config=modeldb%config )

deallocate( filename )

call init_logger( modeldb%mpi%get_comm(), program_name )

write(log_scratch_space,&
'("Application built with ", A, "-bit real numbers")') &
trim(precision_real)
call log_event( log_scratch_space, log_level_trace )

call init_collections()
call init_time( modeldb )
deallocate( filename )

allocate(rng, source=random_number_generator_type(default_seed))
call modeldb%values%add_key_value("rng", rng)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,7 @@ contains
integer(tik) :: id

if ( LPROF ) call start_timing( id, 'skeleton_constants_alg' )

call log_event( "Skeleton: creating runtime constants", LOG_LEVEL_INFO )

order_h = modeldb%config%finite_element%element_order_h()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@ subroutine initialise(program_name, modeldb)
!-----------------------------------------------------------------------
stencil_depth = 1
apply_partition_check = .false.
call init_mesh( modeldb%configuration, &
call init_mesh( modeldb%config, &
modeldb%mpi%get_comm_rank(), &
modeldb%mpi%get_comm_size(), &
base_mesh_names, extrusion, &
Expand Down
13 changes: 6 additions & 7 deletions applications/skeleton/source/skeleton.f90
Original file line number Diff line number Diff line change
Expand Up @@ -37,22 +37,21 @@ program skeleton
character(:), allocatable :: filename

call parse_command_line( filename )
call modeldb%configuration%initialise( program_name, table_len=10 )
call modeldb%config%initialise(program_name)

write(log_scratch_space,'(A)') &
'Application built with '// trim(precision_real) // &
'-bit real numbers.'
call log_event( log_scratch_space, log_level_trace )

modeldb%mpi => global_mpi

call init_comm( "skeleton", modeldb )
call init_config( filename, skeleton_required_namelists, &
configuration=modeldb%configuration, &
config=modeldb%config )

call init_logger( modeldb%mpi%get_comm(), program_name )

write(log_scratch_space,'(A)') &
'Application built with '// trim(precision_real) // &
'-bit real numbers.'
call log_event( log_scratch_space, log_level_trace )

call init_collections()
call init_time( modeldb )
deallocate( filename )
Expand Down
13 changes: 12 additions & 1 deletion components/driver/source/driver_coordinates_mod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,18 @@ subroutine assign_coordinate_field(chi, panel_id, mesh)
'stretching factor is not 1 and mesh is not cubed-sphere', &
log_level_error &
)
end if
end if


! if ( geometry == geometry_spherical .and. &
! topology == topology_fully_periodic) then
! stretch_factor = get_stretch_factor()
! else
! stretch_factor = 1.0_r_def
! end if

! inverse_rot_matrix = get_inverse_mesh_rotation_matrix()
! to_rotate = get_to_rotate()
Comment on lines +173 to +181
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Adding commented out code?


panel_id_proxy%data = 1.0_r_def

Expand Down
Loading
Loading