C $Header: /u/gcmpack/MITgcm/verification/OpenAD/code_ad_singlelayer/cost_test.F,v 1.2 2007/08/14 21:02:18 heimbach Exp $
#include "CPP_OPTIONS.h"
subroutine COST_TEST( myThid )
C /==========================================================\
C | subroutine cost_test |
C | o this routine computes the cost function for the tiles |
C | of this processor |
C |==========================================================|
C | |
C | Notes |
C | ===== |
C \==========================================================/
IMPLICIT NONE
C == Global variables ===
#include "SIZE.h"
#include "EEPARAMS.h"
#include "PARAMS.h"
#include "DYNVARS.h"
#include "GRID.h"
#include "cost.h"
C == Routine arguments ==
C myThid - Thread number for this instance of the routine.
integer bi, bj
integer myThid
#ifdef ALLOW_COST_TEST
C == Local variables
_RL thetaRef
integer i, j, k
integer ig, jg
integer itlo,ithi
integer jtlo,jthi
jtlo = mybylo(mythid)
jthi = mybyhi(mythid)
itlo = mybxlo(mythid)
ithi = mybxhi(mythid)
if ( useCubedSphereExchange) then
iLocOut = 7
jLocOut = 28
kLocOut = 1
else
iLocOut = 80
jLocOut = 30
kLocOut = 1
endif
ce some reference temperature
thetaRef = 20.0D0
C-- Calculate mask for tracer cells (0 => land, 1 => water)
k=1
C-- Calculate cost function on tile of this instance
do bj = jtlo,jthi
do bi = itlo,ithi
do j=1,sNy
jg = myYGlobalLo-1+(bj-1)*sNy+j
do i=1,sNx
ig = myXGlobalLo-1+(bi-1)*sNx+i
c
objf_test(bi,bj) = objf_test(bi,bj) + maskW(i,j,k,bi,bj)
& *( uVel(i,j,k,bi,bj) )
& *( uVel(i,j,k,bi,bj) )
cph(
print *, 'ph-cost: objf_test ', ig, jg,
& objf_test(bi,bj)
cph)
c
end
do
end
do
end
do
end
do
#endif
END