Skip to content

Commit ce5a8f1

Browse files
fangjianfangjian
authored andcommitted
add multi-block functionality to pastr
1 parent 4faf59d commit ce5a8f1

8 files changed

Lines changed: 1248 additions & 73 deletions

‎pastr/src/pastr_commvar.F90‎

Lines changed: 7 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
module pastr_commvar
22

33
use iso_fortran_env, only: wp => real64
4+
use pastr_constdef
45

56
implicit none
67

78
integer :: im, jm, km
9+
integer :: nhalo=4
810

911
logical :: nondimen=.true.
1012
logical :: lihomo, ljhomo, lkhomo
@@ -16,6 +18,9 @@ module pastr_commvar
1618
const2, const3, const4, const5, const6, const7, const8, roinf, &
1719
uinf, vinf, tinf, pinf
1820
real(wp) :: deltat
21+
real(wp) :: lx,ly,lz
22+
23+
real(wp),pointer :: stencil_1(:)
1924

2025
real(wp), allocatable, dimension(:, :, :) :: x, y, z, ro, u1, u2, u3, p, t
2126
real(wp), allocatable, dimension(:, :, :) :: ro_m, u1_m, u2_m, u3_m, p_m, t_m
@@ -36,46 +41,7 @@ module pastr_commvar
3641
procedure :: init => alloc_monitor
3742
end type montype
3843

39-
type :: conntype
40-
41-
integer :: nblock_local,npatch_local
42-
integer :: nblock_remot,npatch_remot
43-
44-
end type conntype
45-
46-
type :: pachtype
47-
48-
integer :: imin,imax,jmin,jmax,kmin,kmax
49-
50-
character(len=1) :: ntyp ! internal (i) or bc (n)
51-
52-
type(conntype),allocatable :: connector(:)
53-
54-
character(len=6),allocatable :: varname(:)
55-
56-
real(wp),allocatable :: x(:,:,:,:),var(:,:,:,:)
57-
58-
59-
end type pachtype
60-
61-
type :: bloktype
62-
63-
integer :: im,jm,km
64-
integer :: nvar,nhalo,npatch
65-
66-
character(len=6) :: name
67-
68-
character(len=6),allocatable :: varname(:)
69-
70-
real(wp),allocatable :: x(:,:,:,:),var(:,:,:,:)
71-
72-
type(pachtype),allocatable :: patch(:)
73-
74-
contains
75-
76-
procedure :: init => alloc_block
77-
78-
end type bloktype
44+
7945

8046

8147
contains
@@ -91,24 +57,5 @@ subroutine alloc_monitor(amonitor)
9157

9258
end subroutine alloc_monitor
9359

94-
subroutine alloc_block(ablock)
95-
96-
class(bloktype),target :: ablock
97-
98-
ablock%nhalo=4
99-
100-
allocate(ablock%varname(ablock%nvar))
101-
allocate(ablock%x( -ablock%nhalo:ablock%im+ablock%nhalo, &
102-
-ablock%nhalo:ablock%jm+ablock%nhalo, &
103-
-ablock%nhalo:ablock%km+ablock%nhalo,3) )
104-
allocate(ablock%var(-ablock%nhalo:ablock%im+ablock%nhalo, &
105-
-ablock%nhalo:ablock%jm+ablock%nhalo, &
106-
-ablock%nhalo:ablock%km+ablock%nhalo, ablock%nvar))
107-
108-
allocate(ablock%patch(ablock%npatch))
109-
110-
print*,' ** block ',ablock%name,' initiated.'
111-
112-
end subroutine alloc_block
113-
60+
11461
end module pastr_commvar

‎pastr/src/pastr_gradients.F90‎

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,11 @@
11
module pastr_gradients
22

33
use iso_fortran_env, only: wp => real64
4-
use pastr_commvar, only: im,jm,km,lihomo,ljhomo,lkhomo
4+
use pastr_commvar, only: im,jm,km,lihomo,ljhomo,lkhomo,nhalo
55
use pastr_constdef
66

77
implicit none
88

9-
private
10-
11-
public :: grad_xy,grad_3d
12-
139
contains
1410

1511
function grad_3d(f,x,y,z) result(df)

‎pastr/src/pastr_io.F90‎

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ end subroutine read_grid_2d
101101

102102
subroutine read_grid_3d(x,y,z)
103103

104-
use pastr_commvar, only: gridfile,im,jm,km
104+
use pastr_commvar, only: gridfile,im,jm,km,lx,ly,lz
105105
use pastr_h5io
106106

107107
real(wp),intent(inout),allocatable :: x(:,:,:),y(:,:,:),z(:,:,:)
@@ -110,6 +110,10 @@ subroutine read_grid_3d(x,y,z)
110110
call H5ReadArray(y,im,jm,km,'y',trim(gridfile))
111111
call H5ReadArray(z,im,jm,km,'z',trim(gridfile))
112112

113+
lx=x(im,0,0)-x(0,0,0)
114+
ly=y(0,jm,0)-y(0,0,0)
115+
lz=z(0,0,km)-z(0,0,0)
116+
113117
end subroutine read_grid_3d
114118

115119
subroutine read_monitor_data(num_first_file,num_last_file,n_data,n_col,mon_data)

0 commit comments

Comments
 (0)