[2] | 1 | subroutine set_BC_values |
---|
| 2 | #define DEBUG_LEVEL 1 |
---|
| 3 | |
---|
| 4 | ! **** Most arrays available via use statements ****** |
---|
| 5 | use grid_info |
---|
| 6 | use boundary_information |
---|
| 7 | use dependent_variables |
---|
| 8 | use pde_parameters |
---|
| 9 | use dimensional_scales |
---|
| 10 | use mpi_parameters |
---|
| 11 | use counters_flags_etc |
---|
| 12 | use user_parameters |
---|
| 13 | implicit none |
---|
| 14 | !****************************************************** |
---|
| 15 | include '../input/problem_size.h' |
---|
| 16 | include 'mpif.h' |
---|
| 17 | !****************************************************** |
---|
| 18 | real dv_dzeta,f_of_t |
---|
| 19 | |
---|
| 20 | if( istep > istart .and. steady_BCS=='yes' ) return |
---|
| 21 | #if DEBUG_LEVEL >= 1 |
---|
| 22 | if(myid==0) write(0,*) 'hello world from set_BC_values' |
---|
| 23 | #endif |
---|
| 24 | |
---|
| 25 | ! FACE 1: xi=0 |
---|
| 26 | BC_values1(:,:,1)=0.0 ! BC_vel1(:,:)='solid' => U |
---|
| 27 | BC_values1(:,:,2)=0.0 ! BC_vel1(:,:)='specified_value' => v |
---|
| 28 | BC_values1(:,:,3)=0.0 ! BC_vel1(:,:)='specified_value' => W |
---|
| 29 | BC_values1(:,:,4)=0.0 ! BC_scalar1(:,:,1)='specified_gradient' => d/dxi (s1) |
---|
| 30 | if(num_scalars>1) & |
---|
| 31 | BC_values1(:,:,5)=0.0 ! BC_scalar1(:,:,2)='specified_gradient' => d/dxi (s2) |
---|
| 32 | |
---|
| 33 | ! FACE 2: xi=1 |
---|
| 34 | BC_values2(:,:,1)=0.0 ! BC_vel1(:,:)='solid' => U |
---|
| 35 | BC_values2(:,:,2)=0.0 ! BC_vel1(:,:)='specified_value' => v |
---|
| 36 | BC_values2(:,:,3)=0.0 ! BC_vel1(:,:)='specified_value' => W |
---|
| 37 | BC_values2(:,:,4)=0.0 ! BC_scalar1(:,:,1)='specified_gradient' => d/dxi (s1) |
---|
| 38 | if(num_scalars>1) & |
---|
| 39 | BC_values2(:,:,5)=0.0 ! BC_scalar1(:,:,2)='specified_gradient' => d/dxi (s2) |
---|
| 40 | |
---|
| 41 | ! FACE 3: eta=0 |
---|
| 42 | BC_values3(:,:,1)=0.0 ! BC_vel3(:,:)='specified "stress"' => du/deta |
---|
| 43 | BC_values3(:,:,2)=0.0 ! BC_vel3(:,:)='specified "stress"' => "dv/deta" |
---|
| 44 | BC_values3(:,:,3)=0.0 ! BC_vel3(:,:)='specified "stress"' => dw/deta |
---|
| 45 | BC_values3(:,:,4)=0.0 ! BC_scalar3(:,:,1)='specified_gradient' => ds1/deta |
---|
| 46 | if(num_scalars>1) & |
---|
| 47 | BC_values3(:,:,5)=0.0 ! BC_scalar3(:,:,2)='specified_gradient' => ds2/deta |
---|
| 48 | |
---|
| 49 | ! FACE 4: eta=1 |
---|
| 50 | BC_values4(:,:,1)=0.0 ! BC_vel4(:,:)='specified "stress"' => du/deta |
---|
| 51 | BC_values4(:,:,2)=0.0 ! BC_vel4(:,:)='specified "stress"' => "dv/deta" |
---|
| 52 | BC_values4(:,:,3)=0.0 ! BC_vel3(:,:)='specified "stress"' => dw/deta |
---|
| 53 | BC_values4(:,:,4)=0.0 ! BC_scalar4(:,:,1)='specified_gradient' => ds1/deta |
---|
| 54 | if(num_scalars>1) & |
---|
| 55 | BC_values4(:,:,5)=0.0 ! BC_scalar4(:,:,2)='specified_gradient' => ds2/deta |
---|
| 56 | |
---|
| 57 | ! FACE 5: zeta=0 ! values set for free-slip wall |
---|
| 58 | if( myid == 0 ) then |
---|
| 59 | BC_values5(:,:,1)=0.0 ! BC_vel5(:,:)='specified_stress' => dU/dzeta=0 |
---|
| 60 | BC_values5(:,:,2)=0.0 ! BC_vel5(:,:)='specified_stress' => dv/dzeta=0 |
---|
| 61 | BC_values5(:,:,3)=0.0 ! BC_vel5(:,:)='specified_value' => W=0 |
---|
| 62 | do j=1,ny |
---|
| 63 | ! BC_values5(:,j,4)=-s1_bar_zeta(:,1) ! BC_scalar5(:,:,1)='specified_gradient' => d/dzeta( s1 ) |
---|
| 64 | ! BC_values5(:,j,4)=0.0 ! s1=0 IW test |
---|
| 65 | BC_values5(:,j,4)=0.0 ! d/dzeta( s1 )=0, total gradient=ambient value |
---|
| 66 | if(num_scalars>1) & |
---|
| 67 | BC_values5(:,j,5)=0.0 ! d/dzeta( s2 )=0, total gradient=ambient value |
---|
| 68 | enddo |
---|
| 69 | endif |
---|
| 70 | |
---|
| 71 | ! FACE 6: zeta=1 |
---|
| 72 | if( myid == numprocs-1 ) then |
---|
| 73 | BC_values6(:,:,1)=0.0 ! BC_vel6(:,:)='specified_stress' => set dU/dzeta=0 |
---|
| 74 | BC_values6(:,:,2)=0.0 ! BC_vel6(:,:)='specified_stress' => set dV/dzeta=0 |
---|
| 75 | BC_values6(:,:,3)=0.0 ! solid => W=0 |
---|
| 76 | do j=1,ny |
---|
| 77 | BC_values6(:,j,4)=-s1_bar_zeta(:,locnz) ! BC_scalar6(:,:,1)='specified_gradient' => d/dzeta( s1 ) |
---|
| 78 | if(num_scalars>1) & |
---|
| 79 | BC_values6(:,j,5)=-s2_bar_zeta(:,locnz) ! BC_scalar6(:,:,2)='specified_gradient' => d/dzeta( s2 ) |
---|
| 80 | enddo |
---|
| 81 | |
---|
| 82 | endif |
---|
| 83 | |
---|
| 84 | end subroutine set_BC_values |
---|