program integer indx(10) real xx(500), yy(500), zz(500), tt(500), var(250000) character*80 arg, file, vname, xname, yname, zname, tname data file, vname, xname, yname, zname, tname * /'odb.cdf', 'sstt', 'X', 'Y', 'Z', 'T'/ integer function iargc i = 0 nargs = iargc() do while (i .lt. nargs) i = i + 1 call getarg (i, arg) if (arg .eq. '-f') then i = i + 1 call getarg (i, file) elseif (arg .eq. '-x') then i = i + 1 call getarg (i, xname) elseif (arg .eq. '-y') then i = i + 1 call getarg (i, yname) elseif (arg .eq. '-z') then i = i + 1 call getarg (i, zname) elseif (arg .eq. '-t') then i = i + 1 call getarg (i, tname) elseif (arg .eq. '-v') then i = i + 1 call getarg (i, vname) elseif (arg .eq. '-hdf') then call odb_ophdf (id1, file, 1) call odb_close (id1) endif enddo call filld (nx, ny, nz, nt, xx, yy, zz, tt, var) call odb_open (id1, file, 1) call odb_dfgr (id1, 'X', nx) call odb_dfgr (id1, 'Y', ny) call odb_dfgr (id1, 'Z', nz) call odb_dftm (id1, 'T') call odb_dfvar2 (id1, 'X', 'Y', 'VARXY') call odb_dfvar2 (id1, 'X', 'Y', 'VARX') call odb_dfvar2 (id1, 'X', 'Y', 'VARY') call odb_dfvar3 (id1, 'X', 'Y', 'T', 'VARXYT') call odb_wrgr (id1, 'X', xx) call odb_wrgr (id1, 'Y', yy) call odb_wrvar (id1, 'VARXY', var) call odb_wr1v2 (id1, 3, 'VARX', xx) indx(1) = 1 indx(2) = 0 call odb_wrxv (id1, indx, 'VARY', yy) indx(1) = 0 indx(2) = 0 indx(3) = 3 call odb_wrxv (id1, indx, 'VARXYT', var) indx(3) = 1 call odb_wrxv (id1, indx, 'VARXYT', var) call odb_close (id1) stop end subroutine filld (nx, ny, nz, nt, xx, yy, zz, tt, var) c------------------------------------------------------------- parameter (MX = 6, MY = 5, MZ = 4, MT = 3) real xx(1), yy(1), zz(1), tt(1), var(MX, MY, MZ, MT) nx = MX do i = 1, nx xx(i) = real(i) enddo ny = MY do i = 1, ny yy(i) = 10.*i enddo nz = MZ do i = 1, nz zz(i) = 100.*i enddo nt = MT do i = 1, nt tt(i) = 1000.*i enddo do it = 1, nt do iz = 1, nz do iy = 1, ny do ix = 1, nx var(ix, iy, iz, it) = 1000*it + 100*iz + 10*iy + ix enddo enddo enddo enddo return end