Skip to content

Commit

Permalink
Squashed 'pamm/' changes from aba9b40..ecaea4c
Browse files Browse the repository at this point in the history
ecaea4c Merge commit 'f9f359251fe34ed1d0cc280be025a3c127e2c9e1'
f9f3592 Squashed 'sfvt/' changes from acca9d8..7f04a90

git-subtree-dir: pamm
git-subtree-split: ecaea4c2cb3ffac236ff034449ffee738d8ffd7a
  • Loading branch information
maul1609 committed Jun 21, 2023
1 parent bc078dd commit fd6a52e
Show file tree
Hide file tree
Showing 4 changed files with 44 additions and 20 deletions.
6 changes: 3 additions & 3 deletions sfvt/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -77,11 +77,11 @@ advection_2d.$(OBJ) advection_3d.$(OBJ) osnf_code
mpi_module.$(OBJ) : mpi_module.f90 osnf_code
$(FOR) mpi_module.f90 -I$(OSNF_DIR) -cpp -DVAR_TYPE=$(VAR_TYPE) $(FFLAGS)mpi_module.$(OBJ)
advection_1d.$(OBJ) : advection_1d.F90 osnf_code
$(FOR) advection_1d.F90 -cpp -I$(OSNF_DIR) $(FFLAGSOMP)advection_1d.$(OBJ)
$(FOR) advection_1d.F90 -cpp -DVAR_TYPE=$(VAR_TYPE) -I$(OSNF_DIR) $(FFLAGSOMP)advection_1d.$(OBJ)
advection_2d.$(OBJ) : advection_2d.F90 osnf_code
$(FOR) advection_2d.F90 -cpp -I$(OSNF_DIR) $(FFLAGSOMP)advection_2d.$(OBJ)
$(FOR) advection_2d.F90 -cpp -DVAR_TYPE=$(VAR_TYPE) -I$(OSNF_DIR) $(FFLAGSOMP)advection_2d.$(OBJ)
advection_3d.$(OBJ) : advection_3d.F90 osnf_code
$(FOR) advection_3d.F90 -I$(OSNF_DIR) $(FFLAGSOMP)advection_3d.$(OBJ)
$(FOR) advection_3d.F90 -cpp -DVAR_TYPE=$(VAR_TYPE) -I$(OSNF_DIR) $(FFLAGSOMP)advection_3d.$(OBJ)
main.$(OBJ) : main.f90 variables.$(OBJ) mpi_module.$(OBJ) initialisation.$(OBJ) \
driver_code.$(OBJ) advection_1d.$(OBJ) advection_2d.$(OBJ) \
advection_3d.$(OBJ)
Expand Down
18 changes: 13 additions & 5 deletions sfvt/advection_1d.F90
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,15 @@
!>advection code
module advection_s_1d
use numerics_type

use mpi
implicit none
#if VAR_TYPE==0
integer(i4b), parameter :: MPIREAL=MPI_REAL4
#endif
#if VAR_TYPE==1
integer(i4b), parameter :: MPIREAL=MPI_REAL8
#endif

