|
◆ gridinfo_init()
subroutine gridinfo_class::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 |
|
) |
| |
|
private |
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] | this | object to be initialized |
[in] | gaid | identificator of the grid to be described |
[in] | griddim | grid descriptor |
[in] | time | time dimension descriptor |
[in] | timerange | timerange (forecast, analysis, statistically processed) dimension descriptor |
[in] | level | vertical level dimension descriptor |
[in] | var | physical variable dimension descriptor |
[in] | clone | if provided and .TRUE., the gaid will be cloned and not simply copied into the gridinfo object |
[in] | categoryappend | append this suffix to log4fortran namespace category |
Definizione alla linea 696 del file gridinfo_class.F90.
698 CALL grib_get(gaid, 'centre',centre)
699 IF (g2cosmo_behavior .AND. centre == 78) THEN
700 CALL code_referencetime(this)
702 CALL code_referencetime(this-timedelta_new(sec=timerange%p2))
705 CALL l4f_log( l4f_error, 'Timerange with 0>p1>p2 cannot be exported in grib2')
711 CALL l4f_log(l4f_error, 'GribEditionNumber '//t2c(editionnumber)// ' not supported')
718 SUBROUTINE code_referencetime(reftime)
719 TYPE(datetime), INTENT(in) :: reftime
722 CHARACTER(len=17) :: date_time
725 CALL getval(reftime, simpledate=date_time)
726 READ(date_time(:8), '(I8)')date
727 READ(date_time(9:12), '(I4)')time
728 CALL grib_set(gaid, 'dataDate',date)
729 CALL grib_set(gaid, 'dataTime',time)
731 END SUBROUTINE code_referencetime
733 END SUBROUTINE time_export_gribapi
736 SUBROUTINE level_import_gribapi(this, gaid)
737 TYPE(vol7d_level), INTENT(out) :: this
738 INTEGER, INTENT(in) :: gaid
740 INTEGER :: EditionNumber,level1,l1,level2,l2
741 INTEGER :: ltype,ltype1,scalef1,scalev1,ltype2,scalef2,scalev2
743 call grib_get(gaid, 'GRIBEditionNumber',editionnumber)
745 if (editionnumber == 1) then
747 call grib_get(gaid, 'indicatorOfTypeOfLevel',ltype)
748 call grib_get(gaid, 'topLevel',l1)
749 call grib_get(gaid, 'bottomLevel',l2)
751 call level_g1_to_g2(ltype,l1,l2,ltype1,scalef1,scalev1,ltype2,scalef2,scalev2)
753 else if (editionnumber == 2) then
755 call grib_get(gaid, 'typeOfFirstFixedSurface',ltype1)
756 call grib_get(gaid, 'scaleFactorOfFirstFixedSurface',scalef1)
757 call grib_get(gaid, 'scaledValueOfFirstFixedSurface',scalev1)
758 IF (scalef1 == -1 .OR. scalev1 == -1) THEN
759 scalef1 = imiss; scalev1 = imiss
762 call grib_get(gaid, 'typeOfSecondFixedSurface',ltype2)
763 call grib_get(gaid, 'scaleFactorOfSecondFixedSurface',scalef2)
764 call grib_get(gaid, 'scaledValueOfSecondFixedSurface',scalev2)
765 IF (scalef2 == -1 .OR. scalev2 == -1) THEN
|