ruby-netcdf 0.7.2 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -198,7 +198,7 @@ typedef int na_shape_t;
198
198
  obj = na_cast_object(obj, NA_SINT); \
199
199
  GetNArray(obj, na); \
200
200
  ptr = (int16_t *) NA_PTR(na,0); \
201
- }
201
+ }
202
202
  #define Array_to_Clint(obj, ptr) \
203
203
  { \
204
204
  struct NARRAY *na; \
@@ -257,7 +257,7 @@ static VALUE rb_eNetcdfFatal;
257
257
  static VALUE rb_eNetcdfEntool;
258
258
  static VALUE rb_eNetcdfExdr;
259
259
  static VALUE rb_eNetcdfSyserr;
260
-
260
+
261
261
 
262
262
  struct Netcdf{
263
263
  int ncid;
@@ -290,7 +290,7 @@ NetCDF_init(int ncid,char *filename)
290
290
  Netcdffile->ncid=ncid;
291
291
  Netcdffile->closed=0;
292
292
  Netcdffile->name=xmalloc((strlen(filename)+1)*sizeof(char));
293
- strcpy(Netcdffile->name,filename);
293
+ strcpy(Netcdffile->name,filename);
294
294
  return(Netcdffile);
295
295
  }
296
296
 
@@ -322,7 +322,7 @@ NetCDF_att_init(int ncid,int varid,char *attname)
322
322
  Netcdf_att->ncid=ncid;
323
323
  Netcdf_att->varid=varid;
324
324
  Netcdf_att->name=xmalloc((strlen(attname)+1)*sizeof(char));
325
- strcpy(Netcdf_att->name,attname);
325
+ strcpy(Netcdf_att->name,attname);
326
326
  return(Netcdf_att);
327
327
  }
328
328
 
@@ -351,7 +351,7 @@ NetCDF_free(struct Netcdf *Netcdffile)
351
351
  if (!Netcdffile->closed){
352
352
  nc_close(Netcdffile->ncid); /* no error check -- not to stop during GC */
353
353
  }
354
- free(Netcdffile->name);
354
+ free(Netcdffile->name);
355
355
  free(Netcdffile);
356
356
  }
357
357
 
@@ -576,14 +576,11 @@ NetCDF_close(file)
576
576
  int ncid;
577
577
  struct Netcdf *Netcdffile;
578
578
 
579
- if (rb_safe_level() >= 3 && !OBJ_TAINTED(file)) {
580
- rb_raise(rb_eSecurityError, "Insecure: can't close");
581
- }
582
579
  Data_Get_Struct(file,struct Netcdf,Netcdffile);
583
580
  ncid=Netcdffile->ncid;
