/[MITgcm]/MITgcm/pkg/fizhi/AtoC.F
ViewVC logotype

Contents of /MITgcm/pkg/fizhi/AtoC.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.2 - (show annotations) (download)
Mon Feb 23 20:34:38 2004 UTC (20 years, 3 months ago) by molod
Branch: MAIN
CVS Tags: checkpoint52l_pre, checkpoint52l_post, checkpoint52m_post, hrcube5
Changes since 1.1: +2 -4 lines
check in of working fizhi routines

1 subroutine AtoC(myThid,fieldin1,fieldin2,mask,im1,im2,jm1,jm2,
2 . numlevs,Nsx,Nsy,idim1,idim2,jdim1,jdim2,fieldout1,fieldout2)
3 c----------------------------------------------------------------------
4 c Subroutine AtoC - Routine to map a velocity component quantity
5 c from the A-Grid to the C-Grid.
6 c This includes doing an exchange to fill the halo region, and
7 c then a linear average with the appropriate topography mask.
8 c Also: Set up "bi, bj loop" here.
9 c
10 c Input: myThid
11 c fieldin1 Field on a-grid to move to a-grid (1st component)
12 c fieldin2 Field on a-grid to move to a-grid (2nd component)
13 c mask Topography [0,1] mask - 1 to indicate above ground
14 c im1,im2,jm1,jm2 Indeces in x and y for computations
15 c numlevs Number of vertical levels
16 c Nsx, Nsy
17 c idim1,idim2,jdim1,jdim2 Span of fields in x and y
18 c
19 c Output: fieldout1 Field mapped to C-Grid (1st component)
20 c fieldout2 Field mapped to C-Grid (2nd component)
21 c
22 c Call: exch_uv_agrid_xyz_RL - exchange on a-grid
23 c-----------------------------------------------------------------------
24 implicit none
25 #include "CPP_OPTIONS.h"
26 #include "EEPARAMS.h"
27
28 integer myThid, numlevs
29 integer Nsx, Nsy
30 integer im1, im2, jm1, jm2, idim1, idim2, jdim1, jdim2
31 _RS mask(im1:im2,jm1:jm2,numlevs,Nsx,Nsy)
32 _RL fieldin1(im1:im2,jm1:jm2,numlevs,Nsx,Nsy)
33 _RL fieldin2(im1:im2,jm1:jm2,numlevs,Nsx,Nsy)
34 _RL fieldout1(im1:im2,jm1:jm2,numlevs,Nsx,Nsy)
35 _RL fieldout2(im1:im2,jm1:jm2,numlevs,Nsx,Nsy)
36
37 integer i, j, L, bi, bj
38
39 c Call the exchange routine to fill in the halo regions
40 call exch_uv_agrid_xyz_RL (fieldin1,fieldin2,myThid)
41
42 c Now take average
43 do bj = myByLo(myThid), myByHi(myThid)
44 do bi = myBxLo(myThid), myBxHi(myThid)
45
46 do L = 1,numlevs
47 do j = jdim1,jdim2
48 do i = idim1,idim2
49 if( (mask(i-1,j,L,bi,bj).ne.0.) .or.
50 . (mask(i,j,L,bi,bj).ne.0.) ) then
51 fieldout1(i,j,L,bi,bj) =
52 . ( fieldin1(i-1,j,L,bi,bj)*mask(i-1,j,L,bi,bj) +
53 . fieldin1(i,j,L,bi,bj)*mask(i,j,L,bi,bj) ) /
54 . ( mask(i-1,j,L,bi,bj) + mask(i,j,L,bi,bj) )
55 else
56 fieldout1(i,j,L,bi,bj) = 0.
57 endif
58 if( (mask(i,j-1,L,bi,bj).ne.0.) .or.
59 . (mask(i,j,L,bi,bj).ne.0.) ) then
60 fieldout2(i,j,L,bi,bj) =
61 . ( fieldin2(i,j-1,L,bi,bj)*mask(i,j-1,L,bi,bj) +
62 . fieldin2(i,j,L,bi,bj)*mask(i,j,L,bi,bj) ) /
63 . ( mask(i,j,L,bi,bj) + mask(i,j-1,L,bi,bj) )
64 else
65 fieldout2(i,j,L,bi,bj) = 0.
66 endif
67 enddo
68 enddo
69 enddo
70
71 enddo
72 enddo
73
74 return
75 end

  ViewVC Help
Powered by ViewVC 1.1.22