set properties and initialize variables for each interpolation method
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=short), | intent(in) | :: | method | |||
type(IniList), | intent(in) | :: | ini | |||
type(grid_integer), | intent(in) | :: | mask |
SUBROUTINE SetSpecificProperties & ! ( method, ini, mask ) IMPLICIT NONE !Arguments with intent(in): INTEGER (KIND = short), INTENT(in) :: method TYPE (IniList) , INTENT(in) :: ini TYPE (grid_integer) , INTENT(in) :: mask !----------------------------end of declarations------------------------------- !set data specific for each interpolation method SELECT CASE (method) CASE (1) !thiessen CALL NewGrid (interpolatedMap (1), mask, 0.) CASE (2) !inverse distance CALL NewGrid (interpolatedMap (2), mask, 0.) !nearest-points IF (KeyIsPresent ('nearest-points', ini, & section = 'relative-humidity') ) THEN neighbors = IniReadInt ('nearest-points', ini, & section = 'relative-humidity') ELSE !nearest-points missing CALL Catch ('error', 'AirRelativeHumidity', & 'nearest-points missing in meteo configuration file') END IF CASE (3) !kriging CALL NewGrid (interpolatedMap (3), mask, 0.) !nearest-points IF (KeyIsPresent ('nearest-points', ini, & section = 'relative-humidity') ) THEN neighbors = IniReadInt ('nearest-points', ini, & section = 'relative-humidity') CALL Catch ('info', 'AirRelativeHumidity', & 'neighbors set to: ', argument = ToString (neighbors) ) ELSE !nearest-points missing CALL Catch ('error', 'AirRelativeHumidity', & 'nearest-points missing in meteo configuration file') END IF !kriging-variance IF (KeyIsPresent ('kriging-variance', ini, & section = 'relative-humidity') ) THEN krige_var = IniReadInt ('kriging-variance', ini, & section = 'relative-humidity') CALL Catch ('info', 'AirRelativeHumidity', & 'kriging variance export set to ', argument = ToString(krige_var) ) ELSE !kriging-variance missing krige_var = 0 CALL Catch ('info', 'AirRelativeHumidity', & 'kriging variance export set to default (0)') END IF !kriging-anisotropy IF (KeyIsPresent ('kriging-anisotropy', ini, & section = 'relative-humidity') ) THEN krige_anisotropy = IniReadInt ('kriging-anisotropy', ini, & section = 'relative-humidity') CALL Catch ('info', 'AirRelativeHumidity', & 'kriging anisotropy set to: ', argument = ToString (krige_anisotropy) ) ELSE !kriging-anisotropy missing krige_anisotropy = 0 CALL Catch ('info', 'AirRelativeHumidity', & 'kriging anisotropy set to default (0)') END IF !kriging-variogram-model IF (KeyIsPresent ('kriging-variogram-model', ini, & section = 'relative-humidity') ) THEN krige_varmodel = IniReadInt ('kriging-variogram-model', ini, & section = 'relative-humidity') CALL Catch ('info', 'AirRelativeHumidity',& 'kriging variogram model set to: ', argument = ToString (krige_varmodel) ) IF (krige_varmodel == 0 ) krige_varmodel = 5 !automatic fitting ELSE !kriging-variogram-model krige_varmodel = 2 CALL Catch ('info', 'AirRelativeHumidity', & 'kriging variogram model set to default (2 exponential)') END IF !kriging-lags IF (KeyIsPresent ('kriging-lags', ini, & section = 'relative-humidity') ) THEN krige_lags = IniReadInt ('kriging-lags', ini, & section = 'relative-humidity') IF (krige_lags == 0) krige_lags = 15 CALL Catch ('info', 'AirRelativeHumidity', & 'kriging lags set to: ', argument = ToString (krige_lags) ) ELSE !kriging-variogram-model krige_lags = 15 CALL Catch ('info', 'AirRelativeHumidity', & 'kriging lags set to default (15)') END IF !kriging-maxlag IF (KeyIsPresent ('kriging-maxlag', ini, & section = 'relative-humidity') ) THEN krige_maxlag = IniReadInt ('kriging-maxlag', ini, & section = 'relative-humidity') CALL Catch ('info', 'AirRelativeHumidity', & 'kriging max lag set to: ', argument = ToString (krige_maxlag) ) ELSE !kriging-maxlag missing krige_maxlag = 0 CALL Catch ('error', 'AirRelativeHumidity', & 'kriging max lag set to default (0)') END IF END SELECT RETURN END SUBROUTINE SetSpecificProperties