! Replaces comgeom.h

! AB 07/24: NOTE: THIS USES A LEGACY COMMON BLOCK SHARED WITH comgeom2_mod_h.f90 !
! This file defines a number of 1D arrays.
! The COMMON block is used to transparently (but using unsafe procedures) cast those as 2D arrays, without duplication.
! Therefore there's no trivial way to turn this into a module without COMMON.
! In the future we'd still like to get rid of this COMMON block.

MODULE comgeom_mod_h
  USE dimensions_mod, ONLY: iim, jjm, llm, ndm
  USE paramet_mod_h
  IMPLICIT NONE; PRIVATE
  PUBLIC cu, cv, unscu2, unscv2, aire, airesurg, aireu, airev, unsaire, apoln, &
          apols, unsairez, airuscv2, airvscu2, aireij1, aireij2, aireij3, aireij4, &
          alpha1, alpha2, alpha3, alpha4, alpha1p2, alpha1p4, alpha2p3, alpha3p4, &
          fext, constang, rlatu, rlatv, rlonu, rlonv, cuvscvgam1, cuvscvgam2, &
          cvuscugam1, cvuscugam2, cvscuvgam, cuscvugam, unsapolnga1, unsapolnga2&
          , unsapolsga1, unsapolsga2, unsair_gam1, unsair_gam2, unsairz_gam, &
          aivscu2gam, aiuscv2gam, cuvsurcv, cvsurcuv, cvusurcu, cusurcvu, xprimu&
          , xprimv

  COMMON/comgeom/                                                   &
          cu(ip1jmp1), cv(ip1jm), unscu2(ip1jmp1), unscv2(ip1jm), &
          aire(ip1jmp1), airesurg(ip1jmp1), aireu(ip1jmp1), &
          airev(ip1jm), unsaire(ip1jmp1), apoln, apols, &
          unsairez(ip1jm), airuscv2(ip1jm), airvscu2(ip1jm), &
          aireij1(ip1jmp1), aireij2(ip1jmp1), aireij3(ip1jmp1), &
          aireij4(ip1jmp1), alpha1(ip1jmp1), alpha2(ip1jmp1), &
          alpha3(ip1jmp1), alpha4(ip1jmp1), alpha1p2(ip1jmp1), &
          alpha1p4(ip1jmp1), alpha2p3(ip1jmp1), alpha3p4(ip1jmp1), &
          fext(ip1jm), constang(ip1jmp1), rlatu(jjp1), rlatv(jjm), &
          rlonu(iip1), rlonv(iip1), cuvsurcv(ip1jm), cvsurcuv(ip1jm), &
          cvusurcu(ip1jmp1), cusurcvu(ip1jmp1), cuvscvgam1(ip1jm), &
          cuvscvgam2(ip1jm), cvuscugam1(ip1jmp1), &
          cvuscugam2(ip1jmp1), cvscuvgam(ip1jm), cuscvugam(ip1jmp1), &
          unsapolnga1, unsapolnga2, unsapolsga1, unsapolsga2, &
          unsair_gam1(ip1jmp1), unsair_gam2(ip1jmp1), unsairz_gam(ip1jm), &
          aivscu2gam(ip1jm), aiuscv2gam(ip1jm), xprimu(iip1), xprimv(iip1)

  REAL                                                            &
          cu, cv, unscu2, unscv2, aire, airesurg, aireu, airev, unsaire, apoln, &
          apols, unsairez, airuscv2, airvscu2, aireij1, aireij2, aireij3, aireij4, &
          alpha1, alpha2, alpha3, alpha4, alpha1p2, alpha1p4, alpha2p3, alpha3p4, &
          fext, constang, rlatu, rlatv, rlonu, rlonv, cuvscvgam1, cuvscvgam2, &
          cvuscugam1, cvuscugam2, cvscuvgam, cuscvugam, unsapolnga1, unsapolnga2&
          , unsapolsga1, unsapolsga2, unsair_gam1, unsair_gam2, unsairz_gam, &
          aivscu2gam, aiuscv2gam, cuvsurcv, cvsurcuv, cvusurcu, cusurcvu, xprimu&
          , xprimv

END MODULE comgeom_mod_h

