|
libsim Versione 8.0.0
|
◆ export_to_gridinfo()
Export a single grid of a volgrid6d object to a gridinfo_def object. A single 2d slice of a volgrid6d at a specified location is written into a gridinfo_def object, including the grid_id which can be used for the successive export to file.
Definizione alla linea 1175 del file volgrid6d_class.F90. 1177 ntime = count_distinct(correctedtime, &
1178 mask=(this(i)%griddim == gridinfov%array(1:gridinfov%arraysize)%griddim) &
1179 .AND. .NOT.isanavar(:), back=.true.)
1180 ELSE
1181 ntime = count_distinct(gridinfov%array(1:gridinfov%arraysize)%time, &
1182 mask=(this(i)%griddim == gridinfov%array(1:gridinfov%arraysize)%griddim) &
1183 .AND. .NOT.isanavar(:), back=.true.)
1184 ENDIF
1185 IF (ltime_definition == 2) THEN ! set all to analysis
1186 ntimerange = count_distinct(correctedtimerange, &
1187 mask=(this(i)%griddim == gridinfov%array(1:gridinfov%arraysize)%griddim) &
1188 .AND. .NOT.isanavar(:), back=.true.)
1189 ELSE
1190 ntimerange = count_distinct(gridinfov%array(1:gridinfov%arraysize)%timerange, &
1191 mask=(this(i)%griddim == gridinfov%array(1:gridinfov%arraysize)%griddim) &
1192 .AND. .NOT.isanavar(:), back=.true.)
1193 ENDIF
1194 nlevel = count_distinct(gridinfov%array(1:gridinfov%arraysize)%level, &
1195 mask=(this(i)%griddim == gridinfov%array(1:gridinfov%arraysize)%griddim), &
1196 back=.true.)
1197 nvar = count_distinct(gridinfov%array(1:gridinfov%arraysize)%var, &
1198 mask=(this(i)%griddim == gridinfov%array(1:gridinfov%arraysize)%griddim), &
1199 back=.true.)
1200
1201#ifdef DEBUG
1202 CALL l4f_category_log(this(i)%category,l4f_debug,"alloc volgrid6d index: "//t2c(i))
1203#endif
1204
1205 CALL volgrid6d_alloc(this(i),this(i)%griddim%dim,ntime=ntime, &
1206 ntimerange=ntimerange,nlevel=nlevel,nvar=nvar)
1207
1208 IF (ltime_definition == 1 .OR. ltime_definition == 2) THEN ! verification time
1209 this(i)%time = pack_distinct(correctedtime, ntime, &
1210 mask=(this(i)%griddim == gridinfov%array(1:gridinfov%arraysize)%griddim) &
1211 .AND. .NOT.isanavar(:), back=.true.)
1212 ELSE
1213 this(i)%time = pack_distinct(gridinfov%array(1:gridinfov%arraysize)%time, ntime, &
1214 mask=(this(i)%griddim == gridinfov%array(1:gridinfov%arraysize)%griddim) &
1215 .AND. .NOT.isanavar(:), back=.true.)
1216 ENDIF
1217 CALL sort(this(i)%time)
1218
1219 IF (ltime_definition == 2) THEN ! set all to analysis
1220 this(i)%timerange = pack_distinct(correctedtimerange, ntimerange, &
1221 mask=(this(i)%griddim == gridinfov%array(1:gridinfov%arraysize)%griddim) &
1222 .AND. .NOT.isanavar(:), back=.true.)
1223 ELSE
1224 this(i)%timerange = pack_distinct(gridinfov%array(1:gridinfov%arraysize)%timerange, &
1225 ntimerange, mask=(this(i)%griddim == gridinfov%array(1:gridinfov%arraysize)%griddim) &
1226 .AND. .NOT.isanavar(:), back=.true.)
1227 ENDIF
1228 CALL sort(this(i)%timerange)
1229
1230 this(i)%level=pack_distinct(gridinfov%array(1:gridinfov%arraysize)%level, &
1231 nlevel,mask=(this(i)%griddim == gridinfov%array(1:gridinfov%arraysize)%griddim), &
1232 back=.true.)
1233 CALL sort(this(i)%level)
1234
1235 this(i)%var=pack_distinct(gridinfov%array(1:gridinfov%arraysize)%var, nvar, &
1236 mask=(this(i)%griddim == gridinfov%array(1:gridinfov%arraysize)%griddim), &
1237 back=.true.)
1238
1239#ifdef DEBUG
1240 CALL l4f_category_log(this(i)%category,l4f_debug,"alloc_vol volgrid6d index: "//t2c(i))
1241#endif
1242 CALL volgrid6d_alloc_vol(this(i), decode=decode)
1243
|