program sds_vrs_coordvar implicit none C C Parameter declaration. C character*7 FILE_NAME parameter (FILE_NAME = 'SDS.hdf') integer DFACC_READ, DFNT_INT32 parameter (DFACC_READ = 1, + DFNT_INT32 = 24) integer MAX_VAR_DIMS parameter (MAX_VAR_DIMS = 32) C C Function declaration. C integer sfstart, sfselect, sfiscvar, sffinfo, sfginfo integer sfendacc, sfend C C**** Variable declaration ******************************************* C integer sd_id, sds_id, sds_index, status integer rank, data_type integer n_datasets, n_file_attrs, n_attrs integer dim_sizes(MAX_VAR_DIMS) character*256 sds_name C C**** End of variable declaration ************************************ C C C Open the file and initialize the SD interface. C sd_id = sfstart(FILE_NAME, DFACC_READ) C C Obtain information about the file. C status = sffinfo(sd_id, n_datasets, n_file_attrs) C C Get information about each SDS in the file. C Check whether it is a coordinate variable, then display retrieved C information. C Output displayed: C C SDS array with the name SDStemplate C Coordinate variable with the name X_Axis C Coordinate variable with the name Y_Axis C do 10 sds_index = 0, n_datasets-1 sds_id = sfselect(sd_id, sds_index) status = sfginfo(sds_id, sds_name, rank, dim_sizes, + data_type, n_attrs) status = sfiscvar(sds_id) if (status .eq. 1) then write(*,*) "Coordinate variable with the name ", + sds_name(1:6) else write(*,*) "SDS array with the name ", + sds_name(1:11) endif C C Terminate access to the data set. C status = sfendacc(sds_id) 10 continue C C Terminate access to the SD interface and close the file. C status = sfend(sd_id) end