/[MITgcm]/MITgcm/pkg/ctrl/ctrl_get_gen.F
ViewVC logotype

Annotation of /MITgcm/pkg/ctrl/ctrl_get_gen.F

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


Revision 1.2 - (hide annotations) (download)
Tue Jun 24 16:07:06 2003 UTC (20 years, 10 months ago) by heimbach
Branch: MAIN
CVS Tags: checkpoint51a_post, checkpoint51c_post, checkpoint51, checkpoint51b_post, checkpoint51b_pre
Changes since 1.1: +150 -0 lines
Merging for c51 vs. e34

1 heimbach 1.2 C $Header: /u/gcmpack/MITgcm/pkg/ctrl/Attic/ctrl_get_gen.F,v 1.1.2.1 2003/06/19 15:18:48 heimbach Exp $
2    
3     #include "CTRL_CPPOPTIONS.h"
4    
5    
6     subroutine ctrl_get_gen(
7     I xx_gen_file, xx_genstartdate, xx_genperiod,
8     I genmask, genfld, xx_gen0, xx_gen1, xx_gen_dummy,
9     I mytime, myiter, mythid
10     & )
11    
12     c ==================================================================
13     c SUBROUTINE ctrl_get_gen
14     c ==================================================================
15     c
16     c o new generic routine for reading time dependent control variables
17     c heimbach@mit.edu 12-Jun-2003
18     c
19     c ==================================================================
20     c SUBROUTINE ctrl_get_gen
21     c ==================================================================
22    
23     implicit none
24    
25     c == global variables ==
26    
27     #include "EEPARAMS.h"
28     #include "SIZE.h"
29     #include "PARAMS.h"
30     #include "GRID.h"
31    
32     #include "ctrl.h"
33     #include "ctrl_dummy.h"
34     #include "optim.h"
35     #ifdef INCLUDE_EXTERNAL_FORCING_PACKAGE
36     # include "exf_fields.h"
37     #endif
38    
39     c == routine arguments ==
40    
41     character*(MAX_LEN_FNAM) xx_gen_file
42     integer xx_genstartdate(4)
43     _RL xx_genperiod
44     _RL genmask(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy)
45     _RL genfld(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
46     _RL xx_gen0(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
47     _RL xx_gen1(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy)
48     _RL xx_gen_dummy
49    
50     _RL mytime
51     integer myiter
52     integer mythid
53    
54     c == local variables ==
55    
56     #ifdef INCLUDE_EXTERNAL_FORCING_PACKAGE
57    
58     integer bi,bj
59     integer i,j,k
60     integer itlo,ithi
61     integer jtlo,jthi
62     integer jmin,jmax
63     integer imin,imax
64     integer ilgen
65    
66     _RL genfac
67     logical genfirst
68     logical genchanged
69     integer gencount0
70     integer gencount1
71    
72     logical doglobalread
73     logical ladinit
74    
75     character*(80) fnamegen
76    
77     c == external functions ==
78    
79     integer ilnblnk
80     external ilnblnk
81    
82    
83     c == end of interface ==
84    
85     jtlo = mybylo(mythid)
86     jthi = mybyhi(mythid)
87     itlo = mybxlo(mythid)
88     ithi = mybxhi(mythid)
89     jmin = 1-oly
90     jmax = sny+oly
91     imin = 1-olx
92     imax = snx+olx
93    
94     c-- Now, read the control vector.
95     doglobalread = .false.
96     ladinit = .false.
97    
98     if (optimcycle .ge. 0) then
99     ilgen=ilnblnk( xx_gen_file )
100     write(fnamegen(1:80),'(2a,i10.10)')
101     & xx_gen_file(1:ilgen), '.', optimcycle
102     endif
103    
104     c-- Get the counters, flags, and the interpolation factor.
105     call ctrl_get_gen_rec(
106     I xx_genstartdate, xx_genperiod,
107     O genfac, genfirst, genchanged,
108     O gencount0,gencount1,
109     I mytime, myiter, mythid )
110    
111     if ( genfirst ) then
112     call active_read_xy( fnamegen, xx_gen1, gencount0,
113     & doglobalread, ladinit, optimcycle,
114     & mythid, xx_gen_dummy )
115     #ifdef ALLOW_CTRL_SMOOTH
116     call ctrl_smooth(xx_gen1,genmask)
117     #endif
118     endif
119    
120     if (( genfirst ) .or. ( genchanged )) then
121     call exf_SwapFFields( xx_gen0, xx_gen1, mythid )
122    
123     call active_read_xy( fnamegen, xx_gen1 , gencount1,
124     & doglobalread, ladinit, optimcycle,
125     & mythid, xx_gen_dummy )
126     #ifdef ALLOW_CTRL_SMOOTH
127     call ctrl_smooth(xx_gen1,genmask)
128     #endif
129     endif
130    
131     c-- Add control to model variable.
132     do bj = jtlo,jthi
133     do bi = itlo,ithi
134     c-- Calculate mask for tracer cells (0 => land, 1 => water).
135     k = 1
136     do j = 1,sny
137     do i = 1,snx
138     genfld(i,j,bi,bj) = genfld (i,j,bi,bj)
139     & + genfac *xx_gen0(i,j,bi,bj)
140     & + (1. _d 0 - genfac)*xx_gen1(i,j,bi,bj)
141     genfld(i,j,bi,bj) = genfld(i,j,bi,bj)*genmask(i,j,k,bi,bj)
142     enddo
143     enddo
144     enddo
145     enddo
146    
147     #endif /* INCLUDE_EXTERNAL_FORCING_PACKAGE */
148    
149     end
150    

  ViewVC Help
Powered by ViewVC 1.1.22