-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathderx_BC.f90
executable file
·61 lines (45 loc) · 1.79 KB
/
derx_BC.f90
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
subroutine derx_BC(q3, q4)
!----------------------------------------------------------- !
! F. Califano, 2006 !
! First x-derivative by FFT (periodic boundary conditions) !
!----------------------------------------------------------- !
!**************************************************
! MPI PARALLEL VERSION: VALENTINI-FAGANELLO 2009
! 3D PARALLEL VERSION: FAGANELLO 2010
!**************************************************
use parameter_mod
use box_mod
use deriv_mod
use dom_distr_mod
use parallel_mod
IMPLICIT NONE
! *************N.B. ny = nyl*****************************
REAL(dp) :: frac
REAL(dp),DIMENSION (nxl,nyl,nzl) :: q3 !!!!!!!!!!!!!! con o senza l vari ???????????????????????????????????
REAL(dp),DIMENSION (2,nyl,nzl) :: q4 !!!!!!!!!!!!!!!!!!! con o senza l vari ????????????????????????????????
!integer :: ix
!do ix = 1, 5
!q3(ix,:) = exp(x(ix))
!enddo
!do ix = nx4, nx
! q3(ix,:) = exp(x(ix))
!enddo
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! Derivata al bordo sx calcolata con i soli punti interni !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
frac = 1.0d0 / ( 12.0d0 * dx )
q4(1,:,:) = (- 25.0d0 * q3(1,:,:) + 48.0d0 * q3(2,:,:) - 36.0d0 * q3(3,:,:) &
+ 16.0d0 * q3(4,:,:) - 3.0d0 * q3(5,:,:) ) * frac
q4(2,:,:) = ( 25.0d0 * q3(nxl,:,:) - 48.0d0 * q3(nxlm1,:,:) + 36.0d0 &
* q3(nxlm2,:,:) - 16.0d0 * q3(nxlm3,:,:) + &
3.0d0 * q3(nxlm4,:,:) ) * frac
!write(*,*), 'derivata numerica'
!write(*,*), q4(1,1)
!write(*,*), 'valore analitico'
!write(*,*), exp(x(1))
!write(*,*), 'derivata numerica'
!write(*,*), q4(2,1)
!write(*,*), 'valore analitico'
!write(*,*), exp(x(nx))
!stop
end subroutine