[524] | 1 | ! $Header$ |
---|
[5099] | 2 | |
---|
[5103] | 3 | SUBROUTINE inigrads(if, im & |
---|
| 4 | , x, fx, xmin, xmax, jm, y, ymin, ymax, fy, lm, z, fz & |
---|
| 5 | , dt, file, titlel) |
---|
[5137] | 6 | USE lmdz_gradsdef |
---|
[524] | 7 | |
---|
[5113] | 8 | IMPLICIT NONE |
---|
[524] | 9 | |
---|
[5116] | 10 | INTEGER :: if, im, jm, lm, i, j, l |
---|
| 11 | REAL :: x(im), y(jm), z(lm), fx, fy, fz, dt |
---|
| 12 | REAL :: xmin, xmax, ymin, ymax |
---|
[524] | 13 | |
---|
[5117] | 14 | CHARACTER(LEN = *), INTENT(IN) :: file |
---|
| 15 | CHARACTER(LEN = *), INTENT(IN) :: titlel |
---|
[524] | 16 | |
---|
[5103] | 17 | ! data unit/66,32,34,36,38,40,42,44,46,48/ |
---|
[5116] | 18 | INTEGER :: nf |
---|
[5103] | 19 | save nf |
---|
| 20 | data nf/0/ |
---|
[524] | 21 | |
---|
[5103] | 22 | unit(1) = 66 |
---|
| 23 | unit(2) = 32 |
---|
| 24 | unit(3) = 34 |
---|
| 25 | unit(4) = 36 |
---|
| 26 | unit(5) = 38 |
---|
| 27 | unit(6) = 40 |
---|
| 28 | unit(7) = 42 |
---|
| 29 | unit(8) = 44 |
---|
| 30 | unit(9) = 46 |
---|
[524] | 31 | |
---|
[5117] | 32 | IF (if<=nf) stop 'verifier les appels a inigrads' |
---|
[524] | 33 | |
---|
[5103] | 34 | PRINT*, 'Entree dans inigrads' |
---|
[524] | 35 | |
---|
[5103] | 36 | nf = if |
---|
| 37 | title(if) = titlel |
---|
| 38 | ivar(if) = 0 |
---|
[524] | 39 | |
---|
[5103] | 40 | fichier(if) = trim(file) |
---|
[524] | 41 | |
---|
[5103] | 42 | firsttime(if) = .TRUE. |
---|
| 43 | dtime(if) = dt |
---|
[524] | 44 | |
---|
[5103] | 45 | iid(if) = 1 |
---|
| 46 | ifd(if) = im |
---|
| 47 | imd(if) = im |
---|
| 48 | do i = 1, im |
---|
| 49 | xd(i, if) = x(i) * fx |
---|
[5116] | 50 | IF(xd(i, if)<xmin) iid(if) = i + 1 |
---|
| 51 | IF(xd(i, if)<=xmax) ifd(if) = i |
---|
[5103] | 52 | enddo |
---|
| 53 | PRINT*, 'On stoke du point ', iid(if), ' a ', ifd(if), ' en x' |
---|
[524] | 54 | |
---|
[5103] | 55 | jid(if) = 1 |
---|
| 56 | jfd(if) = jm |
---|
| 57 | jmd(if) = jm |
---|
| 58 | do j = 1, jm |
---|
| 59 | yd(j, if) = y(j) * fy |
---|
[5116] | 60 | IF(yd(j, if)>ymax) jid(if) = j + 1 |
---|
| 61 | IF(yd(j, if)>=ymin) jfd(if) = j |
---|
[5103] | 62 | enddo |
---|
| 63 | PRINT*, 'On stoke du point ', jid(if), ' a ', jfd(if), ' en y' |
---|
[524] | 64 | |
---|
[5103] | 65 | PRINT*, 'Open de dat' |
---|
| 66 | PRINT*, 'file=', file |
---|
| 67 | PRINT*, 'fichier(if)=', fichier(if) |
---|
[524] | 68 | |
---|
[5103] | 69 | PRINT*, 4 * (ifd(if) - iid(if)) * (jfd(if) - jid(if)) |
---|
| 70 | PRINT*, trim(file) // '.dat' |
---|
[524] | 71 | |
---|
[5103] | 72 | OPEN (unit(if) + 1, FILE = trim(file) // '.dat' & |
---|
| 73 | , FORM = 'unformatted', & |
---|
| 74 | ACCESS = 'direct' & |
---|
| 75 | , RECL = 4 * (ifd(if) - iid(if) + 1) * (jfd(if) - jid(if) + 1)) |
---|
[524] | 76 | |
---|
[5103] | 77 | PRINT*, 'Open de dat ok' |
---|
[524] | 78 | |
---|
[5103] | 79 | lmd(if) = lm |
---|
| 80 | do l = 1, lm |
---|
| 81 | zd(l, if) = z(l) * fz |
---|
| 82 | enddo |
---|
[524] | 83 | |
---|
[5103] | 84 | irec(if) = 0 |
---|
[524] | 85 | |
---|
[5103] | 86 | PRINT*, if, imd(if), jmd(if), lmd(if) |
---|
| 87 | PRINT*, 'if,imd(if),jmd(if),lmd(if)' |
---|
[524] | 88 | |
---|
[5105] | 89 | |
---|
[5116] | 90 | END SUBROUTINE inigrads |
---|