You have to first create the variable, eg:
NetcdfFileWriteable ncfle = new NetcdfFileWriteable(); // from netHead
ncfle.setName(outfle); // output file name
// define dimensions
Dimension netOut_nStrings = ncfile.addDimension("netOut_nStrings", 2);
Dimension netOut_strLen = ncfile.addDimension("netOut_strLen", 10);
// define Variable "netOut"
Dimension[] dims = new Dimension[2];
dims[0] = netOut_nStrings ;
dims[1] = netOut_strLen ;
ncfile.addVariable("netOut", char.class, dims);
try {
ncfle.create(); // create CDF binary file
} catch (IOException e) { System.out.println("ERROR creating file"); }
if you look at the user manual, it has some complete examples
http://www.unidata.ucar.edu/packages/netcdf-java/manual.htm
more info at
http://www.unidata.ucar.edu/packages/netcdf-java/
----- Original Message -----
From: "Unidata Support" <support@xxxxxxxxxxxxxxxx>
To: <semmerson@xxxxxxxxxxxxxxxx>
Sent: Tuesday, July 09, 2002 10:13 AM
Subject: 20020709: Exception in thread "main"
java.lang.IllegalArgumentException
>
> Bob Van Wie tried to send this to the netcdf-java list, but he is not
> subscribed.
>
> Tom
>
> ------- Forwarded Message
>
> >To: netcdf-java-approval@xxxxxxxxxxxxxxxx
> >From: owner-netcdf-java@xxxxxxxxxxxxxxxx
> >Subject: BOUNCE netcdf-java@xxxxxxxxxxxxxxxx: Non-member submission from
[bob@xxxxxxxxxxxxx]
> >Organization: UCAR/Unidata
> >Keywords: 200207091601.g69G1OH27403
>
> >From support@xxxxxxxxxxxxxxxx Tue Jul 9 10:01:23 2002
> Received: from nodc.noaa.gov (alcatraz.nodc.noaa.gov [140.90.235.254])
> by unidata.ucar.edu (UCAR/Unidata) with ESMTP id g69G1Ma27399
> for <netcdf-java@xxxxxxxxxxxxxxxx>; Tue, 9 Jul 2002 10:01:22 -0600 (MDT)
> Organization: UCAR/Unidata
> Keywords: 200207091601.g69G1Ma27399
> Received: from client by server id MAA53810511; Tue, 9 Jul 2002
12:01:21 -0400 (EDT)
> From: bob@xxxxxxxxxxxxx
> Message-Id: <200207091601.MAA53810511@xxxxxxxxxxxxx>
> Received: from client by client id MAA31408714; Tue, 9 Jul 2002
12:01:21 -0400 (EDT)
> Date: Tue, 9 Jul 2002 12:01:21 -0400 (EDT)
>
> July 9, 2002
> Hello all,
>
> In running the following java program, I receive
> the following error message when attempting to write the
> file owith the statement:
>
> Exception in thread "main" java.lang.IllegalArgumentException:
> NetcdfFileWriteable.write illegal variable name netOut
> at ucar.nc2.NetcdfFileWriteable.write
>
>
>
> What is wrong with the output statement ?
>
> What is the purpose of the integer array "origin" ?
>
>
> Please help.
>
> Bob Van Wie
> Robert.Van.Wie@xxxxxxxx
>
>
> import ucar.ma2.*;
> import ucar.nc2.*;
>
> public class cdf
> {
> public net nt;
> NetcdfFileWriteable ncfile;
>
> cdf( ) { // constructor
> net nt = new net( );
> nt.netHead( );
> } // end constructor
> public static void main( String args[] ) {
> new cdf( );
> }
> } // end cnvMeds
>
> import ucar.ma2.*;
> import ucar.nc2.*;
> import java.io.IOException;
>
> public class net extends NetcdfFile {
>
> static String outfle = "netOut";
> static String seg[] = new String[2];
>
> net( ) { super(); }
>
> public void netHead( ) {
> int[] origin = new int[2];
> int numSegs = 2;
>
> NetcdfFileWriteable ncfle = new NetcdfFileWriteable(); // from
netHead
> ncfle.setName(outfle); // output file name
>
> try {
> ncfle.create(); // create CDF binary file
> } catch (IOException e) { System.out.println("ERROR creating
file"); }
> System.out.println( "ncfle = " + ncfle );
>
> seg[0] = "TEMP"; seg[1] = "PSAL";
> System.out.println( seg[0] + " seg " + seg[1] );
> ArrayChar ac = new ArrayChar.D2( 2, 4 );
> Index ima = ac.getIndex();
> for( int j=0; j < 2; j++ ) {
> ac.setString( ima.set(j), seg[j]);
> }
>
> try {
> ncfle.write( "netOut", origin, ac ); // <-- TROUBLE
!!
> } catch (IOException e) { System.out.println("ERROR writing
file"); }
> try {
> ncfle.close();
> } catch (IOException e) { System.out.println("ERROR closing file"); }
> } // end netHead
> }
>
>
> ------- End of Forwarded Message
>