Skip to content
Open
Show file tree
Hide file tree
Changes from 44 commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
8c7902d
add only for use o_param for wp
suvarchal Jul 5, 2025
9d7a99b
remove needless use o_param
suvarchal Jul 5, 2025
e1caef9
git add only for r_earth use
suvarchal Jul 5, 2025
69035d2
remove needless modules and insterfaces
suvarchal Jul 5, 2025
fd86415
remove previous interface references in relavent files
suvarchal Jul 5, 2025
9aca0ff
make oce_setup_step a module, remove needless interfaces and update r…
suvarchal Jul 5, 2025
07339a0
modularize oce_mesh.F90 with subroutines, remove needless legacy modu…
suvarchal Jul 5, 2025
fe122cb
modularize solver and remove needless legacy module-interfaces and up…
suvarchal Jul 5, 2025
59b63a0
modularize oce_dyn.F90 procedures, remove needless module-interfaces …
suvarchal Jul 5, 2025
573d554
oops missed oce_ale.F90 changes, modularize oce_dyn.F90 procedures, r…
suvarchal Jul 5, 2025
bc8b856
modularize oce_ale_tracer.F90, remove needless module-interfaces and …
suvarchal Jul 5, 2025
d4de0cf
modularize oce_ale_vel_rhs.F90, remove legacy module-interfaces, and …
suvarchal Jul 5, 2025
21352cf
modularize oce_adv_tra_driver.F90, remove legacy module-interfaces, a…
suvarchal Jul 5, 2025
76fbfbf
modularize oce_muscl_adv.F90, remove legacy module-interfaces, and up…
suvarchal Jul 5, 2025
e469493
oops missed a module: modularize oce_muscl_adv.F90, remove legacy mod…
suvarchal Jul 5, 2025
539dba5
modularize hardest src/oce_ale_pressure_bv.F90, make functions with p…
suvarchal Jul 6, 2025
8cb2786
Merge branch 'main' into clean_up_interfaces
suvarchal Jul 6, 2025
7846a0d
remove needless modules-interfaces for oce_adv_tra_driver.F90 and up…
suvarchal Jul 6, 2025
ad56252
modularize src/oce_adv_tra_driver.F90 src/oce_adv_tra_hor.F90, remove…
suvarchal Jul 6, 2025
db1ab78
A complicated module gen_modules_partitioning.F90, modularize and up…
suvarchal Jul 6, 2025
1ab73c5
modularize write_step_info.F90
suvarchal Jul 6, 2025
f7da71a
add blowup test
suvarchal Jul 6, 2025
bb39b51
Merge branch 'main' into clean_up_interfaces
suvarchal Jul 15, 2025
c1fe1b0
Merge branch 'main' into clean_up_interfaces
suvarchal Jul 16, 2025
f4935cc
Revert "modularize write_step_info.F90"
suvarchal Jul 16, 2025
9287d0e
Revert "add blowup test"
suvarchal Jul 16, 2025
dca8814
Revert " A complicated module gen_modules_partitioning.F90, modulariz…
suvarchal Jul 16, 2025
4b52eab
Revert "modularize src/oce_adv_tra_driver.F90 src/oce_adv_tra_hor.F90…
suvarchal Jul 16, 2025
c339630
Merge branch 'main' into clean_up_interfaces
suvarchal Jul 24, 2025
53df38d
Merge branch 'main' into clean_up_interfaces
suvarchal Aug 19, 2025
1f8cda3
FIX: merge coupling interfaces
suvarchal Sep 2, 2025
3621285
Merge branch 'main' into clean_up_interfaces
suvarchal Sep 2, 2025
c674757
Merge branch 'main' into clean_up_interfaces
suvarchal Sep 5, 2025
dc1a2cb
Merge branch 'main' into clean_up_interfaces
suvarchal Sep 8, 2025
ff15437
Fix: update fesom_meshdiag.F90 to use cleaned up interfaces and imports
suvarchal Sep 8, 2025
70ee9ba
Merge branch 'main' into clean_up_interfaces
suvarchal Sep 8, 2025
bb46481
Fix: missing WP import for cpl driver
suvarchal Sep 11, 2025
d3e9ef7
Merge branch 'main' into clean_up_interfaces
suvarchal Sep 12, 2025
939a54a
Merge branch 'main' into clean_up_interfaces
suvarchal Sep 12, 2025
d4ce390
Merge branch 'main' into clean_up_interfaces
suvarchal Sep 17, 2025
320d480
Merge branch 'main' into clean_up_interfaces
suvarchal Sep 17, 2025
bb396ce
Fix: use new oce_mesh_module for elem_center, edge_center
suvarchal Sep 17, 2025
4927f4d
Fix: missed intent inout in cpl_driver.F90 that needs to be same as i…
suvarchal Sep 17, 2025
42affed
Fix: elem_center and edge_center dont need to have intent out for mes…
suvarchal Sep 17, 2025
fe7ed43
Feature: modularize mesh_part routines
suvarchal Sep 17, 2025
e2ab46f
Feature: add mesh utils module to meshpart cmakelists and remove it f…
suvarchal Sep 17, 2025
dc39aaa
Merge pull request #779 from FESOM/clean_up_meshpart
suvarchal Sep 18, 2025
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
2 changes: 1 addition & 1 deletion src/MOD_MESH.F90
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
!==========================================================
MODULE MOD_MESH
USE O_PARAM
USE O_PARAM, only : WP
USE MOD_WRITE_BINARY_ARRAYS
USE MOD_READ_BINARY_ARRAYS
USE, intrinsic :: ISO_FORTRAN_ENV, only : int32
Expand Down
1 change: 0 additions & 1 deletion src/MOD_PARTIT.F90
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
!==========================================================
! Variables to organize parallel work
module MOD_PARTIT
USE O_PARAM
USE, intrinsic :: ISO_FORTRAN_ENV, only : int32
USE MOD_WRITE_BINARY_ARRAYS
USE MOD_READ_BINARY_ARRAYS
Expand Down
5 changes: 3 additions & 2 deletions src/cpl_driver.F90
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,9 @@ module cpl_driver
!
use mod_oasis ! oasis module
use g_config, only : dt, use_icebergs, lwiso, compute_oasis_corners
use o_param, only : rad
use o_param, only : rad, WP
USE MOD_PARTIT
use oce_mesh_module, only : elem_center, edge_center
use mpi
implicit none
save
Expand Down Expand Up @@ -393,7 +394,7 @@ subroutine cpl_oasis3mct_define_unstr(partit, mesh)
use mod_oasis, only: oasis_write_area, oasis_write_mask
implicit none
save
type(t_mesh), intent(in), target :: mesh
type(t_mesh), intent(in), target :: mesh
type(t_partit), intent(inout), target :: partit
!-------------------------------------------------------------------
! Definition of grid and field information for ocean
Expand Down
2 changes: 2 additions & 0 deletions src/fesom_meshdiag.F90
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ program fesom_meshdiag
use g_config
use g_comm_auto
use io_mesh_info
use oce_setup_step_module, only: tracer_init, ocean_setup, dynamics_init, arrays_init
use oce_mesh_module, only: mesh_setup, check_mesh_consistency
use, intrinsic :: iso_fortran_env, only : real32