584
581
  if(!Netcdffile->closed){
585
582
  status = nc_close(ncid);
586
- if(status != NC_NOERR) NC_RAISE(status);
583
+ if(status != NC_NOERR) NC_RAISE(status);
587
584
  Netcdffile->closed = 1;
588
585
  } else {
589
586
  rb_warn("file %s is already closed", Netcdffile->name);
@@ -602,10 +599,9 @@ NetCDF_def_dim(VALUE file,VALUE dim_name,VALUE length)
602
599
  struct Netcdf *Netcdffile;
603
600
  struct NetCDFDim *Netcdf_dim;
604
601
  VALUE Dimension;
605
-
606
- rb_secure(3);
602
+
607
603
  Data_Get_Struct(file,struct Netcdf,Netcdffile);
608
-
604
+
609
605
  Check_Type(dim_name,T_STRING);
610
606
  c_dim_name=RSTRING_PTR(dim_name);
611
607
  c_length=NUM2UINT(length);
@@ -696,19 +692,19 @@ NetCDF_put_att_numeric(int ncid, char *name,VALUE value,VALUE atttype, int varid
696
692
  len = na_val->total;
697
693
  ptr = na_val->ptr;
698
694
  switch(na_typecode){
699
- case NA_BYTE:
695
+ case NA_BYTE:
700
696
  status = nc_put_att_uchar(ncid,varid,name,NC_BYTE,len,(unsigned char *)ptr);
701
697
  break;
702
- case NA_SINT:
698
+ case NA_SINT:
703
699
  status = nc_put_att_short(ncid,varid,name,NC_SHORT,len,(short *)ptr);
704
700
  break;
705
- case NA_LINT:
701
+ case NA_LINT:
706
702
  status = nc_put_att_int(ncid,varid,name,NC_INT,len,(int *)ptr);
707
703
  break;
708
- case NA_SFLOAT:
704
+ case NA_SFLOAT:
709
705
  status = nc_put_att_float(ncid,varid,name,NC_FLOAT,len,(float *)ptr);
710
706
  break;
711
- case NA_DFLOAT:
707
+ case NA_DFLOAT:
712
708
  status = nc_put_att_double(ncid,varid,name,NC_DOUBLE,len,(double*)ptr);
713
709
  break;
714
710
  default:
@@ -746,7 +742,6 @@ NetCDF_put_att(VALUE file,VALUE att_name,VALUE value,VALUE atttype)
746
742
  struct Netcdf *ncfile;
747
743
  char *name;
748
744
 
749
- rb_secure(3);
750
745
  Data_Get_Struct(file,struct Netcdf,ncfile);
751
746
  Check_Type(att_name,T_STRING);
752
747
  name = RSTRING_PTR(att_name);
@@ -764,7 +759,6 @@ NetCDF_put_att_var(VALUE var,VALUE att_name,VALUE value,VALUE atttype)
764
759
  struct NetCDFVar *ncvar;
765
760
  char *name;
766
761
 
767
- rb_secure(3);
768
762
  Data_Get_Struct(var,struct NetCDFVar,ncvar);
769
763
  Check_Type(att_name,T_STRING);
770
764
  name = RSTRING_PTR(att_name);
@@ -791,20 +785,19 @@ NetCDF_def_var(VALUE file,VALUE var_name,VALUE vartype,VALUE dimensions)
791
785
  struct NetCDFDim *Netcdf_dim;
792
786
  VALUE Var;
793
787
 
794
- rb_secure(3);
795
788
  Check_Type(var_name,T_STRING);
796
789
  Check_Type(dimensions,T_ARRAY);
797
790
 
798
791
  c_var_name=RSTRING_PTR(var_name);
799
792
  c_ndims=RARRAY_LEN(dimensions);
800
-
793
+
801
794
  Data_Get_Struct(file,struct Netcdf,Netcdffile);
802
795
  ncid=Netcdffile->ncid;
803
796
 
804
797
  if (TYPE(vartype) == T_STRING){
805
- xtype = natype2nctype(RSTRING_PTR(vartype));
798
+ xtype = natype2nctype(RSTRING_PTR(vartype));
806
799
  } else if (TYPE(vartype) == T_FIXNUM){
807
- xtype = natypecode2nctype(NUM2INT(vartype));
800
+ xtype = natypecode2nctype(NUM2INT(vartype));
808
801
  } else {
809
802
  rb_raise(rb_eNetcdfError,
810
803
  "type specfication must be by a string or nil");
@@ -827,12 +820,12 @@ NetCDF_def_var(VALUE file,VALUE var_name,VALUE vartype,VALUE dimensions)
827
820
  rb_raise(rb_eNetcdfError, "No such object of the netCDF dimension class.");
828
821
  }
829
822
  }
830
-
823
+
831
824
  status = nc_def_var(ncid,c_var_name,xtype,c_ndims,c_dimids,&varidp);
832
825
  if(status != NC_NOERR) NC_RAISE(status);
833
-
826
+
834
827
  Netcdf_var = NetCDF_var_init(ncid,varidp,file);
835
-
828
+
836
829
  Var=Data_Wrap_Struct(cNetCDFVar,nc_mark_obj,NetCDF_var_free,Netcdf_var);
837
830
  return Var;
838
831
  }
@@ -852,10 +845,10 @@ NetCDF_dim(VALUE file,VALUE dim_name)
852
845
  ncid=Netcdffile->ncid;
853
846
  Check_Type(dim_name,T_STRING);
854
847
  c_dim_name=RSTRING_PTR(dim_name);
855
-
848
+
856
849
  status = nc_inq_dimid(ncid,c_dim_name,&dimidp);
857
850
  if(status !=NC_NOERR){
858
- if(status == NC_EBADDIM){
851
+ if(status == NC_EBADDIM){
859
852
  return(Qnil); /*2003/08/27 back to orig (from changes on 2003/02/03)*/
860
853
  } else{
861
854
  NC_RAISE(status);
@@ -863,14 +856,14 @@ NetCDF_dim(VALUE file,VALUE dim_name)
863
856
  }
864
857
 
865
858
  Netcdf_dim=NetCDF_dim_init(ncid,dimidp);
866
-
859
+
867
860
  Dimension = Data_Wrap_Struct(cNetCDFDim,0,NetCDF_dim_free,Netcdf_dim);
868
861
  return Dimension;
869
862
  }
870
863
 
871
- VALUE
864
+ VALUE
872
865
  NetCDF_var(VALUE file,VALUE var_name)
873
- {
866
+ {
874
867
  int ncid;
875
868
  int status;
876
869
  int varidp;
@@ -883,16 +876,16 @@ NetCDF_var(VALUE file,VALUE var_name)
883
876
  ncid=Netcdffile->ncid;
884
877
  Check_Type(var_name,T_STRING);
885
878
  c_var_name=RSTRING_PTR(var_name);
886
-
879
+
887
880
  status=nc_inq_varid(ncid,c_var_name,&varidp);
888
881
  if(status != NC_NOERR){
889
882
  if(status == NC_ENOTVAR){
890
883
  return(Qnil); /*2003/08/27 back to orig (from changes on 2003/02/03)*/
891
- } else{
884
+ } else{
892
885
  NC_RAISE(status);
893
886
  }
894
887
  }
895
-
888
+
896
889
  Netcdf_var = NetCDF_var_init(ncid,varidp,file);
897
890
  Variable = Data_Wrap_Struct(cNetCDFVar,nc_mark_obj,NetCDF_var_free,Netcdf_var);
898
891
  return Variable;
@@ -913,7 +906,7 @@ NetCDF_att(VALUE file,VALUE att_name)
913
906
  ncid=Netcdffile->ncid;
914
907
  Check_Type(att_name,T_STRING);
915
908
  c_att_name=RSTRING_PTR(att_name);
916
-
909
+
917
910
 
918
911
  status = nc_inq_attid(ncid,NC_GLOBAL,c_att_name,&attnump);
919
912
  if(status != NC_NOERR){
@@ -924,11 +917,11 @@ NetCDF_att(VALUE file,VALUE att_name)
924
917
  NC_RAISE(status);
925
918
  }
926
919
  }
927
-
920
+
928
921
  Netcdf_att = NetCDF_att_init(ncid,NC_GLOBAL,c_att_name);
929
-
922
+
930
923
  Attribute = Data_Wrap_Struct(cNetCDFAtt,0,Netcdf_att_free,Netcdf_att);
931
-
924
+
932
925
  return Attribute;
933
926
  }
934
927
  VALUE
@@ -938,7 +931,7 @@ NetCDF_fill(VALUE file,VALUE mode)
938
931
  int status;
939
932
  struct Netcdf *Netcdffile;
940
933
  int old_modep;
941
-
934
+
942
935
  Data_Get_Struct(file,struct Netcdf,Netcdffile);
943
936
  ncid = Netcdffile->ncid;
944
937
  if(mode==Qfalse){
@@ -961,7 +954,6 @@ NetCDF_redef(VALUE file)
961
954
  int status;
962
955
  struct Netcdf *Netcdffile;
963
956
 
964
- rb_secure(3);
965
957
  Data_Get_Struct(file,struct Netcdf,Netcdffile);
966
958
  ncid=Netcdffile->ncid;
967
959
  status = nc_redef(ncid);
@@ -976,18 +968,17 @@ NetCDF_redef(VALUE file)
976
968
  return Qtrue;
977
969
  }
978
970
 
979
- VALUE
971
+ VALUE
980
972
  NetCDF_enddef(VALUE file)
981
973
  {
982
974
  int ncid;
983
975
  int status;
984
976
  struct Netcdf *Netcdffile;
985
977
 
986
- rb_secure(3);
987
978
  Data_Get_Struct(file,struct Netcdf,Netcdffile);
988
979
  ncid=Netcdffile->ncid;
989
980
  status = nc_enddef(ncid);
990
- if(status !=NC_NOERR){
981
+ if(status !=NC_NOERR){
991
982
  if(status == NC_ENOTINDEFINE){
992
983
  return Qnil;
993
984
  }
@@ -998,7 +989,7 @@ NetCDF_enddef(VALUE file)
998
989
  return Qtrue;
999
990
  }
1000
991
 
1001
- VALUE
992
+ VALUE
1002
993
  NetCDF_whether_in_define_mode(VALUE file)
1003
994
  {
1004
995
  /* returns true if the NetCDF object is currently in the define mode,
@@ -1010,7 +1001,6 @@ NetCDF_whether_in_define_mode(VALUE file)
1010
1001
  int status;
1011
1002
  struct Netcdf *Netcdffile;
1012
1003
 
1013
- rb_secure(3);
1014
1004
  Data_Get_Struct(file,struct Netcdf,Netcdffile);
1015
1005
  ncid=Netcdffile->ncid;
1016
1006
  status = nc_redef(ncid);
@@ -1030,7 +1020,7 @@ NetCDF_whether_in_define_mode(VALUE file)
1030
1020
  }
1031
1021
 
1032
1022
  VALUE
1033
- NetCDF_open(VALUE mod,VALUE filename,VALUE omode)
1023
+ NetCDF_open(VALUE mod,VALUE filename,VALUE omode)
1034
1024
  {
1035
1025
  int status;
1036
1026
  int ncid;
@@ -1044,7 +1034,7 @@ NetCDF_open(VALUE mod,VALUE filename,VALUE omode)
1044
1034
  c_filename=RSTRING_PTR(filename);
1045
1035
  Check_Type(omode,T_FIXNUM);
1046
1036
  c_omode=NUM2INT(omode);
1047
-
1037
+
1048
1038
  status = nc_open(c_filename,c_omode,&ncid);
1049
1039
  if(status !=NC_NOERR){NC_RAISE2(status,c_filename);}
1050
1040
 
@@ -1061,13 +1051,13 @@ NetCDF_create(VALUE mod,VALUE filename,VALUE cmode)
1061
1051
  char* c_filename;
1062
1052
  int c_cmode;
1063
1053
  struct Netcdf *ncfile;
1064
-
1054
+
1065
1055
  Check_Type(filename,T_STRING);
1066
1056
  SafeStringValue(filename);
1067
1057
  c_filename=RSTRING_PTR(filename);
1068
1058
  Check_Type(cmode,T_FIXNUM);
1069
1059
  c_cmode=NUM2INT(cmode);
1070
-
1060
+
1071
1061
  status = nc_create(c_filename,c_cmode,&ncid);
1072
1062
  if(status != NC_NOERR) NC_RAISE2(status, c_filename);
1073
1063
 
@@ -1075,7 +1065,7 @@ NetCDF_create(VALUE mod,VALUE filename,VALUE cmode)
1075
1065
  return( Data_Wrap_Struct(cNetCDF,0,NetCDF_free,ncfile) );
1076
1066
  }
1077
1067
 
1078
- VALUE
1068
+ VALUE
1079
1069
  NetCDF_ndims(VALUE file)
1080
1070
  {
1081
1071
  int ncid;
@@ -1092,7 +1082,7 @@ NetCDF_ndims(VALUE file)
1092
1082
  return Integer;
1093
1083
  }
1094
1084
 
1095
- VALUE
1085
+ VALUE
1096
1086
  NetCDF_nvars(VALUE file)
1097
1087
  {
1098
1088
  int ncid;
@@ -1108,7 +1098,7 @@ NetCDF_nvars(VALUE file)
1108
1098
  return Integer;
1109
1099
  }
1110
1100
 
1111
- VALUE
1101
+ VALUE
1112
1102
  NetCDF_natts(VALUE file)
1113
1103
  {
1114
1104
  int ncid;
@@ -1139,10 +1129,10 @@ NetCDF_unlimited(VALUE file)
1139
1129
  ncid=ncfile->ncid;
1140
1130
  status=nc_inq_unlimdim(ncid,&unlimdimidp);
1141
1131
  if(status !=NC_NOERR) NC_RAISE(status);
1142
-
1132
+
1143
1133
  Netcdf_dim = NetCDF_dim_init(ncid,unlimdimidp);
1144
-
1145
- /* If unlimdimidp=-1,No unlimited dimension is defined in the netCDF dataset */
1134
+
1135
+ /* If unlimdimidp=-1,No unlimited dimension is defined in the netCDF dataset */
1146
1136
  if(unlimdimidp != -1)
1147
1137
  {
1148
1138
  Dimension = Data_Wrap_Struct(cNetCDFDim,0,NetCDF_dim_free,Netcdf_dim);
@@ -1156,7 +1146,7 @@ NetCDF_unlimited(VALUE file)
1156
1146
 
1157
1147
  #if NCVER >= 400
1158
1148
 
1159
- VALUE
1149
+ VALUE
1160
1150
  NetCDF_format(VALUE file)
1161
1151
  {
1162
1152
  int ncid;
@@ -1177,7 +1167,7 @@ NetCDF_format(VALUE file)
1177
1167
  }
1178
1168
 
1179
1169
  #endif
1180
-
1170
+
1181
1171
  VALUE
1182
1172
  NetCDF_sync(VALUE file)
1183
1173
  {
@@ -1185,7 +1175,6 @@ NetCDF_sync(VALUE file)
1185
1175
  int status;
1186
1176
  struct Netcdf *ncfile;
1187
1177
 
1188
- rb_secure(3);
1189
1178
  Data_Get_Struct(file,struct Netcdf,ncfile);
1190
1179
  ncid=ncfile->ncid;
1191
1180
  status = nc_sync(ncid);
@@ -1198,7 +1187,7 @@ NetCDF_path(VALUE file)
1198
1187
  {
1199
1188
  char *path;
1200
1189
  struct Netcdf *ncfile;
1201
-
1190
+
1202
1191
  Data_Get_Struct(file,struct Netcdf,ncfile);
1203
1192
  path=ncfile->name;
1204
1193
  return(rb_str_new2(path));
@@ -1212,14 +1201,14 @@ NetCDF_dim_length(VALUE Dim)
1212
1201
  int dimid;
1213
1202
  size_t lengthp;
1214
1203
  struct NetCDFDim *Netcdf_dim;
1215
-
1204
+
1216
1205
  Data_Get_Struct(Dim,struct NetCDFDim,Netcdf_dim);
1217
1206
  ncid=Netcdf_dim->ncid;
1218
1207
  dimid=Netcdf_dim->dimid;
1219
1208
 
1220
1209
  status = nc_inq_dimlen(ncid,dimid,&lengthp);
1221
1210
  if(status != NC_NOERR) NC_RAISE(status);
1222
-
1211
+
1223
1212
  return(INT2NUM(lengthp));
1224
1213
  }
1225
1214
 
@@ -1231,8 +1220,7 @@ NetCDF_dim_name(VALUE Dim,VALUE dimension_newname)
1231
1220
  int dimid;
1232
1221
  char *c_dim_name;
1233
1222
  struct NetCDFDim *Netcdf_dim;
1234
-
1235
- rb_secure(3);
1223
+
1236
1224
  Data_Get_Struct(Dim,struct NetCDFDim,Netcdf_dim);
1237
1225
  ncid=Netcdf_dim->ncid;
1238
1226
  dimid=Netcdf_dim->dimid;
@@ -1241,7 +1229,7 @@ NetCDF_dim_name(VALUE Dim,VALUE dimension_newname)
1241
1229
 
1242
1230
  status = nc_rename_dim(ncid,dimid,c_dim_name);
1243
1231
  if(status !=NC_NOERR) NC_RAISE(status);
1244
-
1232
+
1245
1233
  return Qnil;
1246
1234
  }
1247
1235
 
@@ -1254,14 +1242,14 @@ NetCDF_dim_inqname(VALUE Dim)
1254
1242
  char c_dim_name[NC_MAX_NAME];
1255
1243
  struct NetCDFDim *Netcdf_dim;
1256
1244
  VALUE str;
1257
-
1245
+
1258
1246
  Data_Get_Struct(Dim,struct NetCDFDim,Netcdf_dim);
1259
1247
  ncid=Netcdf_dim->ncid;
1260
1248
  dimid=Netcdf_dim->dimid;
1261
-
1249
+
1262
1250
  status = nc_inq_dimname(ncid,dimid,c_dim_name);
1263
1251
  if(status !=NC_NOERR) NC_RAISE(status);
1264
-
1252
+
1265
1253
  str = rb_str_new2(c_dim_name);
1266
1254
  OBJ_TAINT(str);
1267
1255
  return(str);
@@ -1273,7 +1261,7 @@ NetCDF_dim_whether_unlimited(VALUE Dim)
1273
1261
  int status;
1274
1262
  int uldid;
1275
1263
  struct NetCDFDim *Netcdf_dim;
1276
-
1264
+
1277
1265
  Data_Get_Struct(Dim,struct NetCDFDim,Netcdf_dim);
1278
1266
  status=nc_inq_unlimdim(Netcdf_dim->ncid,&uldid);
1279
1267
  if(status !=NC_NOERR) NC_RAISE(status);
@@ -1293,7 +1281,7 @@ NetCDF_att_inq_name(VALUE Att)
1293
1281
 
1294
1282
  Data_Get_Struct(Att,struct NetCDFAtt,Netcdf_att);
1295
1283
  c_att_name=Netcdf_att->name;
1296
-
1284
+
1297
1285
  str = rb_str_new2(c_att_name);
1298
1286
  OBJ_TAINT(str);
1299
1287
  return(str);
@@ -1311,16 +1299,16 @@ NetCDF_att_rename(VALUE Att,VALUE new_att_name)
1311
1299
  Data_Get_Struct(Att,struct NetCDFAtt,Netcdf_att);
1312
1300
  ncid=Netcdf_att->ncid;
1313
1301
  varid=Netcdf_att->varid;
1314
-
1302
+
1315
1303
  c_att_name=Netcdf_att->name;
1316
-
1304
+
1317
1305
  Check_Type(new_att_name,T_STRING);
1318
1306
  SafeStringValue(new_att_name);
1319
1307
  c_new_att_name=StringValueCStr(new_att_name);
1320
-
1308
+
1321
1309
  status = nc_rename_att(ncid,varid,c_att_name,c_new_att_name);
1322
1310
  if(status != NC_NOERR) NC_RAISE(status);
1323
-
1311
+
1324
1312
  strcpy(Netcdf_att->name,c_new_att_name);
1325
1313
  return Qnil;
1326
1314
  }
@@ -1351,7 +1339,7 @@ NetCDF_id2var(VALUE file,VALUE varid)
1351
1339
  struct Netcdf *ncfile;
1352
1340
  struct NetCDFVar *Netcdf_var;
1353
1341
  VALUE Var;
1354
-
1342
+
1355
1343
  Data_Get_Struct(file,struct Netcdf,ncfile);
1356
1344
  ncid=ncfile->ncid;
1357
1345
  Check_Type(varid,T_FIXNUM);
@@ -1373,7 +1361,7 @@ NetCDF_id2att(VALUE file,VALUE attnum)
1373
1361
  char *c_att_name;
1374
1362
  VALUE Att;
1375
1363
  c_att_name=ALLOCA_N(char,NC_MAX_NAME);
1376
-
1364
+
1377
1365
  Data_Get_Struct(file,struct Netcdf,ncfile);
1378
1366
  ncid=ncfile->ncid;
1379
1367
 
@@ -1401,7 +1389,7 @@ NetCDF_var_deflate(int argc, VALUE *argv, VALUE Var)
1401
1389
  struct NetCDFVar *Netcdf_var;
1402
1390
 
1403
1391
  int shuffle;
1404
- /* If non-zero, turn on the shuffle filter.
1392
+ /* If non-zero, turn on the shuffle filter.
1405
1393
 
1406
1394
  http://www.unidata.ucar.edu/software/netcdf/papers/AMS_2008.pdf :
1407
1395
  The shuffle algorithm changes the byte order in the data stream;
@@ -1421,7 +1409,7 @@ NetCDF_var_deflate(int argc, VALUE *argv, VALUE Var)
1421
1409
  level specified by the deflate_level parameter.
1422
1410
  */
1423
1411
 
1424
- if (argc>2 || argc<1) rb_raise(rb_eArgError,
1412
+ if (argc>2 || argc<1) rb_raise(rb_eArgError,
1425
1413
  "wrong # of arguments (%d). It must be 1 or 2", argc);
1426
1414
 
1427
1415
  Data_Get_Struct(Var,struct NetCDFVar,Netcdf_var);
@@ -1457,7 +1445,7 @@ NetCDF_var_deflate_params(VALUE Var)
1457
1445
  Data_Get_Struct(Var,struct NetCDFVar,Netcdf_var);
1458
1446
  ncid = Netcdf_var->ncid;
1459
1447
  varid = Netcdf_var->varid;
1460
- status = nc_inq_var_deflate(ncid, varid, &shufflep, &deflatep,
1448
+ status = nc_inq_var_deflate(ncid, varid, &shufflep, &deflatep,
1461
1449
  &deflate_levelp);
1462
1450
  if(status != NC_NOERR) NC_RAISE(status);
1463
1451
  if (shufflep==0) {sh=Qfalse;} else {sh=Qtrue;}
@@ -1508,7 +1496,7 @@ NetCDF_var_id2att(VALUE Var,VALUE attnum)
1508
1496
  struct NetCDFAtt *Netcdf_att;
1509
1497
  char *c_att_name;
1510
1498
  VALUE Att;
1511
-
1499
+
1512
1500
  Data_Get_Struct(Var,struct NetCDFVar,Netcdf_var);
1513
1501
  ncid=Netcdf_var->ncid;
1514
1502
  c_varid=Netcdf_var->varid;
@@ -1520,7 +1508,7 @@ NetCDF_var_id2att(VALUE Var,VALUE attnum)
1520
1508
 
1521
1509
  status = nc_inq_attname(ncid,c_varid,c_attnum,c_att_name);
1522
1510
  if(status != NC_NOERR) NC_RAISE(status);
1523
-
1511
+
1524
1512
  Netcdf_att=NetCDF_att_init(ncid,c_varid,c_att_name);
1525
1513
  Att=Data_Wrap_Struct(cNetCDFAtt,0,Netcdf_att_free,Netcdf_att);
1526
1514
  return(Att);
@@ -1545,7 +1533,7 @@ NetCDF_var_dims(VALUE Var)
1545
1533
  Dims = rb_ary_new();
1546
1534
  for(i=0;i<ndims;i++){
1547
1535
  Netcdf_dim = NetCDF_dim_init(ncid,dimids[ndims-1-i]);
1548
- rb_ary_push(Dims,
1536
+ rb_ary_push(Dims,
1549
1537
  Data_Wrap_Struct(cNetCDFDim,0,NetCDF_dim_free,Netcdf_dim));
1550
1538
  }
1551
1539
  return(Dims);
@@ -1589,7 +1577,6 @@ NetCDF_att_copy(VALUE Att,VALUE Var_or_File)
1589
1577
  struct Netcdf *ncfile;
1590
1578
  struct NetCDFAtt *Netcdf_att_out;
1591
1579
 
1592
- rb_secure(3);
1593
1580
  Data_Get_Struct(Att,struct NetCDFAtt,Netcdf_att);
1594
1581
  ncid_in=Netcdf_att->ncid;
1595
1582
  varid_in=Netcdf_att->varid;
@@ -1635,7 +1622,7 @@ NetCDF_att_atttype(VALUE Att)
1635
1622
  Attname = nctype2natype(xtypep);
1636
1623
  return(rb_str_new2(Attname));
1637
1624
  }
1638
-
1625
+
1639
1626
  VALUE
1640
1627
  NetCDF_att_typecode(VALUE Att)
1641
1628
  {
@@ -1653,10 +1640,10 @@ NetCDF_att_typecode(VALUE Att)
1653
1640
 
1654
1641
  status = nc_inq_atttype(ncid,varid,att_name,&xtypep);
1655
1642
  if(status != NC_NOERR) NC_RAISE(status);
1656
-
1643
+
1657
1644
  return(INT2NUM(nctype2natypecode(xtypep)));
1658
1645
  }
1659
-
1646
+
1660
1647
  VALUE
1661
1648
  NetCDF_att_delete(VALUE Att)
1662
1649
  {
@@ -1666,7 +1653,6 @@ NetCDF_att_delete(VALUE Att)
1666
1653
  char *c_att_name;
1667
1654
  struct NetCDFAtt *Netcdf_att;
1668
1655
 
1669
- rb_secure(3);
1670
1656
  Data_Get_Struct(Att,struct NetCDFAtt,Netcdf_att);
1671
1657
 
1672
1658
  ncid=Netcdf_att->ncid;
@@ -1675,7 +1661,7 @@ NetCDF_att_delete(VALUE Att)
1675
1661
 
1676
1662
  status = nc_del_att(ncid,varid,c_att_name);
1677
1663
  if(status != NC_NOERR) NC_RAISE(status);
1678
-
1664
+
1679
1665
  return Qnil;
1680
1666
  }
1681
1667
 
@@ -1687,13 +1673,12 @@ NetCDF_att_put(VALUE Att,VALUE value,VALUE atttype)
1687
1673
  */
1688
1674
  {
1689
1675
  struct NetCDFAtt *ncatt;
1690
-
1691
- rb_secure(3);
1676
+
1692
1677
  Data_Get_Struct(Att,struct NetCDFAtt,ncatt);
1693
- return( NetCDF_put_att__(ncatt->ncid, ncatt->name, value,
1678
+ return( NetCDF_put_att__(ncatt->ncid, ncatt->name, value,
1694
1679
  atttype, ncatt->varid) );
1695
1680
  }
1696
-
1681
+
1697
1682
  VALUE
1698
1683
  NetCDF_att_get(VALUE Att)
1699
1684
  {
@@ -1740,7 +1725,7 @@ NetCDF_att_get(VALUE Att)
1740
1725
 
1741
1726
  attlen[0]=lenp;
1742
1727
  Cbyte_to_NArray(NArray,1,attlen,up);
1743
-
1728
+
1744
1729
  status = nc_get_att_uchar(ncid,varid,c_attname,up);
1745
1730
  if(status != NC_NOERR) NC_RAISE(status);
1746
1731
 
@@ -1753,7 +1738,7 @@ NetCDF_att_get(VALUE Att)
1753
1738
 
1754
1739
  attlen[0]=lenp;
1755
1740
  Csint_to_NArray(NArray,1,attlen,sp);
1756
-
1741
+
1757
1742
  status = nc_get_att_short(ncid,varid,c_attname,sp);
1758
1743
  if(status != NC_NOERR) NC_RAISE(status);
1759
1744
  OBJ_TAINT(NArray);
@@ -1762,10 +1747,10 @@ NetCDF_att_get(VALUE Att)
1762
1747
  case NC_INT:
1763
1748
  status = nc_inq_attlen(ncid,varid,c_attname,&lenp);
1764
1749
  if(status != NC_NOERR) NC_RAISE(status);
1765
-
1750
+
1766
1751
  attlen[0]=lenp;
1767
1752
  Clint_to_NArray(NArray,1,attlen,ip);
1768
-
1753
+
1769
1754
  status = nc_get_att_int(ncid,varid,c_attname,ip);
1770
1755
  if(status != NC_NOERR) NC_RAISE(status);
1771
1756
 
@@ -1778,7 +1763,7 @@ NetCDF_att_get(VALUE Att)
1778
1763
 
1779
1764
  attlen[0]=lenp;
1780
1765
  Cfloat_to_NArray(NArray,1,attlen,fp);
1781
-
1766
+
1782
1767
  status = nc_get_att_float(ncid,varid,c_attname,fp);
1783
1768
  if(status != NC_NOERR) NC_RAISE(status);
1784
1769
 
@@ -1791,7 +1776,7 @@ NetCDF_att_get(VALUE Att)
1791
1776
 
1792
1777
  attlen[0]=lenp;
1793
1778
  Cdouble_to_NArray(NArray,1,attlen,dp);
1794
-
1779
+
1795
1780
  status = nc_get_att_double(ncid,varid,c_attname,dp);
1796
1781
  if(status != NC_NOERR) NC_RAISE(status);
1797
1782
  OBJ_TAINT(NArray);
@@ -1803,7 +1788,7 @@ NetCDF_att_get(VALUE Att)
1803
1788
  return Qnil;
1804
1789
  }
1805
1790
 
1806
-
1791
+
1807
1792
  VALUE
1808
1793
  NetCDF_var_inq_name(VALUE Var)
1809
1794
  {
@@ -1820,7 +1805,7 @@ NetCDF_var_inq_name(VALUE Var)
1820
1805
  varid=Netcdf_var->varid;
1821
1806
  status = nc_inq_varname(ncid,varid,c_var_name);
1822
1807
  if(status != NC_NOERR) NC_RAISE(status);
1823
-
1808
+
1824
1809
  Var_name=rb_str_new2(c_var_name);
1825
1810
  OBJ_TAINT(Var_name);
1826
1811
  return Var_name;
@@ -1837,7 +1822,7 @@ NetCDF_var_ndims(VALUE Var)
1837
1822
  VALUE Var_ndims;
1838
1823
 
1839
1824
  Data_Get_Struct(Var,struct NetCDFVar,Netcdf_var);
1840
-
1825
+
1841
1826
  ncid=Netcdf_var->ncid;
1842
1827
  varid=Netcdf_var->varid;
1843
1828
  status = nc_inq_varndims(ncid,varid,&ndimsp);
@@ -1855,15 +1840,15 @@ NetCDF_var_vartype(VALUE Var)
1855
1840
  nc_type xtypep;
1856
1841
  struct NetCDFVar *Netcdf_var;
1857
1842
  const char *Vartype;
1858
-
1843
+
1859
1844
  Data_Get_Struct(Var,struct NetCDFVar,Netcdf_var);
1860
-
1845
+
1861
1846
  ncid=Netcdf_var->ncid;
1862
1847
  varid=Netcdf_var->varid;
1863
1848
 
1864
1849
  status = nc_inq_vartype(ncid,varid,&xtypep);
1865
1850
  if(status != NC_NOERR) NC_RAISE(status);
1866
-
1851
+
1867
1852
  Vartype=nctype2natype(xtypep);
1868
1853
  return(rb_str_new2(Vartype));
1869
1854
  }
@@ -1876,19 +1861,19 @@ NetCDF_var_typecode(VALUE Var)
1876
1861
  int varid;
1877
1862
  nc_type xtypep;
1878
1863
  struct NetCDFVar *Netcdf_var;
1879
-
1864
+
1880
1865
  Data_Get_Struct(Var,struct NetCDFVar,Netcdf_var);
1881
-
1866
+
1882
1867
  ncid=Netcdf_var->ncid;
1883
1868
  varid=Netcdf_var->varid;
1884
1869
 
1885
1870
  status = nc_inq_vartype(ncid,varid,&xtypep);
1886
1871
  if(status != NC_NOERR) NC_RAISE(status);
1887
-
1872
+
1888
1873
  return(INT2NUM(nctype2natypecode(xtypep)));
1889
1874
  }
1890
1875
 
1891
-
1876
+
1892
1877
  VALUE
1893
1878
  NetCDF_var_natts(VALUE Var)
1894
1879
  {
@@ -1898,16 +1883,16 @@ NetCDF_var_natts(VALUE Var)
1898
1883
  int nattsp;
1899
1884
  struct NetCDFVar *Netcdf_var;
1900
1885
  VALUE Var_natts;
1901
-
1886
+
1902
1887
 
1903
1888
  Data_Get_Struct(Var,struct NetCDFVar,Netcdf_var);
1904
-
1889
+
1905
1890
  ncid=Netcdf_var->ncid;
1906
1891
  varid=Netcdf_var->varid;
1907
-
1892
+
1908
1893
  status= nc_inq_varnatts(ncid,varid,&nattsp);
1909
1894
  if(status !=NC_NOERR) NC_RAISE(status);
1910
-
1895
+
1911
1896
  Var_natts=INT2FIX(nattsp);
1912
1897
  return Var_natts;
1913
1898
  }
@@ -1918,7 +1903,7 @@ NetCDF_var_file(VALUE Var)
1918
1903
  struct NetCDFVar *Netcdf_var;
1919
1904
  /* VALUE file; */
1920
1905
  Data_Get_Struct(Var,struct NetCDFVar,Netcdf_var);
1921
-
1906
+
1922
1907
  return (Netcdf_var->file);
1923
1908
  }
1924
1909
 
@@ -1930,15 +1915,14 @@ NetCDF_var_rename(VALUE Var,VALUE var_new_name)
1930
1915
  int varid;
1931
1916
  char *c_var_new_name;
1932
1917
  struct NetCDFVar *Netcdf_var;
1933
-
1934
- rb_secure(3);
1918
+
1935
1919
  Data_Get_Struct(Var,struct NetCDFVar,Netcdf_var);
1936
1920
  ncid=Netcdf_var->ncid;
1937
1921
  varid=Netcdf_var->varid;
1938
1922
 
1939
1923
  Check_Type(var_new_name,T_STRING);
1940
1924
  c_var_new_name=StringValueCStr(var_new_name);
1941
-
1925
+
1942
1926
  status = nc_rename_var(ncid,varid,c_var_new_name);
1943
1927
  if(status !=NC_NOERR) NC_RAISE(status);
1944
1928
 
@@ -1958,13 +1942,13 @@ NetCDF_var_att(VALUE Var,VALUE att_name)
1958
1942
  VALUE Att;
1959
1943
 
1960
1944
  Data_Get_Struct(Var,struct NetCDFVar,Netcdf_var);
1961
-
1945
+
1962
1946
  ncid=Netcdf_var->ncid;
1963
1947
  varid=Netcdf_var->varid;
1964
1948
 
1965
1949
  Check_Type(att_name,T_STRING);
1966
1950
  c_att_name=StringValueCStr(att_name);
1967
-
1951
+
1968
1952
  status = nc_inq_attid(ncid,varid,c_att_name,&c_attnump);
1969
1953
  if(status == NC_NOERR){
1970
1954
  Netcdf_att=NetCDF_att_init(ncid,varid,c_att_name);
@@ -1982,17 +1966,17 @@ NetCDF_var_att(VALUE Var,VALUE att_name)
1982
1966
 
1983
1967
  /* Redifinition of the "==" and "eql?" methods */
1984
1968
 
1985
- VALUE
1969
+ VALUE
1986
1970
  NetCDF_eql(VALUE filea,VALUE fileb)
1987
1971
  {
1988
1972
  struct Netcdf *ncfilea;
1989
1973
  struct Netcdf *ncfileb;
1990
-
1974
+
1991
1975
  if( rb_obj_is_kind_of(fileb, cNetCDF) ){
1992
1976
  Data_Get_Struct(filea,struct Netcdf,ncfilea);
1993
1977
  Data_Get_Struct(fileb,struct Netcdf,ncfileb);
1994
-
1995
- if(ncfilea->ncid == ncfileb->ncid &&
1978
+
1979
+ if(ncfilea->ncid == ncfileb->ncid &&
1996
1980
  strcmp(ncfilea->name,ncfileb->name)==0){
1997
1981
  return Qtrue;
1998
1982
  } else {
@@ -2008,12 +1992,12 @@ NetCDF_var_eql(VALUE Vara,VALUE Varb)
2008
1992
  {
2009
1993
  struct NetCDFVar *Netcdf_vara;
2010
1994
  struct NetCDFVar *Netcdf_varb;
2011
-
1995
+
2012
1996
  if( rb_obj_is_kind_of(Varb, cNetCDFVar) ){
2013
1997
  Data_Get_Struct(Vara,struct NetCDFVar,Netcdf_vara);
2014
1998
  Data_Get_Struct(Varb,struct NetCDFVar,Netcdf_varb);
2015
1999
 
2016
- if(Netcdf_vara->ncid == Netcdf_varb->ncid &&
2000
+ if(Netcdf_vara->ncid == Netcdf_varb->ncid &&
2017
2001
  Netcdf_vara->varid == Netcdf_varb->varid){
2018
2002
  return Qtrue;
2019
2003
  } else {
@@ -2024,7 +2008,7 @@ NetCDF_var_eql(VALUE Vara,VALUE Varb)
2024
2008
  }
2025
2009
  }
2026
2010
 
2027
- VALUE
2011
+ VALUE
2028
2012
  NetCDF_dim_eql(VALUE Dima,VALUE Dimb)
2029
2013
  {
2030
2014
  struct NetCDFDim *Netcdf_dima;
@@ -2033,8 +2017,8 @@ NetCDF_dim_eql(VALUE Dima,VALUE Dimb)
2033
2017
  if( rb_obj_is_kind_of(Dimb, cNetCDFDim) ){
2034
2018
  Data_Get_Struct(Dima,struct NetCDFDim,Netcdf_dima);
2035
2019
  Data_Get_Struct(Dimb,struct NetCDFDim,Netcdf_dimb);
2036
-
2037
- if(Netcdf_dima->ncid == Netcdf_dimb->ncid &&
2020
+
2021
+ if(Netcdf_dima->ncid == Netcdf_dimb->ncid &&
2038
2022
  Netcdf_dima->dimid == Netcdf_dimb->dimid){
2039
2023
  return Qtrue;
2040
2024
  } else {
@@ -2050,16 +2034,16 @@ NetCDF_att_eql(VALUE Atta,VALUE Attb)
2050
2034
  {
2051
2035
  struct NetCDFAtt *Netcdf_atta;
2052
2036
  struct NetCDFAtt *Netcdf_attb;
2053
-
2037
+
2054
2038
  if( rb_obj_is_kind_of(Attb, cNetCDFAtt) ){
2055
2039
  Data_Get_Struct(Atta,struct NetCDFAtt,Netcdf_atta);
2056
2040
  Data_Get_Struct(Attb,struct NetCDFAtt,Netcdf_attb);
2057
-
2058
- if(Netcdf_atta->ncid == Netcdf_atta->ncid &&
2059
- Netcdf_atta->varid == Netcdf_attb->varid &&
2041
+
2042
+ if(Netcdf_atta->ncid == Netcdf_atta->ncid &&
2043
+ Netcdf_atta->varid == Netcdf_attb->varid &&
2060
2044
  strcmp(Netcdf_atta->name,Netcdf_attb->name)==0){
2061
2045
  return Qtrue;
2062
- } else {
2046
+ } else {
2063
2047
  return Qfalse;
2064
2048
  }
2065
2049
  } else {
@@ -2104,7 +2088,7 @@ NetCDF_get_var_char(VALUE Var)
2104
2088
  }
2105
2089
 
2106
2090
  Cbyte_to_NArray(NArray,ndimsp,shape,ptr);
2107
-
2091
+
2108
2092
  status = nc_get_var_text(ncid,varid,(char *)ptr);
2109
2093
  if(status != NC_NOERR) NC_RAISE(status);
2110
2094
 
@@ -2148,7 +2132,7 @@ NetCDF_get_var_byte(VALUE Var)
2148
2132
  }
2149
2133
 
2150
2134
  Cbyte_to_NArray(NArray,ndimsp,shape,ptr);
2151
-
2135
+
2152
2136
  status = nc_get_var_uchar(ncid,varid,ptr);
2153
2137
  if(status != NC_NOERR) NC_RAISE(status);
2154
2138
 
@@ -2192,7 +2176,7 @@ NetCDF_get_var_sint(VALUE Var)
2192
2176
  }
2193
2177
 
2194
2178
  Csint_to_NArray(NArray,ndimsp,shape,ptr);
2195
-
2179
+
2196
2180
  status = nc_get_var_short(ncid,varid,ptr);
2197
2181
  if(status != NC_NOERR) NC_RAISE(status);
2198
2182
 
@@ -2236,7 +2220,7 @@ NetCDF_get_var_int(VALUE Var)
2236
2220
  }
2237
2221
 
2238
2222
  Clint_to_NArray(NArray,ndimsp,shape,ptr);
2239
-
2223
+
2240
2224
  status = nc_get_var_int(ncid,varid,ptr);
2241
2225
  if(status != NC_NOERR) NC_RAISE(status);
2242
2226
 
@@ -2324,7 +2308,7 @@ NetCDF_get_var_double(VALUE Var)
2324
2308
  }
2325
2309
 
2326
2310
  Cdouble_to_NArray(NArray,ndimsp,shape,ptr);
2327
-
2311
+
2328
2312
  status = nc_get_var_double(ncid,varid,ptr);
2329
2313
  if(status != NC_NOERR) NC_RAISE(status);
2330
2314
 
@@ -2332,7 +2316,7 @@ NetCDF_get_var_double(VALUE Var)
2332
2316
  return NArray;
2333
2317
  }
2334
2318
 
2335
- VALUE
2319
+ VALUE
2336
2320
  NetCDF_get_var1_char(VALUE Var,VALUE start)
2337
2321
  {
2338
2322
  int ncid;
@@ -2349,7 +2333,7 @@ NetCDF_get_var1_char(VALUE Var,VALUE start)
2349
2333
  na_shape_t *c_count;
2350
2334
  VALUE NArray;
2351
2335
 
2352
-
2336
+
2353
2337
  Data_Get_Struct(Var,struct NetCDFVar,Netcdf_var);
2354
2338
  ncid = Netcdf_var->ncid;
2355
2339
  varid = Netcdf_var->varid;
@@ -2358,12 +2342,12 @@ NetCDF_get_var1_char(VALUE Var,VALUE start)
2358
2342
  if(ndims == 0) {
2359
2343
  rb_raise(rb_eNetcdfError,"Cannot specify a subset of a rank-0 scalar\n");
2360
2344
  }
2361
-
2345
+
2362
2346
  Check_Type(start,T_ARRAY);
2363
2347
  if(RARRAY_LEN(start) < ndims) {
2364
2348
  rb_raise(rb_eNetcdfError,"Length of 'start' is too short\n");
2365
2349
  }
2366
-
2350
+
2367
2351
  c_start=ALLOCA_N(size_t,ndims);
2368
2352
  c_count=ALLOCA_N(na_shape_t,ndims);
2369
2353
  for(i=0;i<ndims;i++){
@@ -2376,13 +2360,13 @@ NetCDF_get_var1_char(VALUE Var,VALUE start)
2376
2360
  l_start += dimlen;
2377
2361
  }
2378
2362
  c_start[i]=l_start;
2379
-
2363
+
2380
2364
  c_count[i]=1;
2381
2365
  }
2382
-
2383
-
2384
-
2385
-
2366
+
2367
+
2368
+
2369
+
2386
2370
  Cbyte_to_NArray(NArray,ndims,c_count,ptr);
2387
2371
  status = nc_get_var1_text(ncid,varid,c_start,(char *)ptr);
2388
2372
  if(status != NC_NOERR) NC_RAISE(status);
@@ -2392,7 +2376,7 @@ NetCDF_get_var1_char(VALUE Var,VALUE start)
2392
2376
 
2393
2377
  }
2394
2378
 
2395
- VALUE
2379
+ VALUE
2396
2380
  NetCDF_get_var1_byte(VALUE Var,VALUE start)
2397
2381
  {
2398
2382
  int ncid;
@@ -2409,7 +2393,7 @@ NetCDF_get_var1_byte(VALUE Var,VALUE start)
2409
2393
  na_shape_t *c_count;
2410
2394
  VALUE NArray;
2411
2395
 
2412
-
2396
+
2413
2397
  Data_Get_Struct(Var,struct NetCDFVar,Netcdf_var);
2414
2398
  ncid = Netcdf_var->ncid;
2415
2399
  varid = Netcdf_var->varid;
@@ -2418,12 +2402,12 @@ NetCDF_get_var1_byte(VALUE Var,VALUE start)
2418
2402
  if(ndims == 0) {
2419
2403
  rb_raise(rb_eNetcdfError,"Cannot specify a subset of a rank-0 scalar\n");
2420
2404
  }
2421
-
2405
+
2422
2406
  Check_Type(start,T_ARRAY);
2423
2407
  if(RARRAY_LEN(start) < ndims) {
2424
2408
  rb_raise(rb_eNetcdfError,"Length of 'start' is too short\n");
2425
2409
  }
2426
-
2410
+
2427
2411
  c_start=ALLOCA_N(size_t,ndims);
2428
2412
  c_count=ALLOCA_N(na_shape_t,ndims);
2429
2413
  for(i=0;i<ndims;i++){
@@ -2436,13 +2420,13 @@ NetCDF_get_var1_byte(VALUE Var,VALUE start)
2436
2420
  l_start += dimlen;
2437
2421
  }
2438
2422
  c_start[i]=l_start;
2439
-
2423
+
2440
2424
  c_count[i]=1;
2441
2425
  }
2442
-
2443
-
2444
-
2445
-
2426
+
2427
+
2428
+
2429
+
2446
2430
  Cbyte_to_NArray(NArray,ndims,c_count,ptr);
2447
2431
  status = nc_get_var1_uchar(ncid,varid,c_start,ptr);
2448
2432
  if(status != NC_NOERR) NC_RAISE(status);
@@ -2452,7 +2436,7 @@ NetCDF_get_var1_byte(VALUE Var,VALUE start)
2452
2436
 
2453
2437
  }
2454
2438
 
2455
- VALUE
2439
+ VALUE
2456
2440
  NetCDF_get_var1_sint(VALUE Var,VALUE start)
2457
2441
  {
2458
2442
  int ncid;
@@ -2477,12 +2461,12 @@ NetCDF_get_var1_sint(VALUE Var,VALUE start)
2477
2461
  if(ndims == 0) {
2478
2462
  rb_raise(rb_eNetcdfError,"Cannot specify a subset of a rank-0 scalar\n");
2479
2463
  }
2480
-
2464
+
2481
2465
  Check_Type(start,T_ARRAY);
2482
2466
  if(RARRAY_LEN(start) < ndims) {
2483
2467
  rb_raise(rb_eNetcdfError,"Length of 'start' is too short\n");
2484
2468
  }
2485
-
2469
+
2486
2470
  c_start=ALLOCA_N(size_t,ndims);
2487
2471
  c_count=ALLOCA_N(na_shape_t,ndims);
2488
2472
  for(i=0;i<ndims;i++){
@@ -2497,9 +2481,9 @@ NetCDF_get_var1_sint(VALUE Var,VALUE start)
2497
2481
  c_start[i]=l_start;
2498
2482
  c_count[i]=1;
2499
2483
  }
2500
-
2484
+
2501
2485
  Csint_to_NArray(NArray,ndims,c_count,ptr);
2502
-
2486
+
2503
2487
  status = nc_get_var1_short(ncid,varid,c_start,ptr);
2504
2488
  if(status != NC_NOERR) NC_RAISE(status);
2505
2489
 
@@ -2508,7 +2492,7 @@ NetCDF_get_var1_sint(VALUE Var,VALUE start)
2508
2492
 
2509
2493
  }
2510
2494
 
2511
- VALUE
2495
+ VALUE
2512
2496
  NetCDF_get_var1_int(VALUE Var,VALUE start)
2513
2497
  {
2514
2498
  int ncid;
@@ -2533,12 +2517,12 @@ NetCDF_get_var1_int(VALUE Var,VALUE start)
2533
2517
  if(ndims == 0) {
2534
2518
  rb_raise(rb_eNetcdfError,"Cannot specify a subset of a rank-0 scalar\n");
2535
2519
  }
2536
-
2520
+
2537
2521
  Check_Type(start,T_ARRAY);
2538
2522
  if(RARRAY_LEN(start) < ndims) {
2539
2523
  rb_raise(rb_eNetcdfError,"Length of 'start' is too short\n");
2540
2524
  }
2541
-
2525
+
2542
2526
  c_start=ALLOCA_N(size_t,ndims);
2543
2527
  c_count=ALLOCA_N(na_shape_t,ndims);
2544
2528
  for(i=0;i<ndims;i++){
@@ -2553,9 +2537,9 @@ NetCDF_get_var1_int(VALUE Var,VALUE start)
2553
2537
  c_start[i]=l_start;
2554
2538
  c_count[i]=1;
2555
2539
  }
2556
-
2540
+
2557
2541
  Clint_to_NArray(NArray,ndims,c_count,ptr);
2558
-
2542
+
2559
2543
  status = nc_get_var1_int(ncid,varid,c_start,ptr);
2560
2544
  if(status != NC_NOERR) NC_RAISE(status);
2561
2545
 
@@ -2564,7 +2548,7 @@ NetCDF_get_var1_int(VALUE Var,VALUE start)
2564
2548
 
2565
2549
  }
2566
2550
 
2567
- VALUE
2551
+ VALUE
2568
2552
  NetCDF_get_var1_float(VALUE Var,VALUE start)
2569
2553
  {
2570
2554
  int ncid;
@@ -2589,12 +2573,12 @@ NetCDF_get_var1_float(VALUE Var,VALUE start)
2589
2573
  if(ndims == 0) {
2590
2574
  rb_raise(rb_eNetcdfError,"Cannot specify a subset of a rank-0 scalar\n");
2591
2575
  }
2592
-
2576
+
2593
2577
  Check_Type(start,T_ARRAY);
2594
2578
  if(RARRAY_LEN(start) < ndims) {
2595
2579
  rb_raise(rb_eNetcdfError,"Length of 'start' is too short\n");
2596
2580
  }
2597
-
2581
+
2598
2582
  c_start=ALLOCA_N(size_t,ndims);
2599
2583
  c_count=ALLOCA_N(na_shape_t,ndims);
2600
2584
  for(i=0;i<ndims;i++){
@@ -2609,9 +2593,9 @@ NetCDF_get_var1_float(VALUE Var,VALUE start)
2609
2593
  c_start[i]=l_start;
2610
2594
  c_count[i]=1;
2611
2595
  }
2612
-
2596
+
2613
2597
  Cfloat_to_NArray(NArray,ndims,c_count,ptr);
2614
-
2598
+
2615
2599
  status = nc_get_var1_float(ncid,varid,c_start,ptr);
2616
2600
  if(status != NC_NOERR) NC_RAISE(status);
2617
2601
 
@@ -2620,7 +2604,7 @@ NetCDF_get_var1_float(VALUE Var,VALUE start)
2620
2604
 
2621
2605
  }
2622
2606
 
2623
- VALUE
2607
+ VALUE
2624
2608
  NetCDF_get_var1_double(VALUE Var,VALUE start)
2625
2609
  {
2626
2610
  int ncid;
@@ -2645,12 +2629,12 @@ NetCDF_get_var1_double(VALUE Var,VALUE start)
2645
2629
  if(ndims == 0) {
2646
2630
  rb_raise(rb_eNetcdfError,"Cannot specify a subset of a rank-0 scalar\n");
2647
2631
  }
2648
-
2632
+
2649
2633
  Check_Type(start,T_ARRAY);
2650
2634
  if(RARRAY_LEN(start) < ndims) {
2651
2635
  rb_raise(rb_eNetcdfError,"Length of 'start' is too short\n");
2652
2636
  }
2653
-
2637
+
2654
2638
  c_start=ALLOCA_N(size_t,ndims);
2655
2639
  c_count=ALLOCA_N(na_shape_t,ndims);
2656
2640
  for(i=0;i<ndims;i++){
@@ -2665,9 +2649,9 @@ NetCDF_get_var1_double(VALUE Var,VALUE start)
2665
2649
  c_start[i]=l_start;
2666
2650
  c_count[i]=1;
2667
2651
  }
2668
-
2652
+
2669
2653
  Cdouble_to_NArray(NArray,ndims,c_count,ptr);
2670
-
2654
+
2671
2655
  status = nc_get_var1_double(ncid,varid,c_start,ptr);
2672
2656
  if(status != NC_NOERR) NC_RAISE(status);
2673
2657
 
@@ -2698,7 +2682,7 @@ NetCDF_get_vars_char(VALUE Var,VALUE start,VALUE end,VALUE stride)
2698
2682
  Data_Get_Struct(Var,struct NetCDFVar,Netcdf_var);
2699
2683
  ncid = Netcdf_var->ncid;
2700
2684
  varid = Netcdf_var->varid;
2701
-
2685
+
2702
2686
  status = nc_inq_varndims(ncid,varid,&ndims);
2703
2687
  if(status != NC_NOERR) NC_RAISE(status);
2704
2688
  if(ndims == 0) {
@@ -2708,7 +2692,7 @@ NetCDF_get_vars_char(VALUE Var,VALUE start,VALUE end,VALUE stride)
2708
2692
  dimids = ALLOCA_N(int,ndims);
2709
2693
  status = nc_inq_vardimid(ncid,varid,dimids);
2710
2694
  if(status != NC_NOERR) NC_RAISE(status);
2711
-
2695
+
2712
2696
  Check_Type(start,T_ARRAY);
2713
2697
  if(RARRAY_LEN(start) < ndims){
2714
2698
  rb_raise(rb_eNetcdfError, "Length of 'start' is too short\n");
@@ -2716,7 +2700,7 @@ NetCDF_get_vars_char(VALUE Var,VALUE start,VALUE end,VALUE stride)
2716
2700
  c_start = ALLOCA_N(size_t,ndims);
2717
2701
  for(i=0; i<ndims; i++){
2718
2702
  l_start=NUM2INT(RARRAY_PTR(start)[ndims-1-i]);
2719
-
2703
+
2720
2704
  if(l_start < 0) {
2721
2705
  status = nc_inq_dimlen(ncid, dimids[i], &dimlen);
2722
2706
  if(status != NC_NOERR) NC_RAISE(status);
@@ -2769,14 +2753,14 @@ NetCDF_get_vars_char(VALUE Var,VALUE start,VALUE end,VALUE stride)
2769
2753
  }
2770
2754
  }
2771
2755
 
2772
-
2756
+
2773
2757
  shape = ALLOCA_N(na_shape_t,ndims);
2774
2758
  for(i=0;i<ndims;i++){
2775
2759
  shape[ndims-1-i]=c_count[i];
2776
2760
  }
2777
-
2761
+
2778
2762
  Cbyte_to_NArray(NArray,ndims,shape,ptr);
2779
-
2763
+
2780
2764
  status = nc_get_vars_text(ncid,varid,c_start,c_count,c_stride,(char *)ptr);
2781
2765
  if(status != NC_NOERR) NC_RAISE(status);
2782
2766
 
@@ -2806,7 +2790,7 @@ NetCDF_get_vars_byte(VALUE Var,VALUE start,VALUE end,VALUE stride)
2806
2790
  Data_Get_Struct(Var,struct NetCDFVar,Netcdf_var);
2807
2791
  ncid = Netcdf_var->ncid;
2808
2792
  varid = Netcdf_var->varid;
2809
-
2793
+
2810
2794
  status = nc_inq_varndims(ncid,varid,&ndims);
2811
2795
  if(status != NC_NOERR) NC_RAISE(status);
2812
2796
  if(ndims == 0) {
@@ -2816,7 +2800,7 @@ NetCDF_get_vars_byte(VALUE Var,VALUE start,VALUE end,VALUE stride)
2816
2800
  dimids = ALLOCA_N(int,ndims);
2817
2801
  status = nc_inq_vardimid(ncid,varid,dimids);
2818
2802
  if(status != NC_NOERR) NC_RAISE(status);
2819
-
2803
+
2820
2804
  Check_Type(start,T_ARRAY);
2821
2805
  if(RARRAY_LEN(start) < ndims){
2822
2806
  rb_raise(rb_eNetcdfError, "Length of 'start' is too short\n");
@@ -2824,7 +2808,7 @@ NetCDF_get_vars_byte(VALUE Var,VALUE start,VALUE end,VALUE stride)
2824
2808
  c_start = ALLOCA_N(size_t,ndims);
2825
2809
  for(i=0; i<ndims; i++){
2826
2810
  l_start=NUM2INT(RARRAY_PTR(start)[ndims-1-i]);
2827
-
2811
+
2828
2812
  if(l_start < 0) {
2829
2813
  status = nc_inq_dimlen(ncid, dimids[i], &dimlen);
2830
2814
  if(status != NC_NOERR) NC_RAISE(status);
@@ -2877,14 +2861,14 @@ NetCDF_get_vars_byte(VALUE Var,VALUE start,VALUE end,VALUE stride)
2877
2861
  }
2878
2862
  }
2879
2863
 
2880
-
2864
+
2881
2865
  shape = ALLOCA_N(na_shape_t,ndims);
2882
2866
  for(i=0;i<ndims;i++){
2883
2867
  shape[ndims-1-i]=c_count[i];
2884
2868
  }
2885
-
2869
+
2886
2870
  Cbyte_to_NArray(NArray,ndims,shape,ptr);
2887
-
2871
+
2888
2872
  status = nc_get_vars_uchar(ncid,varid,c_start,c_count,c_stride,ptr);
2889
2873
  if(status != NC_NOERR) NC_RAISE(status);
2890
2874
 
@@ -2914,7 +2898,7 @@ NetCDF_get_vars_sint(VALUE Var,VALUE start,VALUE end,VALUE stride)
2914
2898
  Data_Get_Struct(Var,struct NetCDFVar,Netcdf_var);
2915
2899
  ncid = Netcdf_var->ncid;
2916
2900
  varid = Netcdf_var->varid;
2917
-
2901
+
2918
2902
  status = nc_inq_varndims(ncid,varid,&ndims);
2919
2903
  if(status != NC_NOERR) NC_RAISE(status);
2920
2904
  if(ndims == 0) {
@@ -2924,7 +2908,7 @@ NetCDF_get_vars_sint(VALUE Var,VALUE start,VALUE end,VALUE stride)
2924
2908
  dimids = ALLOCA_N(int,ndims);
2925
2909
  status = nc_inq_vardimid(ncid,varid,dimids);
2926
2910
  if(status != NC_NOERR) NC_RAISE(status);
2927
-
2911
+
2928
2912
  Check_Type(start,T_ARRAY);
2929
2913
  if(RARRAY_LEN(start) < ndims){
2930
2914
  rb_raise(rb_eNetcdfError, "Length of 'start' is too short\n");
@@ -2932,7 +2916,7 @@ NetCDF_get_vars_sint(VALUE Var,VALUE start,VALUE end,VALUE stride)
2932
2916
  c_start = ALLOCA_N(size_t,ndims);
2933
2917
  for(i=0; i<ndims; i++){
2934
2918
  l_start=NUM2INT(RARRAY_PTR(start)[ndims-1-i]);
2935
-
2919
+
2936
2920
  if(l_start < 0) {
2937
2921
  status = nc_inq_dimlen(ncid, dimids[i], &dimlen);
2938
2922
  if(status != NC_NOERR) NC_RAISE(status);
@@ -2984,19 +2968,19 @@ NetCDF_get_vars_sint(VALUE Var,VALUE start,VALUE end,VALUE stride)
2984
2968
  c_count[i]=(l_end-c_start[i])/c_stride[i]+1;
2985
2969
  }
2986
2970
  }
2987
-
2988
-
2971
+
2972
+
2989
2973
  shape = ALLOCA_N(na_shape_t,ndims);
2990
2974
  for(i=0;i<ndims;i++){
2991
2975
  shape[ndims-1-i]=c_count[i];
2992
2976
  }
2993
2977
 
2994
2978
  Csint_to_NArray(NArray,ndims,shape,ptr);
2995
-
2979
+
2996
2980
 
2997
2981
  status = nc_get_vars_short(ncid,varid,c_start,c_count,c_stride,ptr);
2998
2982
  if(status != NC_NOERR) NC_RAISE(status);
2999
-
2983
+
3000
2984
  OBJ_TAINT(NArray);
3001
2985
  return NArray;
3002
2986
  }
@@ -3023,7 +3007,7 @@ NetCDF_get_vars_int(VALUE Var,VALUE start,VALUE end,VALUE stride)
3023
3007
  Data_Get_Struct(Var,struct NetCDFVar,Netcdf_var);
3024
3008
  ncid = Netcdf_var->ncid;
3025
3009
  varid = Netcdf_var->varid;
3026
-
3010
+
3027
3011
  status = nc_inq_varndims(ncid,varid,&ndims);
3028
3012
  if(status != NC_NOERR) NC_RAISE(status);
3029
3013
  if(ndims == 0) {
@@ -3033,7 +3017,7 @@ NetCDF_get_vars_int(VALUE Var,VALUE start,VALUE end,VALUE stride)
3033
3017
  dimids = ALLOCA_N(int,ndims);
3034
3018
  status = nc_inq_vardimid(ncid,varid,dimids);
3035
3019
  if(status != NC_NOERR) NC_RAISE(status);
3036
-
3020
+
3037
3021
  Check_Type(start,T_ARRAY);
3038
3022
  if(RARRAY_LEN(start) < ndims){
3039
3023
  rb_raise(rb_eNetcdfError, "Length of 'start' is too short\n");
@@ -3041,7 +3025,7 @@ NetCDF_get_vars_int(VALUE Var,VALUE start,VALUE end,VALUE stride)
3041
3025
  c_start = ALLOCA_N(size_t,ndims);
3042
3026
  for(i=0; i<ndims; i++){
3043
3027
  l_start=NUM2INT(RARRAY_PTR(start)[ndims-1-i]);
3044
-
3028
+
3045
3029
  if(l_start < 0) {
3046
3030
  status = nc_inq_dimlen(ncid, dimids[i], &dimlen);
3047
3031
  if(status != NC_NOERR) NC_RAISE(status);
@@ -3094,14 +3078,14 @@ NetCDF_get_vars_int(VALUE Var,VALUE start,VALUE end,VALUE stride)
3094
3078
  }
3095
3079
  }
3096
3080
 
3097
-
3081
+
3098
3082
  shape = ALLOCA_N(na_shape_t,ndims);
3099
3083
  for(i=0;i<ndims;i++){
3100
3084
  shape[ndims-1-i]=c_count[i];
3101
3085
  }
3102
3086
 
3103
3087
  Clint_to_NArray(NArray,ndims,shape,ptr);
3104
-
3088
+
3105
3089
 
3106
3090
  status = nc_get_vars_int(ncid,varid,c_start,c_count,c_stride,ptr);
3107
3091
  if(status != NC_NOERR) NC_RAISE(status);
@@ -3132,7 +3116,7 @@ NetCDF_get_vars_float(VALUE Var,VALUE start,VALUE end,VALUE stride)
3132
3116
  Data_Get_Struct(Var,struct NetCDFVar,Netcdf_var);
3133
3117
  ncid = Netcdf_var->ncid;
3134
3118
  varid = Netcdf_var->varid;
3135
-
3119
+
3136
3120
  status = nc_inq_varndims(ncid,varid,&ndims);
3137
3121
  if(status != NC_NOERR) NC_RAISE(status);
3138
3122
  if(ndims == 0) {
@@ -3142,7 +3126,7 @@ NetCDF_get_vars_float(VALUE Var,VALUE start,VALUE end,VALUE stride)
3142
3126
  dimids = ALLOCA_N(int,ndims);
3143
3127
  status = nc_inq_vardimid(ncid,varid,dimids);
3144
3128
  if(status != NC_NOERR) NC_RAISE(status);
3145
-
3129
+
3146
3130
  Check_Type(start,T_ARRAY);
3147
3131
  if(RARRAY_LEN(start) < ndims){
3148
3132
  rb_raise(rb_eNetcdfError, "Length of 'start' is too short\n");
@@ -3150,7 +3134,7 @@ NetCDF_get_vars_float(VALUE Var,VALUE start,VALUE end,VALUE stride)
3150
3134
  c_start = ALLOCA_N(size_t,ndims);
3151
3135
  for(i=0; i<ndims; i++){
3152
3136
  l_start=NUM2INT(RARRAY_PTR(start)[ndims-1-i]);
3153
-
3137
+
3154
3138
  if(l_start < 0) {
3155
3139
  status = nc_inq_dimlen(ncid, dimids[i], &dimlen);
3156
3140
  if(status != NC_NOERR) NC_RAISE(status);
@@ -3202,16 +3186,16 @@ NetCDF_get_vars_float(VALUE Var,VALUE start,VALUE end,VALUE stride)
3202
3186
  c_count[i]=(l_end-c_start[i])/c_stride[i]+1;
3203
3187
  }
3204
3188
  }
3205
-
3189
+
3206
3190
 
3207
3191
  shape = ALLOCA_N(na_shape_t,ndims);
3208
3192
  for(i=0;i<ndims;i++){
3209
3193
  shape[ndims-1-i]=c_count[i];
3210
3194
  }
3211
-
3195
+
3212
3196
  Cfloat_to_NArray(NArray,ndims,shape,ptr);
3213
-
3214
-
3197
+
3198
+
3215
3199
  status = nc_get_vars_float(ncid,varid,c_start,c_count,c_stride,ptr);
3216
3200
  if(status != NC_NOERR) NC_RAISE(status);
3217
3201
 
@@ -3241,7 +3225,7 @@ NetCDF_get_vars_double(VALUE Var,VALUE start,VALUE end,VALUE stride)
3241
3225
  Data_Get_Struct(Var,struct NetCDFVar,Netcdf_var);
3242
3226
  ncid = Netcdf_var->ncid;
3243
3227
  varid = Netcdf_var->varid;
3244
-
3228
+
3245
3229
  status = nc_inq_varndims(ncid,varid,&ndims);
3246
3230
  if(status != NC_NOERR) NC_RAISE(status);
3247
3231
  if(ndims == 0) {
@@ -3251,7 +3235,7 @@ NetCDF_get_vars_double(VALUE Var,VALUE start,VALUE end,VALUE stride)
3251
3235
  dimids = ALLOCA_N(int,ndims);
3252
3236
  status = nc_inq_vardimid(ncid,varid,dimids);
3253
3237
  if(status != NC_NOERR) NC_RAISE(status);
3254
-
3238
+
3255
3239
  Check_Type(start,T_ARRAY);
3256
3240
  if(RARRAY_LEN(start) < ndims){
3257
3241
  rb_raise(rb_eNetcdfError, "Length of 'start' is too short\n");
@@ -3259,7 +3243,7 @@ NetCDF_get_vars_double(VALUE Var,VALUE start,VALUE end,VALUE stride)
3259
3243
  c_start = ALLOCA_N(size_t,ndims);
3260
3244
  for(i=0; i<ndims; i++){
3261
3245
  l_start=NUM2INT(RARRAY_PTR(start)[ndims-1-i]);
3262
-
3246
+
3263
3247
  if(l_start < 0) {
3264
3248
  status = nc_inq_dimlen(ncid, dimids[i], &dimlen);
3265
3249
  if(status != NC_NOERR) NC_RAISE(status);
@@ -3311,15 +3295,15 @@ NetCDF_get_vars_double(VALUE Var,VALUE start,VALUE end,VALUE stride)
3311
3295
  c_count[i]=(l_end-c_start[i])/c_stride[i]+1;
3312
3296
  }
3313
3297
  }
3314
-
3298
+
3315
3299
 
3316
3300
  shape = ALLOCA_N(na_shape_t,ndims);
3317
3301
  for(i=0;i<ndims;i++){
3318
3302
  shape[ndims-1-i]=c_count[i];
3319
3303
  }
3320
-
3304
+
3321
3305
  Cdouble_to_NArray(NArray,ndims,shape,ptr);
3322
-
3306
+
3323
3307
  status = nc_get_vars_double(ncid,varid,c_start,c_count,c_stride,ptr);
3324
3308
  if(status != NC_NOERR) NC_RAISE(status);
3325
3309
 
@@ -3343,13 +3327,12 @@ NetCDF_put_var_char(VALUE Var,VALUE NArray)
3343
3327
  size_t lengthp;
3344
3328
  char *var_name;
3345
3329
 
3346
- rb_secure(3);
3347
3330
  Data_Get_Struct(Var,struct NetCDFVar,Netcdf_var);
3348
3331
  ncid=Netcdf_var->ncid;
3349
3332
  varid=Netcdf_var->varid;
3350
3333
 
3351
3334
  Array_to_Cbyte_len(NArray,ptr,len);
3352
-
3335
+
3353
3336
  status = nc_inq_varndims(ncid,varid,&ndimsp);
3354
3337
  if(status != NC_NOERR) NC_RAISE(status);
3355
3338
  for(i=0;i<ndimsp;i++){
@@ -3388,13 +3371,12 @@ NetCDF_put_var_byte(VALUE Var,VALUE NArray)
3388
3371
  size_t lengthp;
3389
3372
  char *var_name;
3390
3373
 
3391
- rb_secure(3);
3392
3374
  Data_Get_Struct(Var,struct NetCDFVar,Netcdf_var);
3393
3375
  ncid=Netcdf_var->ncid;
3394
3376
  varid=Netcdf_var->varid;
3395
3377
 
3396
3378
  Array_to_Cbyte_len(NArray,ptr,len);
3397
-
3379
+
3398
3380
  status = nc_inq_varndims(ncid,varid,&ndimsp);
3399
3381
  if(status != NC_NOERR) NC_RAISE(status);
3400
3382
  for(i=0;i<ndimsp;i++){
@@ -3433,12 +3415,11 @@ NetCDF_put_var_short(VALUE Var,VALUE NArray)
3433
3415
  size_t lengthp;
3434
3416
  char *var_name;
3435
3417
 
3436
- rb_secure(3);
3437
3418
  Data_Get_Struct(Var,struct NetCDFVar,Netcdf_var);
3438
3419
  ncid=Netcdf_var->ncid;
3439
3420
  varid=Netcdf_var->varid;
3440
3421
  Array_to_Csint_len(NArray,ptr,len);
3441
-
3422
+
3442
3423
  status = nc_inq_varndims(ncid,varid,&ndimsp);
3443
3424
  if(status != NC_NOERR) NC_RAISE(status);
3444
3425
  for(i=0;i<ndimsp;i++){
@@ -3478,7 +3459,6 @@ NetCDF_put_var_int(VALUE Var,VALUE NArray)
3478
3459
  size_t lengthp;
3479
3460
  char *var_name;
3480
3461
 
3481
- rb_secure(3);
3482
3462
  Data_Get_Struct(Var,struct NetCDFVar,Netcdf_var);
3483
3463
  ncid=Netcdf_var->ncid;
3484
3464
  varid=Netcdf_var->varid;
@@ -3503,8 +3483,8 @@ NetCDF_put_var_int(VALUE Var,VALUE NArray)
3503
3483
  if(status != NC_NOERR) NC_RAISE(status);
3504
3484
  rb_raise(rb_eNetcdfError,"Length of NArray don't equal to length of total array length in the '%s'\n",var_name);
3505
3485
  }
3506
-
3507
-
3486
+
3487
+
3508
3488
  status = nc_put_var_int(ncid,varid,ptr);
3509
3489
  if(status !=NC_NOERR) NC_RAISE(status);
3510
3490
  return Qnil;
@@ -3525,15 +3505,14 @@ NetCDF_put_var_float(VALUE Var,VALUE NArray)
3525
3505
  int dimids[NC_MAX_DIMS];
3526
3506
  size_t lengthp;
3527
3507
  char *var_name;
3528
-
3529
-
3530
- rb_secure(3);
3508
+
3509
+
3531
3510
  Data_Get_Struct(Var,struct NetCDFVar,Netcdf_var);
3532
3511
  ncid=Netcdf_var->ncid;
3533
3512
  varid=Netcdf_var->varid;
3534
3513
 
3535
3514
  Array_to_Cfloat_len(NArray,ptr,len);
3536
-
3515
+
3537
3516
  status = nc_inq_varndims(ncid,varid,&ndimsp);
3538
3517
  if(status != NC_NOERR) NC_RAISE(status);
3539
3518
  for(i=0;i<ndimsp;i++){
@@ -3574,7 +3553,6 @@ NetCDF_put_var_double(VALUE Var,VALUE NArray)
3574
3553
  char *var_name;
3575
3554
 
3576
3555
 
3577
- rb_secure(3);
3578
3556
  Data_Get_Struct(Var,struct NetCDFVar,Netcdf_var);
3579
3557
  ncid=Netcdf_var->ncid;
3580
3558
  varid=Netcdf_var->varid;
@@ -3619,19 +3597,18 @@ NetCDF_put_var1_char(VALUE Var,VALUE NArray,VALUE start)
3619
3597
  int ndims;
3620
3598
  int *dimids;
3621
3599
  size_t dimlen;
3622
-
3623
- rb_secure(3);
3600
+
3624
3601
  Data_Get_Struct(Var,struct NetCDFVar,Netcdf_var);
3625
3602
  ncid=Netcdf_var->ncid;
3626
3603
  varid=Netcdf_var->varid;
3627
3604
  status = nc_inq_varndims(ncid,varid,&ndims);
3628
3605
  if(status != NC_NOERR) NC_RAISE(status);
3629
3606
 
3630
-
3607
+
3631
3608
  dimids = ALLOCA_N(int,ndims);
3632
3609
  status = nc_inq_vardimid(ncid,varid,dimids);
3633
3610
  if(status != NC_NOERR) NC_RAISE(status);
3634
-
3611
+
3635
3612
  Check_Type(start,T_ARRAY);
3636
3613
  if(RARRAY_LEN(start) <ndims) {
3637
3614
  rb_raise(rb_eNetcdfError,"Length of 'start' is too short\n");
@@ -3640,7 +3617,7 @@ NetCDF_put_var1_char(VALUE Var,VALUE NArray,VALUE start)
3640
3617
  c_start=ALLOCA_N(size_t,ndims);
3641
3618
  for(i=0;i<ndims;i++){
3642
3619
  l_start=NUM2INT(RARRAY_PTR(start)[ndims-1-i]);
3643
-
3620
+
3644
3621
  if(l_start < 0) {
3645
3622
  status = nc_inq_dimlen(ncid,dimids[i],&dimlen);
3646
3623
  if(status != NC_NOERR) NC_RAISE(status);
@@ -3670,19 +3647,18 @@ NetCDF_put_var1_byte(VALUE Var,VALUE NArray,VALUE start)
3670
3647
  int ndims;
3671
3648
  int *dimids;
3672
3649
  size_t dimlen;
3673
-
3674
- rb_secure(3);
3650
+
3675
3651
  Data_Get_Struct(Var,struct NetCDFVar,Netcdf_var);
3676
3652
  ncid=Netcdf_var->ncid;
3677
3653
  varid=Netcdf_var->varid;
3678
3654
  status = nc_inq_varndims(ncid,varid,&ndims);
3679
3655
  if(status != NC_NOERR) NC_RAISE(status);
3680
3656
 
3681
-
3657
+
3682
3658
  dimids = ALLOCA_N(int,ndims);
3683
3659
  status = nc_inq_vardimid(ncid,varid,dimids);
3684
3660
  if(status != NC_NOERR) NC_RAISE(status);
3685
-
3661
+
3686
3662
  Check_Type(start,T_ARRAY);
3687
3663
  if(RARRAY_LEN(start) <ndims) {
3688
3664
  rb_raise(rb_eNetcdfError,"Length of 'start' is too short\n");
@@ -3691,7 +3667,7 @@ NetCDF_put_var1_byte(VALUE Var,VALUE NArray,VALUE start)
3691
3667
  c_start=ALLOCA_N(size_t,ndims);
3692
3668
  for(i=0;i<ndims;i++){
3693
3669
  l_start=NUM2INT(RARRAY_PTR(start)[ndims-1-i]);
3694
-
3670
+
3695
3671
  if(l_start < 0) {
3696
3672
  status = nc_inq_dimlen(ncid,dimids[i],&dimlen);
3697
3673
  if(status != NC_NOERR) NC_RAISE(status);
@@ -3721,19 +3697,18 @@ NetCDF_put_var1_sint(VALUE Var,VALUE NArray,VALUE start)
3721
3697
  int ndims;
3722
3698
  int *dimids;
3723
3699
  size_t dimlen;
3724
-
3725
- rb_secure(3);
3700
+
3726
3701
  Data_Get_Struct(Var,struct NetCDFVar,Netcdf_var);
3727
3702
  ncid=Netcdf_var->ncid;
3728
3703
  varid=Netcdf_var->varid;
3729
3704
  status = nc_inq_varndims(ncid,varid,&ndims);
3730
3705
  if(status != NC_NOERR) NC_RAISE(status);
3731
3706
 
3732
-
3707
+
3733
3708
  dimids = ALLOCA_N(int,ndims);
3734
3709
  status = nc_inq_vardimid(ncid,varid,dimids);
3735
3710
  if(status != NC_NOERR) NC_RAISE(status);
3736
-
3711
+
3737
3712
  Check_Type(start,T_ARRAY);
3738
3713
  if(RARRAY_LEN(start) <ndims) {
3739
3714
  rb_raise(rb_eNetcdfError,"Length of 'start' is too short\n");
@@ -3742,7 +3717,7 @@ NetCDF_put_var1_sint(VALUE Var,VALUE NArray,VALUE start)
3742
3717
  c_start=ALLOCA_N(size_t,ndims);
3743
3718
  for(i=0;i<ndims;i++){
3744
3719
  l_start=NUM2INT(RARRAY_PTR(start)[ndims-1-i]);
3745
-
3720
+
3746
3721
  if(l_start < 0) {
3747
3722
  status = nc_inq_dimlen(ncid,dimids[i],&dimlen);
3748
3723
  if(status != NC_NOERR) NC_RAISE(status);
@@ -3771,19 +3746,18 @@ NetCDF_put_var1_int(VALUE Var,VALUE NArray,VALUE start)
3771
3746
  int ndims;
3772
3747
  int *dimids;
3773
3748
  size_t dimlen;
3774
-
3775
- rb_secure(3);
3749
+
3776
3750
  Data_Get_Struct(Var,struct NetCDFVar,Netcdf_var);
3777
3751
  ncid=Netcdf_var->ncid;
3778
3752
  varid=Netcdf_var->varid;
3779
3753
  status = nc_inq_varndims(ncid,varid,&ndims);
3780
3754
  if(status != NC_NOERR) NC_RAISE(status);
3781
3755
 
3782
-
3756
+
3783
3757
  dimids = ALLOCA_N(int,ndims);
3784
3758
  status = nc_inq_vardimid(ncid,varid,dimids);
3785
3759
  if(status != NC_NOERR) NC_RAISE(status);
3786
-
3760
+
3787
3761
  Check_Type(start,T_ARRAY);
3788
3762
  if(RARRAY_LEN(start) <ndims) {
3789
3763
  rb_raise(rb_eNetcdfError,"Length of 'start' is too short\n");
@@ -3792,7 +3766,7 @@ NetCDF_put_var1_int(VALUE Var,VALUE NArray,VALUE start)
3792
3766
  c_start=ALLOCA_N(size_t,ndims);
3793
3767
  for(i=0;i<ndims;i++){
3794
3768
  l_start=NUM2INT(RARRAY_PTR(start)[ndims-1-i]);
3795
-
3769
+
3796
3770
  if(l_start < 0) {
3797
3771
  status = nc_inq_dimlen(ncid,dimids[i],&dimlen);
3798
3772
  if(status != NC_NOERR) NC_RAISE(status);
@@ -3822,19 +3796,18 @@ NetCDF_put_var1_float(VALUE Var,VALUE NArray,VALUE start)
3822
3796
  int ndims;
3823
3797
  int *dimids;
3824
3798
  size_t dimlen;
3825
-
3826
- rb_secure(3);
3799
+
3827
3800
  Data_Get_Struct(Var,struct NetCDFVar,Netcdf_var);
3828
3801
  ncid=Netcdf_var->ncid;
3829
3802
  varid=Netcdf_var->varid;
3830
3803
  status = nc_inq_varndims(ncid,varid,&ndims);
3831
3804
  if(status != NC_NOERR) NC_RAISE(status);
3832
3805
 
3833
-
3806
+
3834
3807
  dimids = ALLOCA_N(int,ndims);
3835
3808
  status = nc_inq_vardimid(ncid,varid,dimids);
3836
3809
  if(status != NC_NOERR) NC_RAISE(status);
3837
-
3810
+
3838
3811
  Check_Type(start,T_ARRAY);
3839
3812
  if(RARRAY_LEN(start) <ndims) {
3840
3813
  rb_raise(rb_eNetcdfError,"Length of 'start' is too short\n");
@@ -3843,7 +3816,7 @@ NetCDF_put_var1_float(VALUE Var,VALUE NArray,VALUE start)
3843
3816
  c_start=ALLOCA_N(size_t,ndims);
3844
3817
  for(i=0;i<ndims;i++){
3845
3818
  l_start=NUM2INT(RARRAY_PTR(start)[ndims-1-i]);
3846
-
3819
+
3847
3820
  if(l_start < 0) {
3848
3821
  status = nc_inq_dimlen(ncid,dimids[i],&dimlen);
3849
3822
  if(status != NC_NOERR) NC_RAISE(status);
@@ -3873,19 +3846,18 @@ NetCDF_put_var1_double(VALUE Var,VALUE NArray,VALUE start)
3873
3846
  int ndims;
3874
3847
  int *dimids;
3875
3848
  size_t dimlen;
3876
-
3877
- rb_secure(3);
3849
+
3878
3850
  Data_Get_Struct(Var,struct NetCDFVar,Netcdf_var);
3879
3851
  ncid=Netcdf_var->ncid;
3880
3852
  varid=Netcdf_var->varid;
3881
3853
  status = nc_inq_varndims(ncid,varid,&ndims);
3882
3854
  if(status != NC_NOERR) NC_RAISE(status);
3883
3855
 
3884
-
3856
+
3885
3857
  dimids = ALLOCA_N(int,ndims);
3886
3858
  status = nc_inq_vardimid(ncid,varid,dimids);
3887
3859
  if(status != NC_NOERR) NC_RAISE(status);
3888
-
3860
+
3889
3861
  Check_Type(start,T_ARRAY);
3890
3862
  if(RARRAY_LEN(start) <ndims) {
3891
3863
  rb_raise(rb_eNetcdfError,"Length of 'start' is too short\n");
@@ -3894,7 +3866,7 @@ NetCDF_put_var1_double(VALUE Var,VALUE NArray,VALUE start)
3894
3866
  c_start=ALLOCA_N(size_t,ndims);
3895
3867
  for(i=0;i<ndims;i++){
3896
3868
  l_start=NUM2INT(RARRAY_PTR(start)[ndims-1-i]);
3897
-
3869
+
3898
3870
  if(l_start < 0) {
3899
3871
  status = nc_inq_dimlen(ncid,dimids[i],&dimlen);
3900
3872
  if(status != NC_NOERR) NC_RAISE(status);
@@ -3930,7 +3902,6 @@ NetCDF_put_vars_char(VALUE Var,VALUE NArray,VALUE start,VALUE end,VALUE stride)
3930
3902
  int *dimids;
3931
3903
  size_t dimlen;
3932
3904
 
3933
- rb_secure(3);
3934
3905
  Data_Get_Struct(Var,struct NetCDFVar,Netcdf_var);
3935
3906
  ncid=Netcdf_var->ncid;
3936
3907
  varid=Netcdf_var->varid;
@@ -3943,12 +3914,12 @@ NetCDF_put_vars_char(VALUE Var,VALUE NArray,VALUE start,VALUE end,VALUE stride)
3943
3914
 
3944
3915
  Check_Type(start,T_ARRAY);
3945
3916
  if(RARRAY_LEN(start) < ndims) {
3946
- rb_raise(rb_eNetcdfError, "Length of 'start' is too short\n");
3917
+ rb_raise(rb_eNetcdfError, "Length of 'start' is too short\n");
3947
3918
  }
3948
3919
  c_start=ALLOCA_N(size_t,ndims);
3949
3920
  for(i=0; i<ndims; i++){
3950
3921
  l_start=NUM2INT(RARRAY_PTR(start)[ndims-1-i]);
3951
-
3922
+
3952
3923
  if(l_start < 0) {
3953
3924
  status = nc_inq_dimlen(ncid, dimids[i], &dimlen);
3954
3925
  if(status != NC_NOERR) NC_RAISE(status);
@@ -3956,7 +3927,7 @@ NetCDF_put_vars_char(VALUE Var,VALUE NArray,VALUE start,VALUE end,VALUE stride)
3956
3927
  }
3957
3928
  c_start[i]=l_start;
3958
3929
  }
3959
-
3930
+
3960
3931
  c_stride=ALLOCA_N(ptrdiff_t,ndims);
3961
3932
  switch(TYPE(stride)){
3962
3933
  case T_NIL:
@@ -3967,12 +3938,12 @@ NetCDF_put_vars_char(VALUE Var,VALUE NArray,VALUE start,VALUE end,VALUE stride)
3967
3938
  default:
3968
3939
  Check_Type(stride,T_ARRAY);
3969
3940
  if(RARRAY_LEN(stride) < ndims) {
3970
- rb_raise(rb_eNetcdfError, "Length of 'stride' is too short\n");
3941
+ rb_raise(rb_eNetcdfError, "Length of 'stride' is too short\n");
3971
3942
  }
3972
3943
  for(i=0; i<ndims; i++){
3973
3944
  c_stride[i]=NUM2INT(RARRAY_PTR(stride)[ndims-1-i]);
3974
3945
  if(c_stride[i]==0) {
3975
- rb_raise(rb_eNetcdfError, "stride cannot be zero\n");
3946
+ rb_raise(rb_eNetcdfError, "stride cannot be zero\n");
3976
3947
  }
3977
3948
  }
3978
3949
  }
@@ -3990,7 +3961,7 @@ NetCDF_put_vars_char(VALUE Var,VALUE NArray,VALUE start,VALUE end,VALUE stride)
3990
3961
  default:
3991
3962
  Check_Type(end,T_ARRAY);
3992
3963
  if(RARRAY_LEN(end) < ndims) {
3993
- rb_raise(rb_eNetcdfError, "Length of 'end' is too short\n");
3964
+ rb_raise(rb_eNetcdfError, "Length of 'end' is too short\n");
3994
3965
  }
3995
3966
  for(i=0; i<ndims; i++){
3996
3967
  l_end=NUM2INT(RARRAY_PTR(end)[ndims-1-i]);
@@ -4007,11 +3978,11 @@ NetCDF_put_vars_char(VALUE Var,VALUE NArray,VALUE start,VALUE end,VALUE stride)
4007
3978
  ptr = ALLOCA_N(unsigned char,c_count_all);
4008
3979
  for(i=0;i<c_count_all;i++){ptr[i]=scalar;}
4009
3980
  } else if(len != c_count_all) {
4010
- rb_raise(rb_eNetcdfError,
4011
- "lengh of the array does not agree with that of the subset\n");
4012
- }
4013
- }
4014
-
3981
+ rb_raise(rb_eNetcdfError,
3982
+ "lengh of the array does not agree with that of the subset\n");
3983
+ }
3984
+ }
3985
+
4015
3986
  status = nc_put_vars_text(ncid,varid,c_start,c_count,c_stride,(char *)ptr);
4016
3987
  if(status != NC_NOERR) NC_RAISE(status);
4017
3988
  return Qnil;
@@ -4036,7 +4007,6 @@ NetCDF_put_vars_byte(VALUE Var,VALUE NArray,VALUE start,VALUE end,VALUE stride)
4036
4007
  int *dimids;
4037
4008
  size_t dimlen;
4038
4009
 
4039
- rb_secure(3);
4040
4010
  Data_Get_Struct(Var,struct NetCDFVar,Netcdf_var);
4041
4011
  ncid=Netcdf_var->ncid;
4042
4012
  varid=Netcdf_var->varid;
@@ -4049,12 +4019,12 @@ NetCDF_put_vars_byte(VALUE Var,VALUE NArray,VALUE start,VALUE end,VALUE stride)
4049
4019
 
4050
4020
  Check_Type(start,T_ARRAY);
4051
4021
  if(RARRAY_LEN(start) < ndims) {
4052
- rb_raise(rb_eNetcdfError, "Length of 'start' is too short\n");
4022
+ rb_raise(rb_eNetcdfError, "Length of 'start' is too short\n");
4053
4023
  }
4054
4024
  c_start=ALLOCA_N(size_t,ndims);
4055
4025
  for(i=0; i<ndims; i++){
4056
4026
  l_start=NUM2INT(RARRAY_PTR(start)[ndims-1-i]);
4057
-
4027
+
4058
4028
  if(l_start < 0) {
4059
4029
  status = nc_inq_dimlen(ncid, dimids[i], &dimlen);
4060
4030
  if(status != NC_NOERR) NC_RAISE(status);
@@ -4062,7 +4032,7 @@ NetCDF_put_vars_byte(VALUE Var,VALUE NArray,VALUE start,VALUE end,VALUE stride)
4062
4032
  }
4063
4033
  c_start[i]=l_start;
4064
4034
  }
4065
-
4035
+
4066
4036
  c_stride=ALLOCA_N(ptrdiff_t,ndims);
4067
4037
  switch(TYPE(stride)){
4068
4038
  case T_NIL:
@@ -4073,12 +4043,12 @@ NetCDF_put_vars_byte(VALUE Var,VALUE NArray,VALUE start,VALUE end,VALUE stride)
4073
4043
  default:
4074
4044
  Check_Type(stride,T_ARRAY);
4075
4045
  if(RARRAY_LEN(stride) < ndims) {
4076
- rb_raise(rb_eNetcdfError, "Length of 'stride' is too short\n");
4046
+ rb_raise(rb_eNetcdfError, "Length of 'stride' is too short\n");
4077
4047
  }
4078
4048
  for(i=0; i<ndims; i++){
4079
4049
  c_stride[i]=NUM2INT(RARRAY_PTR(stride)[ndims-1-i]);
4080
4050
  if(c_stride[i]==0) {
4081
- rb_raise(rb_eNetcdfError, "stride cannot be zero\n");
4051
+ rb_raise(rb_eNetcdfError, "stride cannot be zero\n");
4082
4052
  }
4083
4053
  }
4084
4054
  }
@@ -4096,7 +4066,7 @@ NetCDF_put_vars_byte(VALUE Var,VALUE NArray,VALUE start,VALUE end,VALUE stride)
4096
4066
  default:
4097
4067
  Check_Type(end,T_ARRAY);
4098
4068
  if(RARRAY_LEN(end) < ndims) {
4099
- rb_raise(rb_eNetcdfError, "Length of 'end' is too short\n");
4069
+ rb_raise(rb_eNetcdfError, "Length of 'end' is too short\n");
4100
4070
  }
4101
4071
  for(i=0; i<ndims; i++){
4102
4072
  l_end=NUM2INT(RARRAY_PTR(end)[ndims-1-i]);
@@ -4113,11 +4083,11 @@ NetCDF_put_vars_byte(VALUE Var,VALUE NArray,VALUE start,VALUE end,VALUE stride)
4113
4083
  ptr = ALLOCA_N(unsigned char,c_count_all);
4114
4084
  for(i=0;i<c_count_all;i++){ptr[i]=scalar;}
4115
4085
  } else if(len != c_count_all) {
4116
- rb_raise(rb_eNetcdfError,
4117
- "lengh of the array does not agree with that of the subset\n");
4118
- }
4119
- }
4120
-
4086
+ rb_raise(rb_eNetcdfError,
4087
+ "lengh of the array does not agree with that of the subset\n");
4088
+ }
4089
+ }
4090
+
4121
4091
  status = nc_put_vars_uchar(ncid,varid,c_start,c_count,c_stride,ptr);
4122
4092
  if(status != NC_NOERR) NC_RAISE(status);
4123
4093
  return Qnil;
@@ -4142,7 +4112,6 @@ NetCDF_put_vars_sint(VALUE Var,VALUE NArray,VALUE start,VALUE end,VALUE stride)
4142
4112
  int *dimids;
4143
4113
  size_t dimlen;
4144
4114
 
4145
- rb_secure(3);
4146
4115
  Data_Get_Struct(Var,struct NetCDFVar,Netcdf_var);
4147
4116
  ncid=Netcdf_var->ncid;
4148
4117
  varid=Netcdf_var->varid;
@@ -4155,12 +4124,12 @@ NetCDF_put_vars_sint(VALUE Var,VALUE NArray,VALUE start,VALUE end,VALUE stride)
4155
4124
 
4156
4125
  Check_Type(start,T_ARRAY);
4157
4126
  if(RARRAY_LEN(start) < ndims) {
4158
- rb_raise(rb_eNetcdfError, "Length of 'start' is too short\n");
4127
+ rb_raise(rb_eNetcdfError, "Length of 'start' is too short\n");
4159
4128
  }
4160
4129
  c_start=ALLOCA_N(size_t,ndims);
4161
4130
  for(i=0; i<ndims; i++){
4162
4131
  l_start=NUM2INT(RARRAY_PTR(start)[ndims-1-i]);
4163
-
4132
+
4164
4133
  if(l_start < 0) {
4165
4134
  status = nc_inq_dimlen(ncid, dimids[i], &dimlen);
4166
4135
  if(status != NC_NOERR) NC_RAISE(status);
@@ -4168,7 +4137,7 @@ NetCDF_put_vars_sint(VALUE Var,VALUE NArray,VALUE start,VALUE end,VALUE stride)
4168
4137
  }
4169
4138
  c_start[i]=l_start;
4170
4139
  }
4171
-
4140
+
4172
4141
  c_stride=ALLOCA_N(ptrdiff_t,ndims);
4173
4142
  switch(TYPE(stride)){
4174
4143
  case T_NIL:
@@ -4179,12 +4148,12 @@ NetCDF_put_vars_sint(VALUE Var,VALUE NArray,VALUE start,VALUE end,VALUE stride)
4179
4148
  default:
4180
4149
  Check_Type(stride,T_ARRAY);
4181
4150
  if(RARRAY_LEN(stride) < ndims) {
4182
- rb_raise(rb_eNetcdfError, "Length of 'stride' is too short\n");
4151
+ rb_raise(rb_eNetcdfError, "Length of 'stride' is too short\n");
4183
4152
  }
4184
4153
  for(i=0; i<ndims; i++){
4185
4154
  c_stride[i]=NUM2INT(RARRAY_PTR(stride)[ndims-1-i]);
4186
4155
  if(c_stride[i]==0) {
4187
- rb_raise(rb_eNetcdfError, "stride cannot be zero\n");
4156
+ rb_raise(rb_eNetcdfError, "stride cannot be zero\n");
4188
4157
  }
4189
4158
  }
4190
4159
  }
@@ -4202,7 +4171,7 @@ NetCDF_put_vars_sint(VALUE Var,VALUE NArray,VALUE start,VALUE end,VALUE stride)
4202
4171
  default:
4203
4172
  Check_Type(end,T_ARRAY);
4204
4173
  if(RARRAY_LEN(end) < ndims) {
4205
- rb_raise(rb_eNetcdfError, "Length of 'end' is too short\n");
4174
+ rb_raise(rb_eNetcdfError, "Length of 'end' is too short\n");
4206
4175
  }
4207
4176
  for(i=0; i<ndims; i++){
4208
4177
  l_end=NUM2INT(RARRAY_PTR(end)[ndims-1-i]);
@@ -4219,8 +4188,8 @@ NetCDF_put_vars_sint(VALUE Var,VALUE NArray,VALUE start,VALUE end,VALUE stride)
4219
4188
  ptr = ALLOCA_N(short,c_count_all);
4220
4189
  for(i=0;i<c_count_all;i++){ptr[i]=scalar;}
4221
4190
  } else if(len != c_count_all) {
4222
- rb_raise(rb_eNetcdfError,
4223
- "lengh of the array does not agree with that of the subset\n");
4191
+ rb_raise(rb_eNetcdfError,
4192
+ "lengh of the array does not agree with that of the subset\n");
4224
4193
  }
4225
4194
  }
4226
4195
 
@@ -4249,7 +4218,6 @@ NetCDF_put_vars_int(VALUE Var,VALUE NArray,VALUE start,VALUE end,VALUE stride)
4249
4218
  int *dimids;
4250
4219
  size_t dimlen;
4251
4220
 
4252
- rb_secure(3);
4253
4221
  Data_Get_Struct(Var,struct NetCDFVar,Netcdf_var);
4254
4222
  ncid=Netcdf_var->ncid;
4255
4223
  varid=Netcdf_var->varid;
@@ -4262,12 +4230,12 @@ NetCDF_put_vars_int(VALUE Var,VALUE NArray,VALUE start,VALUE end,VALUE stride)
4262
4230
 
4263
4231
  Check_Type(start,T_ARRAY);
4264
4232
  if(RARRAY_LEN(start) < ndims) {
4265
- rb_raise(rb_eNetcdfError, "Length of 'start' is too short\n");
4233
+ rb_raise(rb_eNetcdfError, "Length of 'start' is too short\n");
4266
4234
  }
4267
4235
  c_start=ALLOCA_N(size_t,ndims);
4268
4236
  for(i=0; i<ndims; i++){
4269
4237
  l_start=NUM2INT(RARRAY_PTR(start)[ndims-1-i]);
4270
-
4238
+
4271
4239
  if(l_start < 0) {
4272
4240
  status = nc_inq_dimlen(ncid, dimids[i], &dimlen);
4273
4241
  if(status != NC_NOERR) NC_RAISE(status);
@@ -4275,7 +4243,7 @@ NetCDF_put_vars_int(VALUE Var,VALUE NArray,VALUE start,VALUE end,VALUE stride)
4275
4243
  }
4276
4244
  c_start[i]=l_start;
4277
4245
  }
4278
-
4246
+
4279
4247
  c_stride=ALLOCA_N(ptrdiff_t,ndims);
4280
4248
  switch(TYPE(stride)){
4281
4249
  case T_NIL:
@@ -4286,12 +4254,12 @@ NetCDF_put_vars_int(VALUE Var,VALUE NArray,VALUE start,VALUE end,VALUE stride)
4286
4254
  default:
4287
4255
  Check_Type(stride,T_ARRAY);
4288
4256
  if(RARRAY_LEN(stride) < ndims) {
4289
- rb_raise(rb_eNetcdfError, "Length of 'stride' is too short\n");
4257
+ rb_raise(rb_eNetcdfError, "Length of 'stride' is too short\n");
4290
4258
  }
4291
4259
  for(i=0; i<ndims; i++){
4292
4260
  c_stride[i]=NUM2INT(RARRAY_PTR(stride)[ndims-1-i]);
4293
4261
  if(c_stride[i]==0) {
4294
- rb_raise(rb_eNetcdfError, "stride cannot be zero\n");
4262
+ rb_raise(rb_eNetcdfError, "stride cannot be zero\n");
4295
4263
  }
4296
4264
  }
4297
4265
  }
@@ -4309,7 +4277,7 @@ NetCDF_put_vars_int(VALUE Var,VALUE NArray,VALUE start,VALUE end,VALUE stride)
4309
4277
  default:
4310
4278
  Check_Type(end,T_ARRAY);
4311
4279
  if(RARRAY_LEN(end) < ndims) {
4312
- rb_raise(rb_eNetcdfError, "Length of 'end' is too short\n");
4280
+ rb_raise(rb_eNetcdfError, "Length of 'end' is too short\n");
4313
4281
  }
4314
4282
  for(i=0; i<ndims; i++){
4315
4283
  l_end=NUM2INT(RARRAY_PTR(end)[ndims-1-i]);
@@ -4326,8 +4294,8 @@ NetCDF_put_vars_int(VALUE Var,VALUE NArray,VALUE start,VALUE end,VALUE stride)
4326
4294
  ptr = ALLOCA_N(int,c_count_all);
4327
4295
  for(i=0;i<c_count_all;i++){ptr[i]=scalar;}
4328
4296
  } else if(len != c_count_all) {
4329
- rb_raise(rb_eNetcdfError,
4330
- "length of the array does not agree with that of the subset\n");
4297
+ rb_raise(rb_eNetcdfError,
4298
+ "length of the array does not agree with that of the subset\n");
4331
4299
  }
4332
4300
  }
4333
4301
 
@@ -4356,7 +4324,6 @@ NetCDF_put_vars_float(VALUE Var,VALUE NArray,VALUE start,VALUE end,VALUE stride)
4356
4324
  int *dimids;
4357
4325
  size_t dimlen;
4358
4326
 
4359
- rb_secure(3);
4360
4327
  Data_Get_Struct(Var,struct NetCDFVar,Netcdf_var);
4361
4328
  ncid=Netcdf_var->ncid;
4362
4329
  varid=Netcdf_var->varid;
@@ -4369,12 +4336,12 @@ NetCDF_put_vars_float(VALUE Var,VALUE NArray,VALUE start,VALUE end,VALUE stride)
4369
4336
 
4370
4337
  Check_Type(start,T_ARRAY);
4371
4338
  if(RARRAY_LEN(start) < ndims) {
4372
- rb_raise(rb_eNetcdfError, "Length of 'start' is too short\n");
4339
+ rb_raise(rb_eNetcdfError, "Length of 'start' is too short\n");
4373
4340
  }
4374
4341
  c_start=ALLOCA_N(size_t,ndims);
4375
4342
  for(i=0; i<ndims; i++){
4376
4343
  l_start=NUM2INT(RARRAY_PTR(start)[ndims-1-i]);
4377
-
4344
+
4378
4345
  if(l_start < 0) {
4379
4346
  status = nc_inq_dimlen(ncid, dimids[i], &dimlen);
4380
4347
  if(status != NC_NOERR) NC_RAISE(status);
@@ -4382,7 +4349,7 @@ NetCDF_put_vars_float(VALUE Var,VALUE NArray,VALUE start,VALUE end,VALUE stride)
4382
4349
  }
4383
4350
  c_start[i]=l_start;
4384
4351
  }
4385
-
4352
+
4386
4353
  c_stride=ALLOCA_N(ptrdiff_t,ndims);
4387
4354
  switch(TYPE(stride)){
4388
4355
  case T_NIL:
@@ -4393,12 +4360,12 @@ NetCDF_put_vars_float(VALUE Var,VALUE NArray,VALUE start,VALUE end,VALUE stride)
4393
4360
  default:
4394
4361
  Check_Type(stride,T_ARRAY);
4395
4362
  if(RARRAY_LEN(stride) < ndims) {
4396
- rb_raise(rb_eNetcdfError, "Length of 'stride' is too short\n");
4363
+ rb_raise(rb_eNetcdfError, "Length of 'stride' is too short\n");
4397
4364
  }
4398
4365
  for(i=0; i<ndims; i++){
4399
4366
  c_stride[i]=NUM2INT(RARRAY_PTR(stride)[ndims-1-i]);
4400
4367
  if(c_stride[i]==0) {
4401
- rb_raise(rb_eNetcdfError, "stride cannot be zero\n");
4368
+ rb_raise(rb_eNetcdfError, "stride cannot be zero\n");
4402
4369
  }
4403
4370
  }
4404
4371
  }
@@ -4416,7 +4383,7 @@ NetCDF_put_vars_float(VALUE Var,VALUE NArray,VALUE start,VALUE end,VALUE stride)
4416
4383
  default:
4417
4384
  Check_Type(end,T_ARRAY);
4418
4385
  if(RARRAY_LEN(end) < ndims) {
4419
- rb_raise(rb_eNetcdfError, "Length of 'end' is too short\n");
4386
+ rb_raise(rb_eNetcdfError, "Length of 'end' is too short\n");
4420
4387
  }
4421
4388
  for(i=0; i<ndims; i++){
4422
4389
  l_end=NUM2INT(RARRAY_PTR(end)[ndims-1-i]);
@@ -4433,8 +4400,8 @@ NetCDF_put_vars_float(VALUE Var,VALUE NArray,VALUE start,VALUE end,VALUE stride)
4433
4400
  ptr = ALLOCA_N(float,c_count_all);
4434
4401
  for(i=0;i<c_count_all;i++){ptr[i]=scalar;}
4435
4402
  } else if(len != c_count_all) {
4436
- rb_raise(rb_eNetcdfError,
4437
- "lengh of the array does not agree with that of the subset\n");
4403
+ rb_raise(rb_eNetcdfError,
4404
+ "lengh of the array does not agree with that of the subset\n");
4438
4405
  }
4439
4406
  }
4440
4407
 
@@ -4463,7 +4430,6 @@ NetCDF_put_vars_double(VALUE Var,VALUE NArray,VALUE start,VALUE end,VALUE stride
4463
4430
  int *dimids;
4464
4431
  size_t dimlen;
4465
4432
 
4466
- rb_secure(3);
4467
4433
  Data_Get_Struct(Var,struct NetCDFVar,Netcdf_var);
4468
4434
  ncid=Netcdf_var->ncid;
4469
4435
  varid=Netcdf_var->varid;
@@ -4476,12 +4442,12 @@ NetCDF_put_vars_double(VALUE Var,VALUE NArray,VALUE start,VALUE end,VALUE stride
4476
4442
 
4477
4443
  Check_Type(start,T_ARRAY);
4478
4444
  if(RARRAY_LEN(start) < ndims) {
4479
- rb_raise(rb_eNetcdfError, "Length of 'start' is too short\n");
4445
+ rb_raise(rb_eNetcdfError, "Length of 'start' is too short\n");
4480
4446
  }
4481
4447
  c_start=ALLOCA_N(size_t,ndims);
4482
4448
  for(i=0; i<ndims; i++){
4483
4449
  l_start=NUM2INT(RARRAY_PTR(start)[ndims-1-i]);
4484
-
4450
+
4485
4451
  if(l_start < 0) {
4486
4452
  status = nc_inq_dimlen(ncid, dimids[i], &dimlen);
4487
4453
  if(status != NC_NOERR) NC_RAISE(status);
@@ -4489,7 +4455,7 @@ NetCDF_put_vars_double(VALUE Var,VALUE NArray,VALUE start,VALUE end,VALUE stride
4489
4455
  }
4490
4456
  c_start[i]=l_start;
4491
4457
  }
4492
-
4458
+
4493
4459
  c_stride=ALLOCA_N(ptrdiff_t,ndims);
4494
4460
  switch(TYPE(stride)){
4495
4461
  case T_NIL:
@@ -4500,12 +4466,12 @@ NetCDF_put_vars_double(VALUE Var,VALUE NArray,VALUE start,VALUE end,VALUE stride
4500
4466
  default:
4501
4467
  Check_Type(stride,T_ARRAY);
4502
4468
  if(RARRAY_LEN(stride) < ndims) {
4503
- rb_raise(rb_eNetcdfError, "Length of 'stride' is too short\n");
4469
+ rb_raise(rb_eNetcdfError, "Length of 'stride' is too short\n");
4504
4470
  }
4505
4471
  for(i=0; i<ndims; i++){
4506
4472
  c_stride[i]=NUM2INT(RARRAY_PTR(stride)[ndims-1-i]);
4507
4473
  if(c_stride[i]==0) {
4508
- rb_raise(rb_eNetcdfError, "stride cannot be zero\n");
4474
+ rb_raise(rb_eNetcdfError, "stride cannot be zero\n");
4509
4475
  }
4510
4476
  }
4511
4477
  }
@@ -4523,7 +4489,7 @@ NetCDF_put_vars_double(VALUE Var,VALUE NArray,VALUE start,VALUE end,VALUE stride
4523
4489
  default:
4524
4490
  Check_Type(end,T_ARRAY);
4525
4491
  if(RARRAY_LEN(end) < ndims) {
4526
- rb_raise(rb_eNetcdfError, "Length of 'end' is too short\n");
4492
+ rb_raise(rb_eNetcdfError, "Length of 'end' is too short\n");
4527
4493
  }
4528
4494
  for(i=0; i<ndims; i++){
4529
4495
  l_end=NUM2INT(RARRAY_PTR(end)[ndims-1-i]);
@@ -4540,8 +4506,8 @@ NetCDF_put_vars_double(VALUE Var,VALUE NArray,VALUE start,VALUE end,VALUE stride
4540
4506
  ptr = ALLOCA_N(double,c_count_all);
4541
4507
  for(i=0;i<c_count_all;i++){ptr[i]=scalar;}
4542
4508
  } else if(len != c_count_all) {
4543
- rb_raise(rb_eNetcdfError,
4544
- "lengh of the array does not agree with that of the subset\n");
4509
+ rb_raise(rb_eNetcdfError,
4510
+ "lengh of the array does not agree with that of the subset\n");
4545
4511
  }
4546
4512
  }
4547
4513
 
@@ -4589,7 +4555,7 @@ Init_netcdfraw(void)
4589
4555
  rb_eNetcdfEdge = rb_define_class("NetcdfEdge",rb_eNetcdfError);
4590
4556
  rb_eNetcdfStride = rb_define_class("NetcdfStride",rb_eNetcdfError);
4591
4557
  rb_eNetcdfBadname = rb_define_class("NetcdfBadname",rb_eNetcdfError);
4592
- /* N.B. following must match value in ncx.h */
4558
+ /* N.B. following must match value in ncx.h */
4593
4559
  rb_eNetcdfRange = rb_define_class("NetcdfRange",rb_eNetcdfError);
4594
4560
  rb_eNetcdfNomem = rb_define_class("NetcdfNomem",rb_eNetcdfError);
4595
4561
  /* Global error status */
@@ -4607,10 +4573,10 @@ Init_netcdfraw(void)
4607
4573
  rb_define_const(cNetCDF, "NC_NOCLOBBER", INT2FIX(NC_NOCLOBBER));
4608
4574
  #if NCVER >= 400
4609
4575
  rb_define_const(cNetCDF, "NC_64BIT_OFFSET", INT2FIX(NC_64BIT_OFFSET));
4610
- /* NC_64BIT_OFFSET supports large files in the class data format */
4576
+ /* NC_64BIT_OFFSET supports large files in the class data format */
4611
4577
  rb_define_const(cNetCDF, "NC_NETCDF4", INT2FIX(NC_NETCDF4));
4612
4578
  rb_define_const(cNetCDF, "NC_CLASSIC_MODEL", INT2FIX(NC_CLASSIC_MODEL));
4613
- /* for use as ( NC_NETCDF4 | NC_CLASSIC_MODEL ) to ensure the classic
4579
+ /* for use as ( NC_NETCDF4 | NC_CLASSIC_MODEL ) to ensure the classic
4614
4580
  data model in NetCDF4 by disabling new features like groups */
4615
4581
  rb_define_const(cNetCDF, "NC_ENDIAN_NATIVE", INT2FIX(NC_ENDIAN_NATIVE));
4616
4582
  rb_define_const(cNetCDF, "NC_ENDIAN_LITTLE", INT2FIX(NC_ENDIAN_LITTLE));
@@ -4621,7 +4587,7 @@ Init_netcdfraw(void)
4621
4587
  rb_define_const(cNetCDF, "NC_FORMAT_NETCDF4", INT2FIX(NC_FORMAT_NETCDF4));
4622
4588
  rb_define_const(cNetCDF, "NC_FORMAT_NETCDF4_CLASSIC", INT2FIX(NC_FORMAT_NETCDF4_CLASSIC));
4623
4589
  #endif
4624
-
4590
+
4625
4591
  #ifdef NARRAY_BIGMEM
4626
4592
  rb_define_const(cNetCDF, "SUPPORT_BIGMEM", Qtrue);
4627
4593
  #else
@@ -4658,7 +4624,7 @@ Init_netcdfraw(void)
4658
4624
  rb_define_private_method(cNetCDF,"id2var",NetCDF_id2var,1);
4659
4625
  rb_define_private_method(cNetCDF,"id2dim",NetCDF_id2dim,1);
4660
4626
  rb_define_private_method(cNetCDF,"id2att",NetCDF_id2att,1);
4661
- rb_define_method(cNetCDF,"==",NetCDF_eql,1);
4627
+ rb_define_method(cNetCDF,"==",NetCDF_eql,1);
4662
4628
  /* rb_define_method(cNetCDF,"eql?",NetCDF_eql,1); */
4663
4629
 
4664
4630
  /* The methods of the NetCDFDim class */
@@ -4736,7 +4702,7 @@ Init_netcdfraw(void)
4736
4702
  rb_define_method(cNetCDFVar,"get_var_int",NetCDF_get_var_int,0);
4737
4703
  rb_define_method(cNetCDFVar,"get_var_sfloat",NetCDF_get_var_float,0);
4738
4704
  rb_define_method(cNetCDFVar,"get_var_float",NetCDF_get_var_double,0);
4739
-
4705
+
4740
4706
  rb_define_method(cNetCDFVar,"get_vars_char",NetCDF_get_vars_char,3);
4741
4707
  rb_define_method(cNetCDFVar,"get_vars_byte",NetCDF_get_vars_byte,3);
4742
4708
  rb_define_method(cNetCDFVar,"get_vars_sint",NetCDF_get_vars_sint,3);