1 |
module inigrads_m |
2 |
|
3 |
implicit none |
4 |
|
5 |
contains |
6 |
|
7 |
subroutine inigrads(i_f, x, fx, xmin, xmax, y, ymin, ymax, fy, z, fz, dt, & |
8 |
file, titlel) |
9 |
|
10 |
! From dyn3d/inigrads.F, v 1.1.1.1 2004/05/19 12:53:07 |
11 |
|
12 |
use gradsdef, only: unit, title, ivar, fichier, firsttime, dtime, iid, & |
13 |
ifd, imd, xd, iid, jid, jfd, jmd, yd, lmd, zd, irec |
14 |
|
15 |
integer, intent(in):: i_f |
16 |
real, intent(in):: x(:), y(:), z(:), fx, fy, fz, dt |
17 |
real, intent(in):: xmin, xmax, ymin, ymax |
18 |
character(len=*), intent(in):: file, titlel |
19 |
|
20 |
! Variables local to the procedure: |
21 |
integer im, jm, lm |
22 |
integer i, j, l |
23 |
integer:: nf = 0 |
24 |
|
25 |
!------------------------------------- |
26 |
|
27 |
print *, 'Call sequence information: inigrads' |
28 |
|
29 |
im = size(x) |
30 |
jm = size(y) |
31 |
lm = size(z) |
32 |
|
33 |
unit(1)=66 |
34 |
unit(2)=32 |
35 |
unit(3)=34 |
36 |
unit(4)=36 |
37 |
unit(5)=38 |
38 |
unit(6)=40 |
39 |
unit(7)=42 |
40 |
unit(8)=44 |
41 |
unit(9)=46 |
42 |
|
43 |
if (i_f.le.nf) stop'verifier les appels a inigrads' |
44 |
|
45 |
nf=i_f |
46 |
title(i_f)=titlel |
47 |
ivar(i_f)=0 |
48 |
|
49 |
fichier(i_f)=trim(file) |
50 |
|
51 |
firsttime(i_f)=.true. |
52 |
dtime(i_f)=dt |
53 |
|
54 |
iid(i_f)=1 |
55 |
ifd(i_f)=im |
56 |
imd(i_f)=im |
57 |
do i=1, im |
58 |
xd(i, i_f)=x(i)*fx |
59 |
if(xd(i, i_f).lt.xmin) iid(i_f)=i+1 |
60 |
if(xd(i, i_f).le.xmax) ifd(i_f)=i |
61 |
enddo |
62 |
print *, 'On stoke du point ', iid(i_f), ' à ', ifd(i_f), ' en x' |
63 |
|
64 |
jid(i_f)=1 |
65 |
jfd(i_f)=jm |
66 |
jmd(i_f)=jm |
67 |
do j=1, jm |
68 |
yd(j, i_f)=y(j)*fy |
69 |
if(yd(j, i_f).gt.ymax) jid(i_f)=j+1 |
70 |
if(yd(j, i_f).ge.ymin) jfd(i_f)=j |
71 |
enddo |
72 |
print *, 'On stoke du point ', jid(i_f), ' à ', jfd(i_f), ' en y' |
73 |
|
74 |
print *, 'fichier(i_f)=', fichier(i_f) |
75 |
print *, 4 * (ifd(i_f) - iid(i_f)) * (jfd(i_f) - jid(i_f)) |
76 |
print *, 'Opening "' // trim(file) // '.dat"...' |
77 |
|
78 |
OPEN(unit=unit(i_f)+1, FILE=trim(file)//'.dat', FORM='unformatted', & |
79 |
ACCESS='direct', RECL=4*(ifd(i_f)-iid(i_f)+1)*(jfd(i_f)-jid(i_f)+1)) |
80 |
|
81 |
lmd(i_f)=lm |
82 |
do l=1, lm |
83 |
zd(l, i_f)=z(l)*fz |
84 |
enddo |
85 |
|
86 |
irec(i_f)=0 |
87 |
print *, "i_f = ", i_f |
88 |
print *, "imd(i_f) = ", imd(i_f) |
89 |
print *, "jmd(i_f) = ", jmd(i_f) |
90 |
print *, "lmd(i_f) = ", lmd(i_f) |
91 |
|
92 |
end subroutine inigrads |
93 |
|
94 |
end module inigrads_m |