function create_test_ncfile ( ncfile ) % CREATE_TEST_NCFILE: creates a file to use for several tests. % [ncid, status] = mexnc ( 'create', ncfile, nc_clobber_mode ); if ( status ~= 0 ) ncerr_msg = mexnc ( 'strerror', status ); msg = sprintf ( '%s: ''create'' failed on %s, error message '' %s ''\n', mfilename, ncfile, ncerr_msg ); error ( msg ); end % % Create the fixed dimension. len_x = 4; [xdimid, status] = mexnc ( 'def_dim', ncid, 'x', len_x ); if ( status ~= 0 ) ncerr_msg = mexnc ( 'strerror', status ); msg = sprintf ( '%s: ''def_dim'' failed on dim x, file %s, error message '' %s ''\n', mfilename, ncfile, ncerr_msg ); error ( msg ); end len_y = 6; [ydimid, status] = mexnc ( 'def_dim', ncid, 'y', len_y ); if ( status ~= 0 ) ncerr_msg = mexnc ( 'strerror', status ); msg = sprintf ( '%s: ''def_dim'' failed on dim y, file %s, error message '' %s ''\n', mfilename, ncfile, ncerr_msg ); error ( msg ); end % % Create the double singleton variable [varid, status] = mexnc ( 'def_var', ncid, 'double_singleton', nc_double, 0, [] ); if ( status ~= 0 ) ncerr_msg = mexnc ( 'strerror', status ); msg = sprintf ( '%s: %s\n', mfilename, ncerr_msg ); error ( msg ); end % % Create the float singleton variable [varid, status] = mexnc ( 'def_var', ncid, 'single_singleton', nc_float, 0, [] ); if ( status ~= 0 ) ncerr_msg = mexnc ( 'strerror', status ); msg = sprintf ( '%s: %s\n', mfilename, ncerr_msg ); error ( msg ); end % % Create the int singleton variable [varid, status] = mexnc ( 'def_var', ncid, 'int_singleton', nc_int, 0, [] ); if ( status ~= 0 ) ncerr_msg = mexnc ( 'strerror', status ); msg = sprintf ( '%s: %s\n', mfilename, ncerr_msg ); error ( msg ); end % % Create the short singleton variable [varid, status] = mexnc ( 'def_var', ncid, 'short_singleton', nc_short, 0, [] ); if ( status ~= 0 ) ncerr_msg = mexnc ( 'strerror', status ); msg = sprintf ( '%s: %s\n', mfilename, ncerr_msg ); error ( msg ); end % % Create the byte singleton variable [varid, status] = mexnc ( 'def_var', ncid, 'byte_singleton', nc_byte, 0, [] ); if ( status ~= 0 ) ncerr_msg = mexnc ( 'strerror', status ); msg = sprintf ( '%s: %s\n', mfilename, ncerr_msg ); error ( msg ); end % % Create the char singleton variable [varid, status] = mexnc ( 'def_var', ncid, 'char_singleton', nc_char, 0, [] ); if ( status ~= 0 ) ncerr_msg = mexnc ( 'strerror', status ); msg = sprintf ( '%s: %s\n', mfilename, ncerr_msg ); error ( msg ); end [varid, status] = mexnc ( 'def_var', ncid, 'z_double', nc_double, 2, [ydimid xdimid] ); if ( status ~= 0 ) ncerr_msg = mexnc ( 'strerror', status ); msg = sprintf ( '%s: ''def_var'' failed on var x_short, file %s, error message '' %s ''\n', mfilename, ncfile, ncerr_msg ); error ( msg ); end [varid, status] = mexnc ( 'def_var', ncid, 'z_float', nc_float, 2, [ydimid xdimid] ); if ( status ~= 0 ) ncerr_msg = mexnc ( 'strerror', status ); msg = sprintf ( '%s: ''def_var'' failed on var x_short, file %s, error message '' %s ''\n', mfilename, ncfile, ncerr_msg ); error ( msg ); end [varid, status] = mexnc ( 'def_var', ncid, 'z_int', nc_int, 2, [ydimid xdimid] ); if ( status ~= 0 ) ncerr_msg = mexnc ( 'strerror', status ); msg = sprintf ( '%s: ''def_var'' failed on var x_short, file %s, error message '' %s ''\n', mfilename, ncfile, ncerr_msg ); error ( msg ); end [varid, status] = mexnc ( 'def_var', ncid, 'z_short', nc_short, 2, [ydimid xdimid] ); if ( status ~= 0 ) ncerr_msg = mexnc ( 'strerror', status ); msg = sprintf ( '%s: ''def_var'' failed on var x_short, file %s, error message '' %s ''\n', mfilename, ncfile, ncerr_msg ); error ( msg ); end [varid, status] = mexnc ( 'def_var', ncid, 'z_byte', nc_byte, 2, [ydimid xdimid] ); if ( status ~= 0 ) ncerr_msg = mexnc ( 'strerror', status ); msg = sprintf ( '%s: ''def_var'' failed on var z_byte, file %s, error message '' %s ''\n', mfilename, ncfile, ncerr_msg ); error ( msg ); end [varid, status] = mexnc ( 'def_var', ncid, 'z_char', nc_char, 2, [ydimid xdimid] ); if ( status ~= 0 ) ncerr_msg = mexnc ( 'strerror', status ); msg = sprintf ( '%s: ''def_var'' failed on var z_byte, file %s, error message '' %s ''\n', mfilename, ncfile, ncerr_msg ); error ( msg ); end [status] = mexnc ( 'enddef', ncid ); if ( status ~= 0 ) ncerr_msg = mexnc ( 'strerror', status ); msg = sprintf ( '%s: ''enddef'' failed, file %s, error message '' %s ''\n', mfilename, ncfile, ncerr_msg ); error ( msg ); end [varid, status] = mexnc('INQ_VARID', ncid, 'z_double'); if ( status ~= 0 ) msg = sprintf ( '%s: INQ_VARID failed\n', mfilename ); error ( msg ); end % % CLOSE status = mexnc ( 'close', ncid ); if ( status ~= 0 ) error ( 'CLOSE failed' ); end return