1 |
module trans_buff_m |
2 |
|
3 |
implicit none |
4 |
|
5 |
contains |
6 |
|
7 |
SUBROUTINE trans_buff (ox, sx, oy, sy, oz, sz, xsz, ysz, zsz, v3d, sl, v1d) |
8 |
!- This subroutine extracts from the full 3D variable the slab of |
9 |
!- data that will be used later. Perhaps there are hardware routines |
10 |
!- for this task on some computers. This routine will be obsolete in |
11 |
!- a F90 environnement |
12 |
|
13 |
!- INPUT |
14 |
!- ox : Origin of slab of data in X |
15 |
!- sx : Size of slab in X |
16 |
!- oy : Origin of slab of data in Y |
17 |
!- sy : Size of slab in Y |
18 |
!- oz : Origin of slab of data in Z |
19 |
!- sz : Size of slab in Z |
20 |
!- xsz, ysz, zsz : 3 sizes of full variable v3d |
21 |
!- v3d : The full 3D variable |
22 |
!- sl : size of variable v1d |
23 |
!- v1d : The 1D variable containing the slab |
24 |
|
25 |
INTEGER :: ox, sx, oy, sy, oz, sz |
26 |
INTEGER :: xsz, ysz, zsz |
27 |
INTEGER :: sl |
28 |
REAL :: v3d(xsz, ysz, zsz) |
29 |
REAL :: v1d(sl) |
30 |
|
31 |
!--------------------------------------------------------------------- |
32 |
|
33 |
V1d(:sx*sy*sz) = reshape(V3d(ox:ox-1+sx, oy:oy-1+sy, oz:oz-1+sz), & |
34 |
SHAPE=(/sx*sy*sz/)) |
35 |
|
36 |
END SUBROUTINE trans_buff |
37 |
|
38 |
end module trans_buff_m |