private
public :: mpdata_1d, mpdata_vec_1d, first_order_upstream_1d
real(wp), parameter :: small=1e-60_wp
Expand Down Expand Up @@ -142,15 +150,15 @@ subroutine mpdata_1d(dt,dz,dzn,&
! has to be positive definite
minlocal=minval(psi_in(1:kp))
#ifdef MPI
call mpi_allreduce(minlocal,minglobal,1,MPI_REAL8,MPI_MIN, comm3d,error)
call mpi_allreduce(minlocal,minglobal,1,MPIREAL,MPI_MIN, comm3d,error)
#else
minglobal=minlocal
#endif
psi_in=psi_in-minglobal

psi_local_sum=sum(psi_in(1:kp))
#ifdef MPI
call MPI_Allreduce(psi_local_sum, psi_sum, 1, MPI_REAL8, MPI_SUM, comm3d, error)
call MPI_Allreduce(psi_local_sum, psi_sum, 1, MPIREAL, MPI_SUM, comm3d, error)
#else
psi_sum=psi_local_sum
#endif
Expand Down Expand Up @@ -481,7 +489,7 @@ subroutine mpdata_vec_1d(dt,dz,dzn,&
do n=1,nq
minlocal=minval(psi_in(1:kp,n),1)
#ifdef MPI
call mpi_allreduce(minlocal,minglobal(n),1,MPI_REAL8,MPI_MIN, comm3d,error)
call mpi_allreduce(minlocal,minglobal(n),1,MPIREAL,MPI_MIN, comm3d,error)
#else
minglobal(n)=minlocal
#endif
Expand All @@ -490,7 +498,7 @@ subroutine mpdata_vec_1d(dt,dz,dzn,&

psi_local_sum=sum(psi_in(1:kp,1))
#ifdef MPI
call MPI_Allreduce(psi_local_sum, psi_sum, 1, MPI_REAL8, MPI_SUM, comm3d, error)
call MPI_Allreduce(psi_local_sum, psi_sum, 1, MPIREAL, MPI_SUM, comm3d, error)
#else
psi_sum=psi_local_sum
#endif
Expand Down
16 changes: 12 additions & 4 deletions sfvt/advection_2d.F90
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,14 @@
!>advection code
module advection_s_2d
use numerics_type
use mpi
implicit none
#if VAR_TYPE==0
integer(i4b), parameter :: MPIREAL=MPI_REAL4
#endif
#if VAR_TYPE==1
integer(i4b), parameter :: MPIREAL=MPI_REAL8
#endif

private
public :: mpdata_2d, mpdata_vec_2d, first_order_upstream_2d
Expand Down Expand Up @@ -163,15 +171,15 @@ subroutine mpdata_2d(dt,dx,dz,dxn,dzn,&
! has to be positive definite
minlocal=minval(psi_in(1:kp,1:ip))
#ifdef MPI
call mpi_allreduce(minlocal,minglobal,1,MPI_REAL8,MPI_MIN, comm3d,error)
call mpi_allreduce(minlocal,minglobal,1,MPIREAL,MPI_MIN, comm3d,error)
#else
minglobal=minlocal
#endif
psi_in=psi_in-minglobal

psi_local_sum=sum(psi_in(1:kp,1:ip))
#ifdef MPI
call MPI_Allreduce(psi_local_sum, psi_sum, 1, MPI_REAL8, MPI_SUM, comm3d, error)
call MPI_Allreduce(psi_local_sum, psi_sum, 1, MPIREAL, MPI_SUM, comm3d, error)
#else
psi_sum=psi_local_sum
#endif
Expand Down Expand Up @@ -613,7 +621,7 @@ subroutine mpdata_vec_2d(dt,dx,dz,dxn,dzn,&
do n=1,nq
minlocal=minval(psi_in(1:kp,1:ip,n))
#ifdef MPI
call mpi_allreduce(minlocal,minglobal(n),1,MPI_REAL8,MPI_MIN, comm3d,error)
call mpi_allreduce(minlocal,minglobal(n),1,MPIREAL,MPI_MIN, comm3d,error)
#else
minglobal(n)=minlocal
#endif
Expand All @@ -622,7 +630,7 @@ subroutine mpdata_vec_2d(dt,dx,dz,dxn,dzn,&

psi_local_sum=sum(psi_in(1:kp,1:ip,1))
#ifdef MPI
call MPI_Allreduce(psi_local_sum, psi_sum, 1, MPI_REAL8, MPI_SUM, comm3d, error)
call MPI_Allreduce(psi_local_sum, psi_sum, 1, MPIREAL, MPI_SUM, comm3d, error)
#else
psi_sum=psi_local_sum
#endif
Expand Down
24 changes: 16 additions & 8 deletions sfvt/advection_3d.F90
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,14 @@
!>advection code for the dynamical cloud model
module advection_s_3d
use numerics_type
use mpi
implicit none
#if VAR_TYPE==0
integer(i4b), parameter :: MPIREAL=MPI_REAL4
#endif
#if VAR_TYPE==1
integer(i4b), parameter :: MPIREAL=MPI_REAL8
#endif

private
public :: mpdata_3d, mpdata_vec_3d, first_order_upstream_3d, adv_ref_state, &
Expand Down Expand Up @@ -267,14 +275,14 @@ subroutine mpdata_3d(dt,dx,dy,dz,dxn,dyn,dzn,&

! has to be positive definite
minlocal=min(minval(psi_in(:,:,:)),lbc,ubc)
call mpi_allreduce(minlocal,minglobal,1,MPI_REAL8,MPI_MIN, comm3d,error)
call mpi_allreduce(minlocal,minglobal,1,MPIREAL,MPI_MIN, comm3d,error)

psi_in=psi_in-minglobal
lbc=lbc-minglobal
ubc=ubc-minglobal

psi_local_sum=sum(psi_in(1:kp,1:jp,1:ip))
call MPI_Allreduce(psi_local_sum, psi_sum, 1, MPI_REAL8, MPI_SUM, comm3d, error)
call MPI_Allreduce(psi_local_sum, psi_sum, 1, MPIREAL, MPI_SUM, comm3d, error)
if(psi_sum.lt.small) then
psi_in(:,:,:)=psi_in(:,:,:)+minglobal
lbc=lbc+minglobal
Expand Down Expand Up @@ -834,14 +842,14 @@ subroutine mpdata_vert_3d(dt,dz,dzn,&

! has to be positive definite
minlocal=min(minval(psi_in(:,:,:)),lbc,ubc)
call mpi_allreduce(minlocal,minglobal,1,MPI_REAL8,MPI_MIN, comm3d,error)
call mpi_allreduce(minlocal,minglobal,1,MPIREAL,MPI_MIN, comm3d,error)

psi_in=psi_in-minglobal
lbc=lbc-minglobal
ubc=ubc-minglobal

psi_local_sum=sum(psi_in(1:kp,1:jp,1:ip))
call MPI_Allreduce(psi_local_sum, psi_sum, 1, MPI_REAL8, MPI_SUM, comm3d, error)
call MPI_Allreduce(psi_local_sum, psi_sum, 1, MPIREAL, MPI_SUM, comm3d, error)
if(psi_sum.lt.small) then
psi_in(:,:,:)=psi_in(:,:,:)+minglobal
lbc=lbc+minglobal
Expand Down Expand Up @@ -1254,14 +1262,14 @@ subroutine mpdata_vec_3d(dt,dx,dy,dz,dxn,dyn,dzn,&
! has to be positive definite
do n=1,nq
minlocal=min(minval(psi_in(1:kp,1:jp,1:ip,n)),lbc(n),ubc(n))
call mpi_allreduce(minlocal,minglobal(n),1,MPI_REAL8,MPI_MIN, comm3d,error)
call mpi_allreduce(minlocal,minglobal(n),1,MPIREAL,MPI_MIN, comm3d,error)
psi_in(:,:,:,n)=psi_in(:,:,:,n)-minglobal(n)
lbc(n)=lbc(n)-minglobal(n)
ubc(n)=ubc(n)-minglobal(n)
enddo

psi_local_sum=sum(psi_in(1:kp,1:jp,1:ip,1))
call MPI_Allreduce(psi_local_sum, psi_sum, 1, MPI_REAL8, MPI_SUM, comm3d, error)
call MPI_Allreduce(psi_local_sum, psi_sum, 1, MPIREAL, MPI_SUM, comm3d, error)
if(psi_sum.lt.small) then
do n=1,nq
psi_in(:,:,:,n)=psi_in(:,:,:,n)+minglobal(n)
Expand Down Expand Up @@ -1753,14 +1761,14 @@ subroutine mpdata_vec_vert_3d(dt,dz,dzn,&
! has to be positive definite
do n=1,nq
minlocal=min(minval(psi_in(1:kp,1:jp,1:ip,n)),lbc(n),ubc(n))
call mpi_allreduce(minlocal,minglobal(n),1,MPI_REAL8,MPI_MIN, comm3d,error)
call mpi_allreduce(minlocal,minglobal(n),1,MPIREAL,MPI_MIN, comm3d,error)
psi_in(:,:,:,n)=psi_in(:,:,:,n)-minglobal(n)
lbc(n)=lbc(n)-minglobal(n)
ubc(n)=ubc(n)-minglobal(n)
enddo

psi_local_sum=sum(psi_in(1:kp,1:jp,1:ip,1))
call MPI_Allreduce(psi_local_sum, psi_sum, 1, MPI_REAL8, MPI_SUM, comm3d, error)
call MPI_Allreduce(psi_local_sum, psi_sum, 1, MPIREAL, MPI_SUM, comm3d, error)
if(psi_sum.lt.small) then
do n=1,nq
psi_in(:,:,:,n)=psi_in(:,:,:,n)+minglobal(n)
Expand Down

0 comments on commit fd6a52e

Please sign in to comment.