|
◆ 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 900 del file gridinfo_class.F90.
901 LOGICAL :: g2cosmo_behavior
903 CALL grib_get(gaid, 'GRIBEditionNumber',editionnumber)
905 IF (editionnumber == 1 ) THEN
907 CALL grib_get(gaid, 'indicatorOfUnitOfTimeRange',currentunit)
908 CALL timerange_v7d_to_g1(this%timerange, this%p1, this%p2, &
909 tri, p1_g1, p2_g1, unit)
911 CALL grib_set(gaid, 'timeRangeIndicator',tri)
912 CALL grib_set(gaid, 'P1',p1_g1)
913 CALL grib_set(gaid, 'P2',p2_g1)
914 CALL grib_set(gaid, 'indicatorOfUnitOfTimeRange',unit)
916 ELSE IF (editionnumber == 2) THEN
917 CALL grib_get(gaid, 'productDefinitionTemplateNumber', pdtn)
919 IF (this%timerange == 254) THEN
920 IF (pdtn < 0 .OR. pdtn > 7) &
921 CALL grib_set(gaid, 'productDefinitionTemplateNumber', 0)
923 CALL timerange_v7d_to_g2(this%p1,p1,unit)
925 CALL grib_set(gaid, 'indicatorOfUnitOfTimeRange',unit)
926 CALL grib_set(gaid, 'forecastTime',p1)
928 ELSE IF (this%timerange >= 0 .AND. this%timerange < 254) THEN
930 IF (pdtn < 8 .OR. pdtn > 14) &
931 CALL grib_set(gaid, 'productDefinitionTemplateNumber', 8)
933 IF (this%p1 >= this%p2) THEN
935 CALL timerange_v7d_to_g2(this%p1-this%p2,p1,unit)
936 CALL grib_set(gaid, 'indicatorOfUnitOfTimeRange',unit)
937 CALL grib_set(gaid, 'forecastTime',p1)
938 CALL code_endoftimeinterval(reftime+timedelta_new(sec=this%p1))
941 CALL grib_set(gaid, 'typeOfStatisticalProcessing',this%timerange)
943 CALL grib_set(gaid, 'typeOfTimeIncrement',2)
944 CALL timerange_v7d_to_g2(this%p2,p2,unit)
945 CALL grib_set(gaid, 'indicatorOfUnitForTimeRange',unit)
946 CALL grib_set(gaid, 'lengthOfTimeRange',p2)
948 ELSE IF (this%p1 == 0) THEN
950 CALL timerange_v7d_to_g2(this%p2,p2,unit)
951 CALL grib_set(gaid, 'indicatorOfUnitOfTimeRange',unit)
952 CALL grib_set(gaid, 'forecastTime',0)
953 CALL code_endoftimeinterval(reftime)
|