libsim  Versione8.0.0

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

Generated with Doxygen.