SetGaussBoagaparametersSystem Subroutine

private subroutine SetGaussBoagaparametersSystem(system, fuse, override)

Set parameters for Gauss Boaga reference system

Arguments

Type IntentOptional Attributes Name
type(CRS), intent(inout) :: system
integer(kind=short), intent(in) :: fuse
integer(kind=short), intent(in), optional :: override

Source Code

SUBROUTINE SetGaussBoagaparametersSystem &
!
(system, fuse, override)

IMPLICIT NONE

!Arguments with intent (in):
INTEGER (KIND = short), INTENT (IN) :: fuse
INTEGER (KIND = short), OPTIONAL, INTENT (IN) :: override

! Arguments with intent (inout):
TYPE (CRS), INTENT (INOUT) :: system

!------------end of declaration------------------------------------------------

!Esistono due proiezioni distinte: fuso Ovest e fuso Est, 
!che differiscono per la scelta dei meridiani di riferimento. 
!Essi sono posti rispettivamente a 9� e a 15� ad Est di Greenwich. 
!Ciascuna proiezione copre una zona di longitudine ampia 6°, 
!separate dal meridiano posto a 12°.
!Le coordinate si esprimono in metri. 
!Per evitare l'utilizzo di numeri negativi per la longitudine 
!si impone al meridiano centrale del fuso Ovest una coordinata x
!pari a 1500000 (invece di zero), detta anche falso Est. 
!Al meridiano centrale del fuso Est si impone invece un falso 
!Est di 2520000. In questo modo la prima cifra della latitudine 
!indica a quale fuso facciamo riferimento: cifra 1 per il fuso Ovest, 
!cifra 2 per il fuso Est.

!set Gauss Boaga parameters value
system % param (GB_lat0)  = 0.
system % param (GB_fuse)  = fuse

IF ( system % param (GB_fuse) == WEST ) THEN
  system % param (GB_centM) = 9. * degToRad  
  system % param (GB_false_easting) = 1500000.
ELSE
  system % param (GB_centM) = 15. * degToRad  
  system % param (GB_false_easting) = 2520000.
END IF

system % param (GB_false_northing) = 0.

system % param (GB_scale_factor) = 0.9996
IF (PRESENT (override) ) THEN
  system % param (GB_override) = override
ELSE
  !set default to 0 = override off
  system % param (GB_override) = 0. 
END IF

!Set parameters description
system % description (GB_lat0) = 'latitude_of_projection_origin'
system % description (GB_centM) = 'central_meridian' ! 'longitude_of_projection_origin'
system % description (GB_fuse) = 'fuse'
system % description (GB_false_easting) = 'false_easting'
system % description (GB_false_northing) = 'false_northing'
system % description (GB_scale_factor) = 'scale_factor'

END SUBROUTINE SetGaussBoagaparametersSystem