implicit none
Expand Down
12 changes: 6 additions & 6 deletions src/fesom_module.F90
Original file line number Diff line number Diff line change
Expand Up @@ -19,15 +19,15 @@ module fesom_main_storage_module
use io_mesh_info
use diagnostics
use mo_tidal
use tracer_init_interface
use ocean_setup_interface
use oce_setup_step_module, only: tracer_init, ocean_setup, dynamics_init, arrays_init
use ice_setup_interface
use ocean2ice_interface
use oce_fluxes_interface
use update_atm_forcing_interface
use before_oce_step_interface
use oce_timestep_ale_interface
use read_mesh_interface
use forcing_coupling_interfaces, only: update_atm_forcing
use oce_setup_step_module, only: before_oce_step
use oce_ale_module, only: oce_timestep_ale, restart_thickness_ale
use oce_mesh_module, only: mesh_setup, check_mesh_consistency
use oce_dyn_module, only: compute_vel_nodes
use fesom_version_info_module
use command_line_options_module
use, intrinsic :: iso_fortran_env, only : real32
Expand Down
2 changes: 1 addition & 1 deletion src/fvom_init.F90
Original file line number Diff line number Diff line change
Expand Up @@ -1419,7 +1419,7 @@ subroutine edge_center(n1, n2, x, y, mesh)
implicit none
integer :: n1, n2 ! nodes of the edge
real(kind=WP) :: x, y, a(2), b(2)
type(t_mesh), intent(inout), target :: mesh
type(t_mesh), intent(in), target :: mesh
#include "associate_mesh_ini.h"

