83 INTEGER*1 istring(lenmax)
86 IF (ilen .GE. lenmax)
THEN
87 WRITE(6,9000) lenmax, ilen+1
91 istring(i) = ichar(string(i:i))
95 9000 format(
'NeXus(NAPIF/EXTRACT_STRING): String too long -',
96 +
'buffer needs increasing from ', i4,
' to at least ',i4)
107 IF (istring(i) .EQ. 0) return
108 string(i:i) = char(istring(i))
110 IF (istring(len(string)+1) .NE. 0)
WRITE(6,9010) len(string)
112 9010 format(
'NeXus(NAPIF/REPLACE_STRING): String truncated - ',
113 +
'buffer needs to be > ', i4)
118 INTEGER FUNCTION nxopen(FILENAME, ACCESS_METHOD, FILEID)
119 CHARACTER*(*) filename
120 INTEGER*1 ifilename(256)
121 INTEGER access_method
122 INTEGER fileid(*),nxifopen
125 nxopen = nxifopen(ifilename, access_method, fileid)
129 INTEGER fileid(*),nxifclose
135 INTEGER fileid(*), nxifflush
141 INTEGER fileid(*),nximakegroup
142 CHARACTER*(*) vgroup, nxclass
143 INTEGER*1 ivgroup(256), inxclass(256)
144 EXTERNAL nximakegroup
147 nxmakegroup = nximakegroup(fileid, ivgroup, inxclass)
151 INTEGER fileid(*),nxiopengroup
152 CHARACTER*(*) vgroup, nxclass
153 INTEGER*1 ivgroup(256), inxclass(256)
154 EXTERNAL nxiopengroup
157 nxopengroup = nxiopengroup(fileid, ivgroup, inxclass)
161 INTEGER fileid(*),nxiopenpath
170 INTEGER fileid(*),nxigetpath, nxifgetpath
172 INTEGER*1 ipath(1024)
176 nxgetpath = nxifgetpath(fileid,ipath,plen)
181 INTEGER fileid(*),nxiopengrouppath
184 EXTERNAL nxiopengrouppath
190 INTEGER fileid(*),nxiclosegroup
191 EXTERNAL nxiclosegroup
195 INTEGER FUNCTION nxmakedata(FILEID, LABEL, DATATYPE, RANK, DIM)
196 INTEGER fileid(*), datatype, rank, dim(*), nxifmakedata
198 INTEGER*1 ilabel(256)
199 EXTERNAL nxifmakedata
201 nxmakedata = nxifmakedata(fileid, ilabel, datatype, rank, dim)
205 & dim, compression_type, chunk)
206 INTEGER fileid(*), datatype, rank, dim(*)
207 INTEGER compression_type, chunk(*)
208 INTEGER nxifcompmakedata
210 INTEGER*1 ilabel(256)
211 EXTERNAL nxifmakedata
214 & rank, dim, compression_type, chunk)
218 INTEGER fileid(*),nxiopendata
220 INTEGER*1 ilabel(256)
227 INTEGER fileid(*),nxisetnumberformat,itype
229 INTEGER*1 ilabel(256)
230 EXTERNAL nxisetnumberformat
236 INTEGER fileid(*),nxifcompress,compr_type
237 EXTERNAL nxifcompress
242 INTEGER fileid(*),nxiclosedata
243 EXTERNAL nxiclosedata
248 INTEGER fileid(*), data(*), nxigetdata
254 INTEGER fileid(*), nxigetdata
256 INTEGER nx_error,nx_idatlen
257 parameter(nx_error=0,nx_idatlen=1024)
258 INTEGER*1 idata(nx_idatlen)
272 INTEGER fileid(*), data(*), start(*), size(*)
273 INTEGER nx_maxrank, nx_ok
274 parameter(nx_maxrank=32,nx_ok=1)
275 INTEGER rank, dim(nx_maxrank), datatype, i
276 INTEGER cstart(nx_maxrank), csize(nx_maxrank)
282 cstart(i) = start(rank-i+1) - 1
283 csize(i) =
SIZE(rank-i+1)
285 nxgetslab = nxigetslab(fileid,
DATA, cstart, csize)
288 INTEGER FUNCTION nxgetattr(FILEID, NAME, DATA, DATALEN, TYPE)
289 INTEGER fileid(*),data(*),datalen,type
295 nxgetattr = nxigetattr(fileid, iname,
DATA, datalen, type)
300 INTEGER max_datalen,nx_error
301 INTEGER fileid(*), datalen, type
302 parameter(max_datalen=1024,nx_error=0)
303 CHARACTER*(*) name, data
304 INTEGER*1 idata(max_datalen)
309 IF (datalen .GE. max_datalen)
THEN
310 WRITE(6,9020) datalen, max_datalen
314 nxgetcharattr = nxigetattr(fileid, iname, idata, datalen, type)
319 9020 format(
'NXgetattr: asked for attribute size ', i4,
320 +
' with buffer size only ', i4)
324 INTEGER fileid(*), data(*), nxiputdata
330 INTEGER fileid(*), nxiputdata
332 INTEGER*1 idata(1024)
339 INTEGER fileid(*), data(*), start(*), size(*)
340 INTEGER nx_maxrank,nx_ok
341 parameter(nx_maxrank=32,nx_ok=1)
342 INTEGER rank, dim(nx_maxrank), datatype, i
343 INTEGER cstart(nx_maxrank), csize(nx_maxrank)
349 cstart(i) = start(rank-i+1) - 1
350 csize(i) =
SIZE(rank-i+1)
352 nxputslab = nxiputslab(fileid,
DATA, cstart, csize)
355 INTEGER FUNCTION nxputattr(FILEID, NAME, DATA, DATALEN, TYPE)
356 INTEGER fileid(*), data(*), datalen, type
362 nxputattr = nxifputattr(fileid, iname,
DATA, datalen, type)
367 INTEGER fileid(*), datalen, type
368 CHARACTER*(*) name, data
370 INTEGER*1 idata(1024)
375 nxputcharattr = nxifputattr(fileid, iname, idata, datalen, type)
379 INTEGER fileid(*), rank, dim(*), datatype
380 INTEGER i, j, nxigetinfo, nx_char
382 nxgetinfo = nxigetinfo(fileid, rank, dim, datatype)
386 dim(i) = dim(rank-i+1)
392 INTEGER fileid(*), datatype
393 CHARACTER*(*) name, class
394 INTEGER*1 iname(256), iclass(256)
395 INTEGER nxigetnextentry
396 EXTERNAL nxigetnextentry
403 INTEGER fileid(*), ilength, itype, nxigetnextattr
405 INTEGER*1 ipname(1024)
406 EXTERNAL nxigetnextattr
407 nxgetnextattr = nxigetnextattr(fileid, ipname, ilength, itype)
412 INTEGER fileid(*), link(*), nxigetgroupid
413 EXTERNAL nxigetgroupid
418 INTEGER fileid(*), link(*), nxigetdataid
419 EXTERNAL nxigetdataid
424 INTEGER fileid(*), link(*), nximakelink
430 INTEGER fileid(*), link(*), nximakelink
433 EXTERNAL nximakenamedlink
439 INTEGER fileid(*),nxiopensourcegroup
440 EXTERNAL nxiopensourcegroup
445 INTEGER fileid(*), link1(*), link2(*), nxisameid, status
447 status = nxisameid(fileid, link1, link2)
448 IF (status .EQ. 1)
THEN
456 INTEGER fileid(*), num, nxigetgroupinfo
457 CHARACTER*(*) name, class
458 INTEGER*1 iname(256), iclass(256)
459 EXTERNAL nxigetgroupinfo
466 INTEGER fileid(*), nxiinitgroupdir
467 EXTERNAL nxiinitgroupdir
472 INTEGER fileid(*), num, nxigetattrinfo
473 EXTERNAL nxigetattrinfo
478 INTEGER fileid(*), nxiinitattrdir
479 EXTERNAL nxiinitattrdir
484 INTEGER fileid(*),nxiisexternalgroup, length
485 CHARACTER*(*) vgroup, nxclass, nxurl
486 INTEGER*1 ivgroup(256), inxclass(256), inxurl(256)
487 EXTERNAL nxiisexternalgroup
498 INTEGER fileid(*),nxiinquirefile, length
500 INTEGER*1 inxfile (1024)
501 EXTERNAL nxiinquirefile
508 INTEGER fileid(*),nxilinkexternal
509 CHARACTER*(*) vgroup, nxclass, nxurl
510 INTEGER*1 ivgroup(256), inxclass(256), inxurl(1024)
511 EXTERNAL nxilinkexternal