@@ -1085,100 +1085,51 @@ PIOc_put_vars_tc(int ncid, int varid, const PIO_Offset *start, const PIO_Offset
1085
1085
#ifdef _PNETCDF
1086
1086
if (file -> iotype == PIO_IOTYPE_PNETCDF )
1087
1087
{
1088
- if (ndims == 0 )
1089
- if ((ierr = ncmpi_begin_indep_data (file -> fh )))
1090
- return pio_err (ios , file , ierr , __FILE__ , __LINE__ );
1091
1088
if (ios -> iomain == MPI_ROOT )
1092
1089
{
1093
- /* Scalars have to be handled differently. */
1094
- if (ndims == 0 )
1090
+ /* This is not a scalar var. */
1091
+ var_desc_t * vdesc ;
1092
+
1093
+ PLOG ((2 , "PIOc_put_vars_tc calling pnetcdf function" ));
1094
+
1095
+ if ((ierr = get_var_desc (varid , & file -> varlist , & vdesc )))
1096
+ return pio_err (ios , file , ierr , __FILE__ , __LINE__ );
1097
+
1098
+ switch (xtype )
1095
1099
{
1096
- /* This is a scalar var. */
1097
- PLOG ((2 , "pnetcdf writing scalar with ncmpi_put_vars_*() file->fh = %d varid = %d" ,
1098
- file -> fh , varid ));
1099
- pioassert (!start && !count && !stride , "expected NULLs" , __FILE__ , __LINE__ );
1100
-
1101
-
1102
- /* Only the IO main does the IO, so we are not really
1103
- * getting parallel IO here. */
1104
-
1105
- switch (xtype )
1106
- {
1107
- case NC_BYTE :
1108
- ierr = ncmpi_put_vars_schar (file -> fh , varid , start , count , stride , buf );
1109
- break ;
1110
- case NC_CHAR :
1111
- ierr = ncmpi_put_vars_text (file -> fh , varid , start , count , stride , buf );
1112
- break ;
1113
- case NC_SHORT :
1114
- ierr = ncmpi_put_vars_short (file -> fh , varid , start , count , stride , buf );
1115
- break ;
1116
- case NC_INT :
1117
- ierr = ncmpi_put_vars_int (file -> fh , varid , start , count , stride , buf );
1118
- break ;
1119
- case PIO_LONG_INTERNAL :
1120
- ierr = ncmpi_put_vars_long (file -> fh , varid , start , count , stride , buf );
1121
- break ;
1122
- case NC_FLOAT :
1123
- ierr = ncmpi_put_vars_float (file -> fh , varid , start , count , stride , buf );
1124
- break ;
1125
- case NC_DOUBLE :
1126
- ierr = ncmpi_put_vars_double (file -> fh , varid , start , count , stride , buf );
1127
- break ;
1128
- default :
1129
- return pio_err (ios , file , PIO_EBADIOTYPE , __FILE__ , __LINE__ );
1130
- }
1100
+ case NC_BYTE :
1101
+ ierr = ncmpi_bput_vars_schar (file -> fh , varid , start , count , fake_stride , buf , NULL );
1102
+ break ;
1103
+ case NC_CHAR :
1104
+ ierr = ncmpi_bput_vars_text (file -> fh , varid , start , count , fake_stride , buf , NULL );
1105
+ break ;
1106
+ case NC_SHORT :
1107
+ ierr = ncmpi_bput_vars_short (file -> fh , varid , start , count , fake_stride , buf , NULL );
1108
+ break ;
1109
+ case NC_INT :
1110
+ ierr = ncmpi_bput_vars_int (file -> fh , varid , start , count , fake_stride , buf , NULL );
1111
+ break ;
1112
+ case PIO_LONG_INTERNAL :
1113
+ ierr = ncmpi_bput_vars_long (file -> fh , varid , start , count , fake_stride , buf , NULL );
1114
+ break ;
1115
+ case NC_FLOAT :
1116
+ ierr = ncmpi_bput_vars_float (file -> fh , varid , start , count , fake_stride , buf , NULL );
1117
+ break ;
1118
+ case NC_DOUBLE :
1119
+ ierr = ncmpi_bput_vars_double (file -> fh , varid , start , count , fake_stride , buf , NULL );
1120
+ break ;
1121
+ default :
1122
+ return pio_err (ios , file , PIO_EBADTYPE , __FILE__ , __LINE__ );
1131
1123
}
1132
- else
1133
- {
1134
- /* This is not a scalar var. */
1135
- var_desc_t * vdesc ;
1136
-
1137
- PLOG ((2 , "PIOc_put_vars_tc calling pnetcdf function" ));
1138
-
1139
- if ((ierr = get_var_desc (varid , & file -> varlist , & vdesc )))
1140
- return pio_err (ios , file , ierr , __FILE__ , __LINE__ );
1141
-
1142
- switch (xtype )
1143
- {
1144
- case NC_BYTE :
1145
- ierr = ncmpi_bput_vars_schar (file -> fh , varid , start , count , fake_stride , buf , NULL );
1146
- break ;
1147
- case NC_CHAR :
1148
- ierr = ncmpi_bput_vars_text (file -> fh , varid , start , count , fake_stride , buf , NULL );
1149
- break ;
1150
- case NC_SHORT :
1151
- ierr = ncmpi_bput_vars_short (file -> fh , varid , start , count , fake_stride , buf , NULL );
1152
- break ;
1153
- case NC_INT :
1154
- ierr = ncmpi_bput_vars_int (file -> fh , varid , start , count , fake_stride , buf , NULL );
1155
- break ;
1156
- case PIO_LONG_INTERNAL :
1157
- ierr = ncmpi_bput_vars_long (file -> fh , varid , start , count , fake_stride , buf , NULL );
1158
- break ;
1159
- case NC_FLOAT :
1160
- ierr = ncmpi_bput_vars_float (file -> fh , varid , start , count , fake_stride , buf , NULL );
1161
- break ;
1162
- case NC_DOUBLE :
1163
- ierr = ncmpi_bput_vars_double (file -> fh , varid , start , count , fake_stride , buf , NULL );
1164
- break ;
1165
- default :
1166
- return pio_err (ios , file , PIO_EBADTYPE , __FILE__ , __LINE__ );
1167
- }
1168
- PLOG ((2 , "PIOc_put_vars_tc io_rank 0 done with pnetcdf call, ierr=%d" , ierr ));
1169
-
1170
-
1171
- vdesc -> nreqs ++ ;
1124
+ PLOG ((2 , "PIOc_put_vars_tc io_rank 0 done with pnetcdf call, ierr=%d" , ierr ));
1125
+
1126
+
1127
+ vdesc -> nreqs ++ ;
1172
1128
1173
1129
if (ierr == PIO_EINVALCOORDS )
1174
1130
for (int i = 0 ; i < ndims ; i ++ )
1175
1131
PLOG ((2 ,"start[%d] %ld count[%d] %ld\n" ,i ,start [i ],i ,count [i ]));
1176
- } /* endif ndims == 0 */
1177
1132
} /* end if MPI_ROOT */
1178
- /* Turn off independent access for pnetcdf file. */
1179
- if (ndims == 0 )
1180
- if ((ierr = ncmpi_end_indep_data (file -> fh )))
1181
- return pio_err (ios , file , ierr , __FILE__ , __LINE__ );
1182
1133
}
1183
1134
#endif /* _PNETCDF */
1184
1135
0 commit comments