!-------------------------------------- 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 subg_glb(CDCTL,KULOUT) 1,4
#if defined (DOC)
*
***s/r subg_glb  - Initializes the Global analysis Background term.
*
*Author  : Luc Fillion - ARMA/EC - 6 Aug 2010 (from v_11_01B sucov.ftn. Refer to it for historic of upgrades).
*
*Revision:
*    -------------------
*    Purpose: to initialize the inverse forecast error correlation
*     .        and the forecast error standard deviation
*
*Arguments
*     CDCTL   : 'I' --> identity is used for the correlation in  spectral space
*     .         'H' --> homegeneous and isotropic error   correlation
*               '0' --> return no statistics needed
#endif
      USE procs_topo
      IMPLICIT NONE
*implicits
#include "comct0.cdk"
#include "pardim.cdk"
#include "comdim.cdk"
#include "comlun.cdk"
#include "comcva.cdk"
#include "comspg.cdk"
#include "comcorr.cdk"
#include "compstat.cdk"
*
      CHARACTER*1 CDCTL
      INTEGER JLEV, JLA, JK, JGL, KULOUT,ji,jj
      REAL*8 ZVORSC, ZDIVSC, ZGZSC, ZPSSC, ZTGSC, ZQSC, zozsc
      REAL*8 ZSIGU, ZSIGV, ZSIGQ, ZSIGPS, ZSIGTG, ZCON, ZGZMIN
      REAL*8 DLFACT
      INTEGER :: ierr,gensize 
      EXTERNAL INITRND
!
!!
      IF(CDCTL .EQ. '0') THEN
         WRITE(NULOUT,9000)CDCTL
         RETURN
      ENDIF
 9000 FORMAT(//,3(" *****************"),/
     S     ," subg_glb: CDCTL=",A1,"       NO EXECUTION",/
     S     ,3(" *****************"))
     !
      write(nulout,*) 'subg_glb: Initializes the Global analysis Background term'
!
!
!*1.  Prepare background error statistics 
!     -----------------------------------
!
      call sustatsglb
!
!*2.  INITIALIZE THE PROJECTION THAT DIAGONALIZES CORNS
!     -------------------------------------------------
!
      if(nanalvar.eq.3) then
        if(.not.lcornsmin) call sucorns_3
      else if(nanalvar.eq.4) THEN
        IF(myid == 0) THEN
           call sucorns2
        ENDIF 
        gensize=NKSDIM2*NKSDIM2*(NTRUNC+1)*NLATBIN
        CALL rpn_comm_bcast(corns,gensize,"mpi_double_precision",0,"GRID",ierr)

        gensize=(NJEND -NJBEG +1)
        CALL rpn_comm_bcast(rgsigpsb,gensize,"mpi_double_precision",0,"GRID",ierr)

        gensize= NFLEV*(NJEND -NJBEG +1)
        CALL rpn_comm_bcast(rgsigtb,gensize,"mpi_double_precision",0,"GRID",ierr)
      endif
!
      return
      end