a=coord_nod2D(:,n1)
Expand Down
92 changes: 13 additions & 79 deletions src/gen_forcing_couple.F90
Original file line number Diff line number Diff line change
@@ -1,77 +1,14 @@
module force_flux_consv_interface
interface
subroutine force_flux_consv(field2d, mask, n, h, do_stats, partit, mesh)
use mod_mesh
USE MOD_PARTIT
USE MOD_PARSUP
type(t_mesh), intent(in), target :: mesh
type(t_partit), intent(inout), target :: partit
real(kind=WP), intent (inout) :: field2d(partit%myDim_nod2D+partit%eDim_nod2D)
real(kind=WP), intent (in) :: mask(partit%myDim_nod2D+partit%eDim_nod2D)
integer, intent (in) :: n, h
logical, intent (in) :: do_stats
end subroutine force_flux_consv
end interface
end module force_flux_consv_interface
module compute_residual_interface
interface
subroutine compute_residual(field2d, mask, n, partit, mesh)
use mod_mesh
USE MOD_PARTIT
USE MOD_PARSUP
type(t_mesh), intent(in), target :: mesh
type(t_partit), intent(inout), target :: partit
real(kind=WP), intent (in) :: field2d(partit%myDim_nod2D+partit%eDim_nod2D)
real(kind=WP), intent (in) :: mask(partit%myDim_nod2D+partit%eDim_nod2D)
integer, intent (in) :: n
end subroutine compute_residual
end interface
end module compute_residual_interface
module integrate_2D_interface
interface
subroutine integrate_2D(flux_global, flux_local, eff_vol, field2d, mask, partit, mesh)
use mod_mesh
USE MOD_PARTIT
USE MOD_PARSUP
type(t_mesh), intent(in), target :: mesh
type(t_partit), intent(in), target :: partit
real(kind=WP), intent (out) :: flux_global(2), flux_local(2)
real(kind=WP), intent (out) :: eff_vol(2)
real(kind=WP), intent (in) :: field2d(partit%myDim_nod2D+partit%eDim_nod2D)
real(kind=WP), intent (in) :: mask(partit%myDim_nod2D +partit%eDim_nod2D)
end subroutine integrate_2D
end interface
end module integrate_2D_interface

module update_atm_forcing_interface
interface
subroutine update_atm_forcing(istep, ice, tracers, dynamics, partit, mesh)
USE MOD_TRACER
USE MOD_ICE
USE MOD_PARTIT
USE MOD_PARSUP
USE MOD_MESH
USE MOD_DYN
integer, intent(in) :: istep
type(t_ice), intent(inout), target :: ice
type(t_tracer), intent(in), target :: tracers
type(t_partit), intent(inout), target :: partit
type(t_mesh), intent(in), target :: mesh
type(t_dyn) , intent(in), target :: dynamics
end subroutine update_atm_forcing
end interface
end module update_atm_forcing_interface

module net_rec_from_atm_interface
interface
subroutine net_rec_from_atm(action, partit)
USE MOD_PARTIT
USE MOD_PARSUP
logical, intent(in) :: action
type(t_partit), intent(inout), target :: partit
end subroutine net_rec_from_atm
end interface
end module net_rec_from_atm_interface
module forcing_coupling_interfaces
use mod_mesh
USE MOD_PARTIT
USE MOD_PARSUP
USE MOD_TRACER
USE MOD_ICE
USE MOD_DYN

implicit none

contains
! Routines for updating ocean surface forcing fields
!-------------------------------------------------------------------------
subroutine update_atm_forcing(istep, ice, tracers, dynamics, partit, mesh)
Expand All @@ -89,15 +26,13 @@ subroutine update_atm_forcing(istep, ice, tracers, dynamics, partit, mesh)
use g_config
use g_comm_auto
use g_rotate_grid
use net_rec_from_atm_interface
use g_sbf, only: sbc_do
use g_sbf, only: atmdata, i_totfl, i_xwind, i_ywind, i_xstre, i_ystre, i_humi, i_qsr, i_qlw, i_tair, i_prec, i_mslp, i_cloud, i_snow, &
l_xwind, l_ywind, l_xstre, l_ystre, l_humi, l_qsr, l_qlw, l_tair, l_prec, l_mslp, l_cloud, l_snow
#if defined (__oasis)
use cpl_driver
#endif
use gen_bulk
use force_flux_consv_interface

