From c2b67c768b7bfe6f3bb3a77a9e8d8a94bc8ee96c Mon Sep 17 00:00:00 2001 From: Claire Carouge Date: Wed, 27 Nov 2024 12:11:30 +1100 Subject: [PATCH] Add forgotten *_vec to the mpi code --- src/offline/cable_mpicommon.F90 | 2 +- src/offline/cable_mpimaster.F90 | 60 +++++++++++++++++++++++++++++++++ src/offline/cable_mpiworker.F90 | 40 ++++++++++++++++++++++ 3 files changed, 101 insertions(+), 1 deletion(-) diff --git a/src/offline/cable_mpicommon.F90 b/src/offline/cable_mpicommon.F90 index ddd0e5785..f16ee052e 100644 --- a/src/offline/cable_mpicommon.F90 +++ b/src/offline/cable_mpicommon.F90 @@ -29,7 +29,7 @@ MODULE cable_mpicommon ! base number of input fields: must correspond to CALLS to ! MPI_address (field ) in *_mpimaster/ *_mpiworker - INTEGER, PARAMETER :: nparam = 330 + INTEGER, PARAMETER :: nparam = 340 ! MPI: extra params sent only if nsoilparmnew is true INTEGER, PARAMETER :: nsoilnew = 1 diff --git a/src/offline/cable_mpimaster.F90 b/src/offline/cable_mpimaster.F90 index 5fcd013d5..1302d5178 100644 --- a/src/offline/cable_mpimaster.F90 +++ b/src/offline/cable_mpimaster.F90 @@ -3183,6 +3183,66 @@ SUBROUTINE master_cable_params (comm,met,air,ssnow,veg,bgc,soil,canopy,& & types(bidx), ierr) blen(bidx) = 1 + bidx = bidx + 1 + CALL MPI_Get_address (soil%zse_vec(off,1), displs(bidx), ierr) + CALL MPI_Type_create_hvector (ms, r2len, r2stride, MPI_BYTE, & + & types(bidx), ierr) + blen(bidx) = 1 + + bidx = bidx + 1 + CALL MPI_Get_address (soil%css_vec(off,1), displs(bidx), ierr) + CALL MPI_Type_create_hvector (ms, r2len, r2stride, MPI_BYTE, & + & types(bidx), ierr) + blen(bidx) = 1 + + bidx = bidx + 1 + CALL MPI_Get_address (soil%cnsd_vec(off,1), displs(bidx), ierr) + CALL MPI_Type_create_hvector (ms, r2len, r2stride, MPI_BYTE, & + & types(bidx), ierr) + blen(bidx) = 1 + + bidx = bidx + 1 + CALL MPI_Get_address (soil%clay_vec(off,1), displs(bidx), ierr) + CALL MPI_Type_create_hvector (ms, r2len, r2stride, MPI_BYTE, & + & types(bidx), ierr) + blen(bidx) = 1 + + bidx = bidx + 1 + CALL MPI_Get_address (soil%sand_vec(off,1), displs(bidx), ierr) + CALL MPI_Type_create_hvector (ms, r2len, r2stride, MPI_BYTE, & + & types(bidx), ierr) + blen(bidx) = 1 + + bidx = bidx + 1 + CALL MPI_Get_address (soil%silt_vec(off,1), displs(bidx), ierr) + CALL MPI_Type_create_hvector (ms, r2len, r2stride, MPI_BYTE, & + & types(bidx), ierr) + blen(bidx) = 1 + + bidx = bidx + 1 + CALL MPI_Get_address (soil%org_vec(off,1), displs(bidx), ierr) + CALL MPI_Type_create_hvector (ms, r2len, r2stride, MPI_BYTE, & + & types(bidx), ierr) + blen(bidx) = 1 + + bidx = bidx + 1 + CALL MPI_Get_address (soil%rhosoil_vec(off,1), displs(bidx), ierr) + CALL MPI_Type_create_hvector (ms, r2len, r2stride, MPI_BYTE, & + & types(bidx), ierr) + blen(bidx) = 1 + + bidx = bidx + 1 + CALL MPI_Get_address (soil%smpc_vec(off,1), displs(bidx), ierr) + CALL MPI_Type_create_hvector (ms, r2len, r2stride, MPI_BYTE, & + & types(bidx), ierr) + blen(bidx) = 1 + + bidx = bidx + 1 + CALL MPI_Get_address (soil%wbc_vec(off,1), displs(bidx), ierr) + CALL MPI_Type_create_hvector (ms, r2len, r2stride, MPI_BYTE, & + & types(bidx), ierr) + blen(bidx) = 1 + !1D bidx = bidx + 1 diff --git a/src/offline/cable_mpiworker.F90 b/src/offline/cable_mpiworker.F90 index 9f901a553..dfaf7a126 100644 --- a/src/offline/cable_mpiworker.F90 +++ b/src/offline/cable_mpiworker.F90 @@ -2263,6 +2263,46 @@ SUBROUTINE worker_cable_params (comm,met,air,ssnow,veg,bgc,soil,canopy,& bidx = bidx + 1 CALL MPI_Get_address (soil%sfc_vec, displs(bidx), ierr) blen(bidx) = ms * r2len + + bidx = bidx + 1 + CALL MPI_Get_address (soil%zse_vec, displs(bidx), ierr) + blen(bidx) = ms * r2len + + bidx = bidx + 1 + CALL MPI_Get_address (soil%css_vec, displs(bidx), ierr) + blen(bidx) = ms * r2len + + bidx = bidx + 1 + CALL MPI_Get_address (soil%cnsd_vec, displs(bidx), ierr) + blen(bidx) = ms * r2len + + bidx = bidx + 1 + CALL MPI_Get_address (soil%clay_vec, displs(bidx), ierr) + blen(bidx) = ms * r2len + + bidx = bidx + 1 + CALL MPI_Get_address (soil%sand_vec, displs(bidx), ierr) + blen(bidx) = ms * r2len + + bidx = bidx + 1 + CALL MPI_Get_address (soil%silt_vec, displs(bidx), ierr) + blen(bidx) = ms * r2len + + bidx = bidx + 1 + CALL MPI_Get_address (soil%org_vec, displs(bidx), ierr) + blen(bidx) = ms * r2len + + bidx = bidx + 1 + CALL MPI_Get_address (soil%rhosoil_vec, displs(bidx), ierr) + blen(bidx) = ms * r2len + + bidx = bidx + 1 + CALL MPI_Get_address (soil%smpc_vec, displs(bidx), ierr) + blen(bidx) = ms * r2len + + bidx = bidx + 1 + CALL MPI_Get_address (soil%wbc_vec, displs(bidx), ierr) + blen(bidx) = ms * r2len !1d