libsim  Versione7.2.6

◆ arrayof_gridinfo_delete()

subroutine arrayof_gridinfo_delete ( type(arrayof_gridinfo this,
logical, intent(in), optional  nodestroy,
logical, intent(in), optional  nodealloc 
)

Destructor for finalizing an array object.

If defined, calls the destructor for every element of the array object; finally it deallocates all the space occupied.

Parametri
thisarray object to be destroyed
thisif provided and .TRUE. , the destructor possibily defined for the TYPE(gridinfo_def) is not called for every deleted object, may be useful if the objects to be deleted have been copied to another instance of arrayof_gridinfo and continue their life there
[in]nodeallocif provided and .TRUE. , the space reserved for the array is not deallocated, thus the values are retained, while the array pointer is nullified, this means that the caller must have previously assigned the pointer contents thisarray to another pointer to prevent memory leaks

Definizione alla linea 589 del file gridinfo_class.F90.

589 INTEGER, INTENT(in) :: gaid ! grib_api id of the grib loaded in memory to import
590 
591 call time_import_gribapi(this%time, gaid)
592 call timerange_import_gribapi(this%timerange,gaid)
593 call level_import_gribapi(this%level, gaid)
594 call var_import_gribapi(this%var, gaid)
595 
596 call normalize_gridinfo(this)
597 
598 END SUBROUTINE gridinfo_import_gribapi
599 
600 
601 ! grib_api driver
602 SUBROUTINE gridinfo_export_gribapi(this, gaid)
603 TYPE(gridinfo_def),INTENT(inout) :: this ! gridinfo object
604 INTEGER, INTENT(in) :: gaid ! grib_api id of the grib loaded in memory to export
605 
606 TYPE(conv_func) :: c_func
607 REAL,ALLOCATABLE :: tmparr(:,:)
608 
609 ! convert variable and values to the correct edition if required
610 CALL volgrid6d_var_normalize(this%var, c_func, grid_id_new(grib_api_id=gaid))
611 IF (this%var == volgrid6d_var_miss) THEN
612  CALL l4f_log(l4f_error, &
613  'A suitable variable has not been found in table when converting template')
614  CALL raise_error()
615 ENDIF
616 IF (c_func /= conv_func_miss) THEN ! convert values as well
617  tmparr = decode_gridinfo(this) ! f2003 implicit allocation
618  CALL compute(c_func, tmparr)
619  CALL encode_gridinfo(this, tmparr)
620 ENDIF
621 
622 CALL unnormalize_gridinfo(this)
623 
624 CALL time_export_gribapi(this%time, gaid, this%timerange)
625 CALL timerange_export_gribapi(this%timerange, gaid, this%time)
626 CALL level_export_gribapi(this%level, gaid)
627 CALL var_export_gribapi(this%var, gaid)
628 
629 END SUBROUTINE gridinfo_export_gribapi
630 
631 
632 SUBROUTINE time_import_gribapi(this,gaid)
633 TYPE(datetime),INTENT(out) :: this ! datetime object
634 INTEGER,INTENT(in) :: gaid ! grib_api id of the grib loaded in memory to import
635 
636 INTEGER :: EditionNumber, ttimeincr, tprocdata, centre, p2g, p2, unit, status
637 CHARACTER(len=9) :: date
638 CHARACTER(len=10) :: time
639 
640 CALL grib_get(gaid,'GRIBEditionNumber',editionnumber)

Generated with Doxygen.