public subroutine CopyNetwork(input, output)
make a copy of one observational network
Arguments
Variables
Type |
Visibility | Attributes |
|
Name |
| Initial | |
integer(kind=short),
|
public |
|
:: |
k |
|
|
|
Source Code
SUBROUTINE CopyNetwork &
!
(input, output)
IMPLICIT NONE
! Arguments with intent (in):
TYPE (ObservationalNetwork), INTENT(IN) :: input
! Arguments with intent(inout):
TYPE (ObservationalNetwork), INTENT(INOUT) :: output
!local declarations:
INTEGER (KIND = short) :: k
!----------------------------end of declarations-------------------------------
output % countObs = input % countObs
output % nodata = input % nodata
output % timeIncrement = input % timeIncrement
output % time = input % time
output % dataType = input % dataType
output % description = input % description
output % unit = input % unit
output % mapping = input % mapping
output % epsg = input % epsg
output % offsetZ = input % offsetZ
!allocate output network observations
IF (ALLOCATED (output % obs) ) THEN
!check space is enough
IF (output % countObs /= input % countObs) THEN
DEALLOCATE (output % obs)
ALLOCATE(output % obs (output % countObs))
END IF
ELSE
ALLOCATE(output % obs (output % countObs))
END IF
!create copy of observations
DO k = 1, output % countObs
output % obs(k) % name = input % obs(k) % name
output % obs(k) % value = input % obs(k) % value
output % obs(k) % id = input % obs(k) % id
output % obs(k) % xyz = input % obs(k) % xyz
! output % obs(k) % col = input % obs(k) % col
! output % obs(k) % row = input % obs(k) % row
output % obs(k) % z = input % obs(k) % z
END DO
RETURN
END SUBROUTINE CopyNetwork