implicit none
integer, intent(in) :: istep
Expand Down Expand Up @@ -623,8 +558,6 @@ SUBROUTINE force_flux_consv(field2d, mask, n, h, do_stats, partit, mesh)
USE MOD_PARSUP
use cpl_driver, only : nrecv, cpl_recv, a2o_fcorr_stat
use o_PARAM, only : mstep, WP
use compute_residual_interface
use integrate_2D_interface
IMPLICIT NONE
type(t_mesh), intent(in), target :: mesh
type(t_partit), intent(inout), target :: partit
Expand Down Expand Up @@ -743,7 +676,6 @@ SUBROUTINE compute_residual(field2d, mask, n, partit, mesh)
use MOD_MESH
USE MOD_PARTIT
USE MOD_PARSUP
use integrate_2D_interface

IMPLICIT NONE
type(t_mesh), intent(in), target :: mesh
Expand Down Expand Up @@ -875,3 +807,5 @@ SUBROUTINE net_rec_from_atm(action, partit)
end if
END SUBROUTINE net_rec_from_atm
#endif

end module forcing_coupling_interfaces
2 changes: 1 addition & 1 deletion src/gen_ic3d.F90
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ MODULE g_ic3d
USE g_comm_auto
USE g_support
USE g_config, only: dummy, ClimateDataPath, use_cavity
use oce_ale_pressure_bv_module, only: insitu2pot

IMPLICIT NONE

Expand Down Expand Up @@ -496,7 +497,6 @@ SUBROUTINE do_ic3d(tracers, partit, mesh)
!!
!! ** Purpose : read 3D initial conditions for tracers from netcdf and interpolate on model grid
!!----------------------------------------------------------------------
USE insitu2pot_interface
IMPLICIT NONE
type(t_mesh), intent(in), target :: mesh
type(t_partit), intent(inout), target :: partit
Expand Down
9 changes: 5 additions & 4 deletions src/gen_modules_cvmix_kpp.F90
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ module g_cvmix_kpp
use g_forcing_arrays
use g_support
use o_mixing_KPP_mod
use oce_ale_pressure_bv_module, only: densityJM_components
implicit none

