libsim  Versione 7.2.6

◆ export_to_gridinfo()

subroutine export_to_gridinfo ( type(volgrid6d), intent(in)  this,
type(gridinfo_def), intent(inout)  gridinfo,
integer  itime,
integer  itimerange,
integer  ilevel,
integer  ivar,
type(grid_id), intent(in), optional  gaid_template,
logical, intent(in), optional  clone 
)

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.

Parametri
[in]thisvolume to be exported
[in,out]gridinfooutput gridinfo_def object
itimeindex within this of the element to be exported for the time dimension
itimerangeindex within this of the element to be exported for the timerange dimension
ilevelindex within this of the element to be exported for the vertical level dimension
ivarindex within this of the element to be exported for the variable dimension
[in]gaid_templategrid_id template to be used for output data replacing the one contained in this
[in]cloneif provided and .TRUE., clone the grid_id included in this rather than making a shallow copy

Definizione alla linea 1180 del file volgrid6d_class.F90.

1182  mask=(this(i)%griddim == gridinfov%array(1:gridinfov%arraysize)%griddim) &
1183  .AND. .NOT.isanavar(:), back=.true.)
1184  ELSE
1185  ntimerange = count_distinct(gridinfov%array(1:gridinfov%arraysize)%timerange, &
1186  mask=(this(i)%griddim == gridinfov%array(1:gridinfov%arraysize)%griddim) &
1187  .AND. .NOT.isanavar(:), back=.true.)
1188  ENDIF
1189  nlevel = count_distinct(gridinfov%array(1:gridinfov%arraysize)%level, &
1190  mask=(this(i)%griddim == gridinfov%array(1:gridinfov%arraysize)%griddim), &
1191  back=.true.)
1192  nvar = count_distinct(gridinfov%array(1:gridinfov%arraysize)%var, &
1193  mask=(this(i)%griddim == gridinfov%array(1:gridinfov%arraysize)%griddim), &
1194  back=.true.)
1195 
1196 #ifdef DEBUG
1197  CALL l4f_category_log(this(i)%category,l4f_debug,"alloc volgrid6d index: "//t2c(i))
1198 #endif
1199 
1200  CALL volgrid6d_alloc(this(i),this(i)%griddim%dim,ntime=ntime, &
1201  ntimerange=ntimerange,nlevel=nlevel,nvar=nvar)
1202 
1203  IF (ltime_definition == 1 .OR. ltime_definition == 2) THEN ! verification time
1204  this(i)%time = pack_distinct(correctedtime, ntime, &
1205  mask=(this(i)%griddim == gridinfov%array(1:gridinfov%arraysize)%griddim) &
1206  .AND. .NOT.isanavar(:), back=.true.)
1207  ELSE
1208  this(i)%time = pack_distinct(gridinfov%array(1:gridinfov%arraysize)%time, ntime, &
1209  mask=(this(i)%griddim == gridinfov%array(1:gridinfov%arraysize)%griddim) &
1210  .AND. .NOT.isanavar(:), back=.true.)
1211  ENDIF
1212  CALL sort(this(i)%time)
1213 
1214  IF (ltime_definition == 2) THEN ! set all to analysis
1215  this(i)%timerange = pack_distinct(correctedtimerange, ntimerange, &
1216  mask=(this(i)%griddim == gridinfov%array(1:gridinfov%arraysize)%griddim) &
1217  .AND. .NOT.isanavar(:), back=.true.)
1218  ELSE
1219  this(i)%timerange = pack_distinct(gridinfov%array(1:gridinfov%arraysize)%timerange, &
1220  ntimerange, mask=(this(i)%griddim == gridinfov%array(1:gridinfov%arraysize)%griddim) &
1221  .AND. .NOT.isanavar(:), back=.true.)
1222  ENDIF
1223  CALL sort(this(i)%timerange)
1224 
1225  this(i)%level=pack_distinct(gridinfov%array(1:gridinfov%arraysize)%level, &
1226  nlevel,mask=(this(i)%griddim == gridinfov%array(1:gridinfov%arraysize)%griddim), &
1227  back=.true.)
1228  CALL sort(this(i)%level)
1229 
1230  this(i)%var=pack_distinct(gridinfov%array(1:gridinfov%arraysize)%var, nvar, &
1231  mask=(this(i)%griddim == gridinfov%array(1:gridinfov%arraysize)%griddim), &
1232  back=.true.)
1233 
1234 #ifdef DEBUG
1235  CALL l4f_category_log(this(i)%category,l4f_debug,"alloc_vol volgrid6d index: "//t2c(i))
1236 #endif
1237  CALL volgrid6d_alloc_vol(this(i), decode=decode)
1238 
1239 ENDDO
1240 
1241 IF (ltime_definition == 1 .OR. ltime_definition == 2) DEALLOCATE(correctedtime)
1242 IF (ltime_definition == 2) DEALLOCATE(correctedtimerange)
1243 
1244 DO i = 1, gridinfov%arraysize
1245 
1246 #ifdef DEBUG
1247  CALL l4f_category_log(category,l4f_debug,import from gridinfov index: "//t2c(i))
1248  CALL l4f_category_log(category,L4F_INFO, &
Index method.

Generated with Doxygen.