libsim Versione 7.2.1

◆ 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 574 del file gridinfo_class.F90.

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

Generated with Doxygen.