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

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

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

revision 1.12 by dimitri, Mon Feb 21 05:32:55 2005 UTC revision 1.13 by heimbach, Thu Mar 2 02:53:23 2006 UTC
# Line 3  Line 3 
3        subroutine exf_set_gen(        subroutine exf_set_gen(
4       &     genfile, genstartdate, genperiod,       &     genfile, genstartdate, genperiod,
5       &     genstartdate1, genstartdate2,       &     genstartdate1, genstartdate2,
6       &     exf_inscal_gen,       &     exf_inscal_gen, genremove_intercept, genremove_slope,
7       &     genfld, gen0, gen1, genmask,       &     genfld, gen0, gen1, genmask,
8  #ifdef USE_EXF_INTERPOLATION  #ifdef USE_EXF_INTERPOLATION
9       &     gen_lon0, gen_lon_inc, gen_lat0, gen_lat_inc,       &     gen_lon0, gen_lon_inc, gen_lat0, gen_lat_inc,
10       &     gen_nlon, gen_nlat, gen_xout, gen_yout, interp_method,       &     gen_nlon, gen_nlat, gen_xout, gen_yout, interp_method,
11  #endif  #endif
12       &     mycurrenttime, mycurrentiter, mythid )       &     mytime, myiter, mythid )
13    
14  c     ==================================================================  c     ==================================================================
15  c     SUBROUTINE exf_set_gen  c     SUBROUTINE exf_set_gen
# Line 35  c     == global variables == Line 35  c     == global variables ==
35    
36  #include "EEPARAMS.h"  #include "EEPARAMS.h"
37  #include "SIZE.h"  #include "SIZE.h"
38    #include "PARAMS.h"
39  #include "GRID.h"  #include "GRID.h"
40    
41  #include "exf_param.h"  #include "exf_param.h"
# Line 43  c     == global variables == Line 44  c     == global variables ==
44  c     == routine arguments ==  c     == routine arguments ==
45    
46        integer genstartdate1, genstartdate2        integer genstartdate1, genstartdate2
47        _RL     genstartdate, genperiod        _RL genstartdate, genperiod
48        _RL     exf_inscal_gen        _RL exf_inscal_gen
49        _RL     genfld(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)        _RL genremove_intercept, genremove_slope
50        _RL     gen0  (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)        _RL genfld(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
51        _RL     gen1  (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)        _RL gen0  (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
52          _RL gen1  (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
53        character*1 genmask        character*1 genmask
54        character*(128) genfile, genfile0, genfile1        character*(128) genfile, genfile0, genfile1
55        _RL     mycurrenttime        _RL     mytime
56        integer mycurrentiter        integer myiter
57        integer mythid        integer mythid
58  #ifdef USE_EXF_INTERPOLATION  #ifdef USE_EXF_INTERPOLATION
59  c     gen_lon_0 ,gen_lat_0 :: longitude and latitude of SouthWest  c     gen_lon_0 ,gen_lat_0 :: longitude and latitude of SouthWest
# Line 97  c     get record numbers and interpolati Line 99  c     get record numbers and interpolati
99       I        , useExfYearlyFields       I        , useExfYearlyFields
100       O        , fac, first, changed       O        , fac, first, changed
101       O        , count0, count1, year0, year1       O        , count0, count1, year0, year1
102       I        , mycurrenttime, mycurrentiter, mythid       I        , mytime, myiter, mythid
103       &        )       &        )
104    
105           if ( first ) then           if ( first ) then
# Line 182  C     Complete filename with YR or _YEAR Line 184  C     Complete filename with YR or _YEAR
184    
185  c     Loop over tiles.  c     Loop over tiles.
186           do bj = mybylo(mythid),mybyhi(mythid)           do bj = mybylo(mythid),mybyhi(mythid)
187              do bi = mybxlo(mythid),mybxhi(mythid)            do bi = mybxlo(mythid),mybxhi(mythid)
188                 do j = 1,sny             do j = 1,sny
189                    do i = 1,snx              do i = 1,snx
190    c     Interpolate linearly onto the  time.
191  c     Interpolate linearly onto the current time.               genfld(i,j,bi,bj) = exf_inscal_gen * (
192         &                          fac * gen0(i,j,bi,bj) +
193                       genfld(i,j,bi,bj) = exf_inscal_gen * (       &              (exf_one - fac) * gen1(i,j,bi,bj) )
194       &                                fac * gen0(i,j,bi,bj) +               genfld(i,j,bi,bj) =
195       &                    (exf_one - fac) * gen1(i,j,bi,bj) )       &            genfld(i,j,bi,bj) -
196         &            exf_inscal_gen * ( genremove_intercept +
197         &            genremove_slope*(mytime-starttime) )
198                    enddo                    enddo
199                 enddo                 enddo
200              enddo              enddo

Legend:
Removed from v.1.12  
changed lines
  Added in v.1.13

  ViewVC Help
Powered by ViewVC 1.1.22