Changeset 1390 for XIOS/dev/XIOS_DEV_CMIP6/src/io/nc4_data_output.cpp
- Timestamp:
- 01/08/18 16:46:46 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/dev/XIOS_DEV_CMIP6/src/io/nc4_data_output.cpp
r1333 r1390 128 128 for (int idx = 0; idx < nbWritten; ++idx) 129 129 { 130 writtenLat(idx) = domain->latvalue(indexToWrite(idx)); 131 writtenLon(idx) = domain->lonvalue(indexToWrite(idx)); 130 if (idx < domain->latvalue.numElements()) 131 { 132 writtenLat(idx) = domain->latvalue(indexToWrite(idx)); 133 writtenLon(idx) = domain->lonvalue(indexToWrite(idx)); 134 } 135 else 136 { 137 writtenLat(idx) = 0.; 138 writtenLon(idx) = 0.; 139 } 132 140 } 133 141 … … 143 151 for (int nv = 0; nv < nvertex; ++nv) 144 152 { 145 writtenBndsLat(nv, idx) = boundslat(nv, int(indexToWrite(idx))); 146 writtenBndsLon(nv, idx) = boundslon(nv, int(indexToWrite(idx))); 153 if (idx < boundslat.columns()) 154 { 155 writtenBndsLat(nv, idx) = boundslat(nv, int(indexToWrite(idx))); 156 writtenBndsLon(nv, idx) = boundslon(nv, int(indexToWrite(idx))); 157 } 158 else 159 { 160 writtenBndsLat(nv, idx) = 0.; 161 writtenBndsLon(nv, idx) = 0.; 162 } 147 163 } 148 164 } … … 154 170 for (int idx = 0; idx < nbWritten; ++idx) 155 171 { 156 writtenArea(idx) = domain->areavalue(indexToWrite(idx)); 172 if (idx < domain->areavalue.numElements()) 173 writtenArea(idx) = domain->areavalue(indexToWrite(idx)); 174 else 175 writtenArea(idx) = 0.; 157 176 } 158 177 } … … 940 959 for (int idx = 0; idx < nbWritten; ++idx) 941 960 { 942 writtenLat(idx) = domain->latvalue(indexToWrite(idx)); 943 writtenLon(idx) = domain->lonvalue(indexToWrite(idx)); 944 } 961 if (idx < domain->latvalue.numElements()) 962 { 963 writtenLat(idx) = domain->latvalue(indexToWrite(idx)); 964 writtenLon(idx) = domain->lonvalue(indexToWrite(idx)); 965 } 966 else 967 { 968 writtenLat(idx) = 0.; 969 writtenLon(idx) = 0.; 970 } 971 } 972 } 945 973 946 947 if (domain->hasBounds) 948 { 949 int nvertex = domain->nvertex, idx; 950 writtenBndsLat.resize(nvertex, nbWritten); 951 writtenBndsLon.resize(nvertex, nbWritten); 952 CArray<double,2>& boundslat = domain->bounds_latvalue; 953 CArray<double,2>& boundslon = domain->bounds_lonvalue; 954 for (idx = 0; idx < nbWritten; ++idx) 955 for (int nv = 0; nv < nvertex; ++nv) 974 if (domain->hasBounds) 975 { 976 int nvertex = domain->nvertex, idx; 977 writtenBndsLat.resize(nvertex, nbWritten); 978 writtenBndsLon.resize(nvertex, nbWritten); 979 CArray<double,2>& boundslat = domain->bounds_latvalue; 980 CArray<double,2>& boundslon = domain->bounds_lonvalue; 981 for (idx = 0; idx < nbWritten; ++idx) 982 { 983 for (int nv = 0; nv < nvertex; ++nv) 984 { 985 if (idx < boundslat.columns()) 956 986 { 957 987 writtenBndsLat(nv, idx) = boundslat(nv, int(indexToWrite(idx))); 958 988 writtenBndsLon(nv, idx) = boundslon(nv, int(indexToWrite(idx))); 959 989 } 990 else 991 { 992 writtenBndsLat(nv, idx) = 0.; 993 writtenBndsLon(nv, idx) = 0.; 994 } 995 } 960 996 } 961 997 } … … 966 1002 for (int idx = 0; idx < nbWritten; ++idx) 967 1003 { 968 writtenArea(idx) = domain->areavalue(indexToWrite(idx)); 1004 if (idx < domain->areavalue.numElements()) 1005 writtenArea(idx) = domain->areavalue(indexToWrite(idx)); 1006 else 1007 writtenArea(idx) = 0.; 969 1008 } 970 1009 }
Note: See TracChangeset
for help on using the changeset viewer.