!--------------------------------------------------------------------- !--------------------------------------------------------------------- ! ! 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)