|
◆ gridinfo_import_from_file()
subroutine gridinfo_class::gridinfo_import_from_file |
( |
type(arrayof_gridinfo) |
this, |
|
|
character(len=*), intent(in) |
filename, |
|
|
character(len=*), intent(in), optional |
categoryappend |
|
) |
| |
|
private |
Import an array of gridinfo from a file.
It receives a (possibly unallocated) array of gridinfo objects which will be extended by a number of elements equal to the number of gridded messages/bands found in the file provided and it will be filled with all the data found. In case of error, the gridinfo object will not be allocated, so the success can be tested by checking thisarraysize. - Parametri
-
| this | array of gridinfo objects which will be allocated/extended and into which data will be imported |
[in] | filename | name of file to open and import, in the form [driver:]pathname |
[in] | categoryappend | append this suffix to log4fortran namespace category |
Definizione alla linea 904 del file gridinfo_class.F90.
908 END SUBROUTINE timerange_import_gribapi
911 SUBROUTINE timerange_export_gribapi(this, gaid, reftime)
912 TYPE(vol7d_timerange), INTENT(in) :: this
913 INTEGER, INTENT(in) :: gaid
914 TYPE(datetime) :: reftime
916 INTEGER :: EditionNumber, centre, tri, currentunit, unit, p1_g1, p2_g1, p1
918 LOGICAL :: g2cosmo_behavior
922 IF (editionnumber == 1 ) THEN
924 CALL grib_get(gaid, 'indicatorOfUnitOfTimeRange',currentunit)
925 CALL timerange_v7d_to_g1(this%timerange, this%p1, this%p2, &
926 tri, p1_g1, p2_g1, unit)
928 CALL grib_set(gaid, 'timeRangeIndicator',tri)
929 CALL grib_set(gaid, 'P1',p1_g1)
930 CALL grib_set(gaid, 'P2',p2_g1)
931 CALL grib_set(gaid, 'indicatorOfUnitOfTimeRange',unit)
933 ELSE IF (editionnumber == 2) THEN
934 CALL grib_get(gaid, 'productDefinitionTemplateNumber', pdtn)
936 IF (this%timerange == 254) THEN
937 IF (pdtn < 0 .OR. pdtn > 7) &
938 CALL grib_set(gaid, 'productDefinitionTemplateNumber', 0)
940 CALL timerange_v7d_to_g2(this%p1,p1,unit)
942 CALL grib_set(gaid, 'indicatorOfUnitOfTimeRange',unit)
943 CALL grib_set(gaid, 'forecastTime',p1)
945 ELSE IF (this%timerange >= 0 .AND. this%timerange < 254) THEN
947 IF (pdtn < 8 .OR. pdtn > 14) &
948 CALL grib_set(gaid, 'productDefinitionTemplateNumber', 8)
950 IF (this%p1 >= this%p2) THEN
952 CALL timerange_v7d_to_g2(this%p1-this%p2,p1,unit)
953 CALL grib_set(gaid, 'indicatorOfUnitOfTimeRange',unit)
954 CALL grib_set(gaid, 'forecastTime',p1)
955 CALL code_endoftimeinterval(reftime+timedelta_new(sec=this%p1))
958 CALL grib_set(gaid, 'typeOfStatisticalProcessing',this%timerange)
960 CALL grib_set(gaid, 'typeOfTimeIncrement',2)
961 CALL timerange_v7d_to_g2(this%p2,p2,unit)
962 CALL grib_set(gaid, 'indicatorOfUnitForTimeRange',unit)
963 CALL grib_set(gaid, 'lengthOfTimeRange',p2)
965 ELSE IF (this%p1 == 0) THEN
|