/[MITgcm]/MITgcm/pkg/exf/exf_interp.F
ViewVC logotype

Diff of /MITgcm/pkg/exf/exf_interp.F

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

revision 1.9 by heimbach, Sat Apr 30 16:20:40 2005 UTC revision 1.14 by jmc, Sat Jan 14 20:47:43 2006 UTC
# Line 36  CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC Line 36  CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
36       I   infile,       I   infile,
37       I   filePrec,       I   filePrec,
38       O   arrayout,       O   arrayout,
39       I   irecord, xG, yG,       I   irecord, xG_in, yG,
40       I   lon_0, lon_inc,       I   lon_0, lon_inc,
41       I   lat_0, lat_inc,       I   lat_0, lat_inc,
42       I   nx_in, ny_in, method, mythid)       I   nx_in, ny_in, method, mythid)
# Line 58  C Line 58  C
58    
59  #include "SIZE.h"  #include "SIZE.h"
60  #include "EEPARAMS.h"  #include "EEPARAMS.h"
 #ifdef ALLOW_USE_MPI  
 # include "EESUPPORT.h"  
 #endif /* ALLOW_USE_MPI */  
61  #include "PARAMS.h"  #include "PARAMS.h"
62    
63  C subroutine variables  C subroutine variables
64        character*(*) infile        character*(*) infile
65        integer       filePrec, irecord, nx_in, ny_in        integer       filePrec, irecord, nx_in, ny_in
66        _RL           arrayout(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)        _RL           arrayout(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
67        _RS           xG      (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)        _RS           xG_in      (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
68        _RS           yG      (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)        _RS           yG      (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
69        _RL           lon_0, lon_inc        _RL           lon_0, lon_inc
70        _RL           lat_0, lat_inc(ny_in-1)        _RL           lat_0, lat_inc(ny_in-1)
71        integer       method, mythid        integer       method, mythid
72    
73  C local variables  C local variables
74        real*8   ne_fac,nw_fac,se_fac,sw_fac  c     real*8   ne_fac,nw_fac,se_fac,sw_fac
75        integer  e_ind(snx,sny),w_ind(snx,sny)        integer  e_ind(snx,sny),w_ind(snx,sny)
76        integer  n_ind(snx,sny),s_ind(snx,sny)        integer  n_ind(snx,sny),s_ind(snx,sny)
77        real*8   px_ind(4), py_ind(4), ew_val(4)        real*8   px_ind(4), py_ind(4), ew_val(4)
# Line 83  C local variables Line 80  C local variables
80        real*4   arrayin(-1:nx_in+2 ,      -1:ny_in+2)        real*4   arrayin(-1:nx_in+2 ,      -1:ny_in+2)
81        real*8   x_in   (-1:nx_in+2), y_in(-1:ny_in+2)        real*8   x_in   (-1:nx_in+2), y_in(-1:ny_in+2)
82        integer  i, j, k, l, js, bi, bj, sp, interp_unit        integer  i, j, k, l, js, bi, bj, sp, interp_unit
83          _RS      xG(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
84          _RS      threeSixtyRS
85          PARAMETER ( threeSixtyRS = 360. )
86    
87    C     put xG in interval [ lon_0 , lon_0+360 [
88          do bj=myByLo(myThid),myByHi(myThid)
89           do bi=myBxLo(myThid),myBxHi(myThid)
90            do j=1-OLy,sNy+OLy
91             do i=1-OLx,sNx+OLx
92              xG(i,j,bi,bj) = xG_in(i,j,bi,bj)-lon_0
93         &                  + threeSixtyRS*2.
94              xG(i,j,bi,bj) = lon_0+mod(xG(i,j,bi,bj),threeSixtyRS)
95             enddo
96            enddo
97           enddo
98          enddo
99    
100         call exf_interp_read(         call exf_interp_read(
101       I   infile,       I   infile,
# Line 92  C local variables Line 105  C local variables
105       I   lon_0, lon_inc,       I   lon_0, lon_inc,
106       I   lat_0, lat_inc,       I   lat_0, lat_inc,
107       I   nx_in, ny_in, method, mythid)       I   nx_in, ny_in, method, mythid)
108          _BARRIER
109    
110        _BEGIN_MASTER( myThid )  C     _BEGIN_MASTER( myThid )
111    
112  C setup input grid  C setup input grid
113         do i=-1,nx_in+2         do i=-1,nx_in+2
114          x_in(i) = lon_0 + (i-1.)*lon_inc          x_in(i) = lon_0 + (i-1)*lon_inc
115         enddo         enddo
116    
117         y_in(0) = lat_0 - lat_inc(1)         y_in(0) = lat_0 - lat_inc(1)
118         y_in(-1)= lat_0 - 2.*lat_inc(1)         y_in(-1)= lat_0 - 2.*lat_inc(1)
119         y_in(1) = lat_0         y_in(1) = lat_0
# Line 122  C enlarge boundary Line 137  C enlarge boundary
137          arrayin(i,ny_in+2) = arrayin(i,ny_in)          arrayin(i,ny_in+2) = arrayin(i,ny_in)
138         enddo         enddo
139    
140        _END_MASTER( myThid )  C     _END_MASTER( myThid )
141    
142        do bj = mybylo(mythid), mybyhi(mythid)        do bj = mybylo(mythid), mybyhi(mythid)
143         do bi = mybxlo(mythid), mybxhi(mythid)         do bi = mybxlo(mythid), mybxhi(mythid)

Legend:
Removed from v.1.9  
changed lines
  Added in v.1.14

  ViewVC Help
Powered by ViewVC 1.1.22