C $Header: /home/ubuntu/mnt/e9_copy/MITgcm_contrib/ocean_inversion_project/code/ptracers_read_mask.F,v 1.3 2003/10/10 16:30:39 dimitri Exp $ C $Name: $ #include "PTRACERS_OPTIONS.h" CBOP C !ROUTINE: PTRACERS_READ_MASK C !INTERFACE: ========================================================== SUBROUTINE PTRACERS_READ_MASK( myThid ) C !DESCRIPTION: C Initialize pTracerMasks, an array that contains a description C of 30 ocean regions used for Gruber's ocean inversion project. C !USES: =============================================================== IMPLICIT NONE #include "SIZE.h" #include "EEPARAMS.h" #include "PARAMS.h" #include "GRID.h" #include "PTRACERS.h" C !INPUT PARAMETERS: =================================================== C myThid :: thread number INTEGER myThid C !OUTPUT PARAMETERS: ================================================== C none #ifdef ALLOW_PTRACERS C !LOCAL VARIABLES: ==================================================== character*(80) infile INTEGER i, j, bi, bj, icount INTEGER iTracer, filePrec, interp_method INTEGER ndyetrac , imt , jmt PARAMETER (ndyetrac=30, imt= 96, jmt=40) REAL*4 lon(imt), lat(jmt) _RL arrayout(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nsx,nsy) _RL lon0 , lon_inc , lat0 PARAMETER (lon0=1.875, lon_inc=3.75, lat0=-87.275) _RL lat_inc(jmt-1) DATA lat_inc / & 4.9720,4.4770,4.4590,4.4520,4.4490,4.4490,4.4470,4.4460, & 4.4470,4.4460,4.4450,4.4460,4.4460,4.4450,4.4450,4.4460, & 4.4450,4.4452,4.4452,4.4452,4.4452,4.4452,4.4450,4.4460, & 4.4450,4.4450,4.4460,4.4460,4.4450,4.4460,4.4470,4.4460, & 4.4470,4.4490,4.4490,4.4520,4.4590,4.4770,4.9720 / INTEGER pTracerMasksSum(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) CEOP C==== Use exf_interp to read-in mask infile = '30reg_regionmask.bin' filePrec = 32 interp_method = 1 do bj = mybylo(mythid), mybyhi(mythid) do bi = mybxlo(mythid), mybxhi(mythid) do j=1-OLy,sny+OLy do i=1-OLx,snx+OLx pTracerMasksSum(i,j,bi,bj) = 0 enddo enddo enddo enddo do iTracer=1,ndyetrac call exf_interp( infile, filePrec & , arrayout, iTracer, xC, yC & , lon0, lon_inc, lat0, lat_inc & , imt, jmt, interp_method, mythid & ) _EXCH_XY_R4( arrayout, myThid ) do bj = mybylo(mythid), mybyhi(mythid) do bi = mybxlo(mythid), mybxhi(mythid) do j=1-OLy,sny+OLy do i=1-OLx,snx+OLx if (arrayout(i,j,bi,bj) .gt. 0.5 .and. & pTracerMasksSum(i,j,bi,bj) .eq. 0) then pTracerMasks(i,j,iTracer,bi,bj) = maskC(i,j,1,bi,bj) pTracerMasksSum(i,j,bi,bj) = maskC(i,j,1,bi,bj) else pTracerMasks(i,j,iTracer,bi,bj) = 0 endif cdb write(10,*),iTracer,i,j,pTracerMasks(i,j,iTracer,bi,bj) enddo enddo enddo enddo enddo #endif /* ALLOW_PTRACERS */ RETURN END