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

579END SUBROUTINE gridinfo_encode_data
580
581
582! =========================================
583! grib_api driver specific code
584! could this be moved to a separate module?
585! =========================================
586#ifdef HAVE_LIBGRIBAPI
587SUBROUTINE gridinfo_import_gribapi(this, gaid)
588TYPE(gridinfo_def),INTENT(inout) :: this ! gridinfo object
589INTEGER, INTENT(in) :: gaid ! grib_api id of the grib loaded in memory to import
590
591call time_import_gribapi(this%time, gaid)
592call timerange_import_gribapi(this%timerange,gaid)
593call level_import_gribapi(this%level, gaid)
594call var_import_gribapi(this%var, gaid)
595
596call normalize_gridinfo(this)
597
598END SUBROUTINE gridinfo_import_gribapi
599
600
601! grib_api driver
602SUBROUTINE gridinfo_export_gribapi(this, gaid)
603TYPE(gridinfo_def),INTENT(inout) :: this ! gridinfo object
604INTEGER, INTENT(in) :: gaid ! grib_api id of the grib loaded in memory to export
605
606TYPE(conv_func) :: c_func
607REAL,ALLOCATABLE :: tmparr(:,:)
608
609! convert variable and values to the correct edition if required
610CALL volgrid6d_var_normalize(this%var, c_func, grid_id_new(grib_api_id=gaid))
611IF (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()
615ENDIF
616IF (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)
620ENDIF
621
622CALL unnormalize_gridinfo(this)
623
624CALL time_export_gribapi(this%time, gaid, this%timerange)
625CALL timerange_export_gribapi(this%timerange, gaid, this%time)
626CALL level_export_gribapi(this%level, gaid)
627CALL var_export_gribapi(this%var, gaid)
628
629END SUBROUTINE gridinfo_export_gribapi
630

Generated with Doxygen.