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