!___Parameter for the init of KPP___________________________________________
Expand Down Expand Up @@ -431,8 +432,8 @@ subroutine calc_cvmix_kpp(ice, dynamics, tracers, partit, mesh)
! oce_ale_pressure_bf.F90 --> subroutine pressure_bv
! --> dbsfc(nz,node)
!!PS call densityJM_components(temp(1,node), salt(1,node), sfc_bulk_0, sfc_bulk_pz, sfc_bulk_pz2, sfc_rhopot, mesh)
call densityJM_components(temp(nun,node), salt(nun,node), sfc_bulk_0, sfc_bulk_pz, sfc_bulk_pz2, sfc_rhopot, mesh)
call densityJM_components(temp(nz, node), salt(nz, node), bulk_0, bulk_pz, bulk_pz2, rhopot, mesh)
call densityJM_components(temp(nun,node), salt(nun,node), sfc_bulk_0, sfc_bulk_pz, sfc_bulk_pz2, sfc_rhopot)
call densityJM_components(temp(nz, node), salt(nz, node), bulk_0, bulk_pz, bulk_pz2, rhopot)
rho_nz = bulk_0 + Z_3d_n(nz,node)*(bulk_pz + Z_3d_n(nz,node)*bulk_pz2)
rho_nz = rho_nz*rhopot/(rho_nz+0.1_WP*Z_3d_n(nz,node))-density_0
rho_sfc = sfc_bulk_0 + Z_3d_n(nz,node)*(sfc_bulk_pz + Z_3d_n(nz,node)*sfc_bulk_pz2)
Expand Down Expand Up @@ -489,8 +490,8 @@ subroutine calc_cvmix_kpp(ice, dynamics, tracers, partit, mesh)
! --> bring density of surface point adiabatically to the same
! depth level as the deep point --> than calculate bouyancy
! difference
call densityJM_components(sfc_temp, sfc_salt, sfc_bulk_0, sfc_bulk_pz, sfc_bulk_pz2, sfc_rhopot, mesh)
call densityJM_components(temp(nz,node), salt(nz,node), bulk_0, bulk_pz, bulk_pz2, rhopot, mesh)
call densityJM_components(sfc_temp, sfc_salt, sfc_bulk_0, sfc_bulk_pz, sfc_bulk_pz2, sfc_rhopot)
call densityJM_components(temp(nz,node), salt(nz,node), bulk_0, bulk_pz, bulk_pz2, rhopot)
rho_nz = bulk_0 + Z_3d_n(nz,node)*(bulk_pz + Z_3d_n(nz,node)*bulk_pz2)
rho_nz = rho_nz*rhopot/(rho_nz+0.1_WP*Z_3d_n(nz,node))-density_0
rho_sfc = sfc_bulk_0 + Z_3d_n(nz,node)*(sfc_bulk_pz + Z_3d_n(nz,node)*sfc_bulk_pz2)
Expand Down
65 changes: 22 additions & 43 deletions src/oce_adv_tra_driver.F90
Original file line number Diff line number Diff line change
@@ -1,45 +1,22 @@
module oce_adv_tra_driver_interfaces
interface
subroutine do_oce_adv_tra(dt, vel, w, wi, we, tr_num, dynamics, tracers, partit, mesh)
use MOD_MESH
use MOD_TRACER
USE MOD_PARTIT
USE MOD_PARSUP
USE MOD_DYN
real(kind=WP), intent(in), target :: dt
integer, intent(in) :: tr_num
type(t_partit), intent(inout), target :: partit
type(t_mesh) , intent(in) , target :: mesh
type(t_tracer), intent(inout), target :: tracers
type(t_dyn) , intent(inout), target :: dynamics
real(kind=WP), intent(in) :: vel(2, mesh%nl-1, partit%myDim_elem2D+partit%eDim_elem2D)
real(kind=WP), intent(in), target :: W(mesh%nl, partit%myDim_nod2D+partit%eDim_nod2D)
real(kind=WP), intent(in), target :: WI(mesh%nl, partit%myDim_nod2D+partit%eDim_nod2D)
real(kind=WP), intent(in), target :: WE(mesh%nl, partit%myDim_nod2D+partit%eDim_nod2D)
end subroutine do_oce_adv_tra
end interface
end module oce_adv_tra_driver_interfaces
module oce_adv_tra_driver_module
use MOD_MESH
use MOD_TRACER
USE MOD_PARTIT
USE MOD_PARSUP
USE MOD_DYN
use g_comm_auto
use diagnostics
use oce_adv_tra_hor_interfaces
use oce_adv_tra_ver_interfaces
use oce_adv_tra_fct_module, only: oce_tra_adv_fct

implicit none

private
public :: do_oce_adv_tra, oce_tra_adv_flux2dtracer

contains

