libsim  Versione6.3.0

◆ gridinfo_init()

subroutine gridinfo_init ( type(gridinfo_def), intent(out)  this,
type(grid_id), intent(in), optional  gaid,
type(griddim_def), intent(in), optional  griddim,
type(datetime), intent(in), optional  time,
type(vol7d_timerange), intent(in), optional  timerange,
type(vol7d_level), intent(in), optional  level,
type(volgrid6d_var), intent(in), optional  var,
logical, intent(in), optional  clone,
character(len=*), intent(in), optional  categoryappend 
)

Constructor, it creates a new instance of the object.

All the additional parameters are optional and they will be initialised to the corresponding missing value if not provided.

Parametri
[out]thisobject to be initialized
[in]gaididentificator of the grid to be described
[in]griddimgrid descriptor
[in]timetime dimension descriptor
[in]timerangetimerange (forecast, analysis, statistically processed) dimension descriptor
[in]levelvertical level dimension descriptor
[in]varphysical variable dimension descriptor
[in]cloneif provided and .TRUE., the gaid will be cloned and not simply copied into the gridinfo object
[in]categoryappendappend this suffix to log4fortran namespace category

Definizione alla linea 718 del file gridinfo_class.F90.

718 
719 INTEGER :: EditionNumber,level1,l1,level2,l2
720 INTEGER :: ltype,ltype1,scalef1,scalev1,ltype2,scalef2,scalev2
721 
722 call grib_get(gaid,'GRIBEditionNumber',editionnumber)
723 
724 if (editionnumber == 1)then
725 
726  call grib_get(gaid,'indicatorOfTypeOfLevel',ltype)
727  call grib_get(gaid,'topLevel',l1)
728  call grib_get(gaid,'bottomLevel',l2)
729 
730  call level_g1_to_g2(ltype,l1,l2,ltype1,scalef1,scalev1,ltype2,scalef2,scalev2)
731 
732 else if (editionnumber == 2)then
733 
734  call grib_get(gaid,'typeOfFirstFixedSurface',ltype1)
735  call grib_get(gaid,'scaleFactorOfFirstFixedSurface',scalef1)
736  call grib_get(gaid,'scaledValueOfFirstFixedSurface',scalev1)
737  IF (scalef1 == -1 .OR. scalev1 == -1) THEN
738  scalef1 = imiss; scalev1 = imiss
739  ENDIF
740 
741  call grib_get(gaid,'typeOfSecondFixedSurface',ltype2)
742  call grib_get(gaid,'scaleFactorOfSecondFixedSurface',scalef2)
743  call grib_get(gaid,'scaledValueOfSecondFixedSurface',scalev2)
744  IF (scalef2 == -1 .OR. scalev2 == -1) THEN
745  scalef2 = imiss; scalev2 = imiss
746  ENDIF
747 
748 else
749 
750  CALL l4f_log(l4f_error,'GribEditionNumber '//t2c(editionnumber)//' not supported')
751  CALL raise_error()
752 
753 end if
754 
755 ! Convert missing levels and units m -> mm
756 call level_g2_to_dballe(ltype1,scalef1,scalev1,ltype2,scalef2,scalev2, &
757  level1,l1,level2,l2)
758 
759 call init (this,level1,l1,level2,l2)
760 
761 END SUBROUTINE level_import_gribapi
762 
763 
764 SUBROUTINE level_export_gribapi(this, gaid)
765 TYPE(vol7d_level),INTENT(in) :: this ! vol7d_level object
766 INTEGER,INTENT(in) :: gaid ! grib_api id of the grib loaded in memory to export
767 
768 INTEGER :: EditionNumber, ltype1, scalef1, scalev1, ltype2, scalef2, scalev2, &
769  ltype, l1, l2
770 
771 CALL level_dballe_to_g2(this%level1, this%l1, this%level2, this%l2, &
772  ltype1, scalef1, scalev1, ltype2, scalef2, scalev2)
773 
774 call grib_get(gaid,'GRIBEditionNumber',editionnumber)
775 
776 if (editionnumber == 1)then
777 
778  CALL level_g2_to_g1(ltype1,scalef1,scalev1,ltype2,scalef2,scalev2,ltype,l1,l2)
779 
780  call grib_set(gaid,'indicatorOfTypeOfLevel',ltype)
781 ! it is important to set topLevel after, otherwise, in case of single levels
782 ! bottomLevel=0 overwrites topLevel (aliases in grib_api)
783  call grib_set(gaid,'bottomLevel',l2)
784  call grib_set(gaid,'topLevel',l1)
785 
Functions that return a trimmed CHARACTER representation of the input variable.
Costruttori per le classi datetime e timedelta.

Generated with Doxygen.