Files
spbt/header3d_bt.h

108 lines
5.2 KiB
C
Raw Normal View History

2025-05-06 22:04:43 +03:00
!---------------------------------------------------------------------
!---------------------------------------------------------------------
!
! header.h
!
!---------------------------------------------------------------------
!---------------------------------------------------------------------
implicit none
!---------------------------------------------------------------------
! The following include file is generated automatically by the
! "setparams" utility. it defines
! maxcells: the square root of the maximum number of processors
! problem_size: 12, 64, 102, 162 (for class t, a, b, c)
! dt_default: default time step for this problem size if no
! config file
! niter_default: default number of iterations for this problem size
!---------------------------------------------------------------------
include 'npbparams_bt.h'
integer aa, bb, cc, block_size
parameter (aa=1, bb=2, cc=3, block_size=5)
integer grid_points(3)
double precision elapsed_time
common /global_bt/ elapsed_time, grid_points
double precision tx1, tx2, tx3, ty1, ty2, ty3, tz1, tz2, tz3
double precision dx1, dx2, dx3, dx4, dx5, dy1, dy2, dy3, dy4
double precision dy5, dz1, dz2, dz3, dz4, dz5, dssp, dt
double precision ce(5,13), dxmax, dymax, dzmax, xxcon1, xxcon2
double precision xxcon3, xxcon4, xxcon5, dx1tx1, dx2tx1, dx3tx1
double precision dx4tx1, dx5tx1, yycon1, yycon2, yycon3, yycon4
double precision yycon5, dy1ty1, dy2ty1, dy3ty1, dy4ty1, dy5ty1
double precision zzcon1, zzcon2, zzcon3, zzcon4, zzcon5, dz1tz1
double precision dz2tz1, dz3tz1, dz4tz1, dz5tz1, dnxm1, dnym1
double precision dnzm1, c1c2, c1c5, c3c4, c1345, conz1, c1, c2
double precision c3, c4, c5, c4dssp, c5dssp, dtdssp, dttx1
double precision dttx2, dtty1, dtty2, dttz1, dttz2, c2dttx1
double precision c2dtty1, c2dttz1, comz1, comz4, comz5, comz6
double precision c3c4tx3, c3c4ty3, c3c4tz3, c2iv, con43, con16
integer stage_n, bl, r
common /constants_bt/ tx1,tx2,tx3,ty1,ty2,ty3, tz1,tz2,tz3
common /constants_bt/ dx1,dx2,dx3,dx4,dx5,dy1, dy2, dy3, dy4
common /constants_bt/ dy5,dz1,dz2,dz3,dz4,dz5, dssp, dt
common /constants_bt/ ce,dxmax,dymax,dzmax,xxcon1,xxcon2
common /constants_bt/ xxcon3,xxcon4,xxcon5,dx1tx1,dx2tx1,dx3tx1
common /constants_bt/ dx4tx1,dx5tx1,yycon1,yycon2,yycon3,yycon4
common /constants_bt/ yycon5,dy1ty1,dy2ty1,dy3ty1,dy4ty1,dy5ty1
common /constants_bt/ zzcon1,zzcon2,zzcon3,zzcon4,zzcon5,dz1tz1
common /constants_bt/ dz2tz1,dz3tz1,dz4tz1,dz5tz1,dnxm1,dnym1
common /constants_bt/ dnzm1,c1c2,c1c5,c3c4,c1345,conz1, c1, c2
common /constants_bt/ c3,c4,c5,c4dssp,c5dssp,dtdssp, dttx1
common /constants_bt/ dttx2,dtty1,dtty2,dttz1,dttz2,c2dttx1
common /constants_bt/ c2dtty1,c2dttz1,comz1,comz4,comz5,comz6
common /constants_bt/ c3c4tx3,c3c4ty3,c3c4tz3,c2iv,con43,con16
common /constants_bt/ stage_n
integer imax, jmax, kmax
parameter (imax=problem_size,jmax=problem_size,kmax=problem_size)
parameter (bl=1, r=0)
!
! to improve cache performance, grid dimensions padded by 1
! for even number sizes only.
!
double precision us(0:imax/2*2, 0:jmax/2*2, 0:kmax/2*2)
double precision vs(0:imax/2*2, 0:jmax/2*2, 0:kmax/2*2)
double precision ws(0:imax/2*2, 0:jmax/2*2, 0:kmax/2*2)
double precision qs(0:imax/2*2, 0:jmax/2*2, 0:kmax/2*2)
double precision rho_i(0:imax/2*2, 0:jmax/2*2, 0:kmax/2*2)
double precision square(0:imax/2*2, 0:jmax/2*2, 0:kmax/2*2)
double precision forcing (5,0:imax/2*2,0:jmax/2*2, 0:kmax/2*2)
double precision u(5,0:(imax+1)/2*2,0:(jmax+1)/2*2,0:(kmax+1)/2*2)
double precision rhs(5,0:imax/2*2, 0:jmax/2*2, 0:kmax/2*2)
double precision lhs__(5,5,0:imax/2*2,0:jmax/2*2,0:kmax/2*2/bl+r)
double precision speed(0:imax/2*2, 0:jmax/2*2, 0:kmax/2*2)
common /fields/ u, us, vs, ws, qs, rho_i, speed, square
common /fields/ rhs, forcing, lhs__
double precision cv(-2:problem_size+1)
double precision cuf(-2:problem_size+1), q(-2:problem_size+1)
double precision ue(-2:problem_size+1,5), buf(-2:problem_size+1,5)
common /work_1d_bt/ cv, cuf, q, ue, buf
double precision tmp1, tmp2, tmp3, tmp11, tmp22
double precision t1, t2, t3, tm1, tm2, tm3
common /work_lhs_bt/ tmp1, tmp2, tmp3, tmp11, tmp22
common /work_lhs_bt/ t1, t2, t3, tm1, tm2, tm3
double precision tmp_block(5,5), b_inverse(5,5), tmp_vec(5)
common /work_solve_bt/ tmp_block, b_inverse, tmp_vec
!--------------------------------------------------------------------
! fdvm specifications
!--------------------------------------------------------------------
! dvm$ distribute us (block,block,block)
! dvm$ align (i,j,k) with us(i,j,k) :: vs, ws, qs, rho_i, square
! dvm$ align (*,*,i,j,k) with us(i,j,k) :: lhs__
! dvm$ align (*,i,j,k) with us(i,j,k) :: u, rhs
! dvm$ align (*,i,j,k) with us(i,j,k) :: forcing
! dvm$ shadow u(2:2,2:2,2:2,2:2)