module oce_tra_adv_flux2dtracer_interface
interface
subroutine oce_tra_adv_flux2dtracer(dt, dttf_h, dttf_v, flux_h, flux_v, partit, mesh, use_lo, ttf, lo)
!update the solution for vertical and horizontal flux contributions
use MOD_MESH
USE MOD_PARTIT
USE MOD_PARSUP
real(kind=WP), intent(in), target :: dt
type(t_partit),intent(inout), target :: partit
type(t_mesh), intent(in), target :: mesh
real(kind=WP), intent(inout) :: dttf_h(mesh%nl-1, partit%myDim_nod2D+partit%eDim_nod2D)
real(kind=WP), intent(inout) :: dttf_v(mesh%nl-1, partit%myDim_nod2D+partit%eDim_nod2D)
real(kind=WP), intent(inout) :: flux_h(mesh%nl-1, partit%myDim_edge2D)
real(kind=WP), intent(inout) :: flux_v(mesh%nl, partit%myDim_nod2D)
logical, optional :: use_lo
real(kind=WP), optional :: ttf(mesh%nl-1, partit%myDim_nod2D+partit%eDim_nod2D)
real(kind=WP), optional :: lo (mesh%nl-1, partit%myDim_nod2D+partit%eDim_nod2D)
end subroutine oce_tra_adv_flux2dtracer
end interface
end module oce_tra_adv_flux2dtracer_interface
!
!
!===============================================================================
Expand All @@ -53,8 +30,8 @@ subroutine do_oce_adv_tra(dt, vel, w, wi, we, tr_num, dynamics, tracers, partit,
use diagnostics, only: ldiag_DVD
use oce_adv_tra_hor_interfaces
use oce_adv_tra_ver_interfaces
use oce_adv_tra_fct_interfaces
use oce_tra_adv_flux2dtracer_interface
use oce_adv_tra_fct_module, only: oce_tra_adv_fct
! oce_tra_adv_flux2dtracer is now in the same module
implicit none
real(kind=WP), intent(in), target :: dt
integer, intent(in) :: tr_num
Expand Down Expand Up @@ -573,3 +550,5 @@ subroutine oce_tra_adv_flux2dtracer(dt, dttf_h, dttf_v, flux_h, flux_v, partit,
#endif

end subroutine oce_tra_adv_flux2dtracer

end module oce_adv_tra_driver_module
47 changes: 15 additions & 32 deletions src/oce_adv_tra_fct.F90
Original file line number Diff line number Diff line change
@@ -1,36 +1,17 @@
module oce_adv_tra_fct_interfaces
interface
subroutine oce_adv_tra_fct_init(twork, partit, mesh)
use MOD_MESH
use MOD_TRACER
USE MOD_PARTIT
USE MOD_PARSUP
type(t_mesh), intent(in), target :: mesh
type(t_partit),intent(inout), target :: partit
type(t_tracer_work), intent(inout), target :: twork
end subroutine oce_adv_tra_fct_init
module oce_adv_tra_fct_module
use MOD_MESH
use MOD_TRACER
USE MOD_PARTIT
USE MOD_PARSUP
USE g_comm_auto

implicit none

private
public :: oce_adv_tra_fct_init, oce_tra_adv_fct

contains

subroutine oce_tra_adv_fct(dt, ttf, lo, adf_h, adf_v, fct_ttf_min, fct_ttf_max, fct_plus, fct_minus, AUX, partit, mesh)
use MOD_MESH
USE MOD_PARTIT
USE MOD_PARSUP
real(kind=WP), intent(in), target :: dt
type(t_partit),intent(inout), target :: partit
type(t_mesh), intent(in), target :: mesh
real(kind=WP), intent(inout) :: fct_ttf_min(mesh%nl-1, partit%myDim_nod2D+partit%eDim_nod2D)
real(kind=WP), intent(inout) :: fct_ttf_max(mesh%nl-1, partit%myDim_nod2D+partit%eDim_nod2D)
real(kind=WP), intent(in) :: ttf(mesh%nl-1, partit%myDim_nod2D+partit%eDim_nod2D)
real(kind=WP), intent(in) :: lo (mesh%nl-1, partit%myDim_nod2D+partit%eDim_nod2D)
real(kind=WP), intent(inout) :: adf_h(mesh%nl-1, partit%myDim_edge2D)
real(kind=WP), intent(inout) :: adf_v(mesh%nl, partit%myDim_nod2D)
real(kind=WP), intent(inout) :: fct_plus(mesh%nl-1, partit%myDim_nod2D)
real(kind=WP), intent(inout) :: fct_minus(mesh%nl, partit%myDim_nod2D)
real(kind=WP), intent(inout) :: AUX(:,:,:) !a large auxuary array
end subroutine oce_tra_adv_fct
end interface
end module oce_adv_tra_fct_interfaces
!
!
!===============================================================================
subroutine oce_adv_tra_fct_init(twork, partit, mesh)
use MOD_MESH
Expand Down Expand Up @@ -498,3 +479,5 @@ subroutine oce_tra_adv_fct(dt, ttf, lo, adf_h, adf_v, fct_ttf_min, fct_ttf_max,
!$ACC END DATA
#endif
end subroutine oce_tra_adv_fct

end module oce_adv_tra_fct_module
1 change: 1 addition & 0 deletions src/oce_adv_tra_hor.F90
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ end module oce_adv_tra_hor_interfaces
!===============================================================================
subroutine adv_tra_hor_upw1(vel, ttf, partit, mesh, flux, o_init_zero)
use MOD_MESH
use O_PARAM, only: r_earth
USE MOD_PARTIT
USE MOD_PARSUP
use g_comm_auto
Expand Down
Loading
Loading