C $Header: /u/gcmpack/MITgcm/pkg/ecco/ecco_phys.F,v 1.1 2013/03/26 22:09:52 gforget Exp $
C $Name: $
#include "ECCO_OPTIONS.h"
subroutine ECCO_PHYS( mythid )
c ==================================================================
c SUBROUTINE ecco_phys
c ==================================================================
c
c ==================================================================
c SUBROUTINE ecco_phys
c ==================================================================
implicit none
c == global variables ==
#include "EEPARAMS.h"
#include "SIZE.h"
#include "PARAMS.h"
#include "DYNVARS.h"
#include "FFIELDS.h"
#include "GRID.h"
#include "CG2D.h"
#include "optim.h"
#include "ecco_cost.h"
#ifdef ALLOW_CTRL
#include "CTRL_SIZE.h"
#include "ctrl.h"
#include "ctrl_dummy.h"
#endif
c == routine arguments ==
integer mythid
c == local variables ==
integer bi,bj
integer i,j,k
integer jmin,jmax
integer imin,imax
#ifdef ALLOW_PSBAR_STERIC
_RL RHOInSituLoc(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
_RL VOLsumTile(nSx,nSy),RHOsumTile(nSx,nSy)
#endif
#ifdef ALLOW_PSBAR_STERIC
c need to include halos for find_rho_2d
iMin = 1-OLx
iMax = sNx+OLx
jMin = 1-OLy
jMax = sNy+OLy
DO bj=myByLo(myThid),myByHi(myThid)
DO bi=myBxLo(myThid),myBxHi(myThid)
do k = 1,nr
CALL FIND_RHO_2D(
I iMin, iMax, jMin, jMax, k,
I theta(1-OLx,1-OLy,k,bi,bj),
I salt (1-OLx,1-OLy,k,bi,bj),
O RHOInSituLoc(1-OLx,1-OLy,k,bi,bj),
I k, bi, bj, myThid )
enddo
enddo
enddo
DO bj=myByLo(myThid),myByHi(myThid)
DO bi=myBxLo(myThid),myBxHi(myThid)
RHOsumTile(bi,bj)=0. _d 0
VOLsumTile(bi,bj)=0. _d 0
VOLsumGlob=0. _d 0
RHOsumGlob=0. _d 0
do k = 1,nr
do j = 1,sNy
do i = 1,sNx
RHOsumTile(bi,bj)=RHOsumTile(bi,bj)+
& (rhoConst+RHOInSituLoc(i,j,k,bi,bj))*
& hFacC(i,j,k,bi,bj)*drF(k)*rA(i,j,bi,bj)
VOLsumTile(bi,bj)=VOLsumTile(bi,bj)+
& hFacC(i,j,k,bi,bj)*drF(k)*rA(i,j,bi,bj)
enddo
enddo
enddo
enddo
enddo
CALL GLOBAL_SUM_TILE_RL( VOLsumTile, VOLsumGlob, myThid )
CALL GLOBAL_SUM_TILE_RL( RHOsumTile, RHOsumGlob, myThid )
RHOsumGlob=RHOsumGlob/VOLsumGlob
#endif
return
end