!-------------------------------------- LICENCE BEGIN ------------------------------------
!Environment Canada - Atmospheric Science and Technology License/Disclaimer,
!                     version 3; Last Modified: May 7, 2008.
!This is free but copyrighted software; you can use/redistribute/modify it under the terms
!of the Environment Canada - Atmospheric Science and Technology License/Disclaimer
!version 3 or (at your option) any later version that should be found at:
!http://collaboration.cmc.ec.gc.ca/science/rpn.comm/license.html
!
!This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
!without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
!See the above mentioned License/Disclaimer for more details.
!You should have received a copy of the License/Disclaimer along with this software;
!if not, you can write to: EC-RPN COMM Group, 2121 TransCanada, suite 500, Dorval (Quebec),
!CANADA, H9P 1J3; or send e-mail to service.rpn@ec.gc.ca
!-------------------------------------- LICENCE END --------------------------------------
!

subroutine oda_H 5,9
  implicit none
  !
  !Purpose:
  !Compute simulated observations from profiled model
  !increments.
  !It returns Hdx in ROBDATA8(NCMOMA,*)
  !Calls the several linear observation operators
  !
  !Author  : S. Pellerin *ARMA/MRB January 2009
  !
  !Revision:
  ! L. Fillion, ARMA/EC, 5 Jun 2009. Introduce 1 Obs experiment.
  ! S. Macpherson ARMA  11 Sep 2009
  !            - added ground-based GPS (ZTD) observation operator
  !
  !Local declarations
  integer, save :: nl_ncall = 0
  real*8 :: dl_bidon
#include "comdim.cdk"
#include "comcva.cdk"
  nl_ncall = nl_ncall + 1
  if(l1obs) then
    call oda_H1obs
  else
    call tmg_start(56,'PPROF') !
    call oda_Hpp              ! fill in NCMOMA : Hdx
    call tmg_stop(56)

    call tmg_start(59,'SFC')
    call oda_Hsf              ! fill in NCMOMA : Hdx
    call tmg_stop (59)

    call tmg_start(60,'RTTOV') !
    call oda_Hto              ! fill in NCMOMA : Hdx
    call tmg_stop (60)

    call tmg_start(62,'GOESRAD') !
    if (nl_ncall .eq. 1) CALL ROBSGOES(DL_BIDON)
    call oda_Hgo
    call tmg_stop (62)        !

    call tmg_start(90,'GPSRO') !
    call oda_Hro
    call tmg_stop (90)        !

    call tmg_start(63,'ZPROF') !
    call oda_Hzp
    call tmg_stop (63)        !

    call tmg_start(64,'GPSZTD') !
    call oda_Hgp
    call tmg_stop (64)        !
  endif
end subroutine oda_H