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

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

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


Revision 1.2 - (show annotations) (download)
Tue Jun 24 16:07:06 2003 UTC (20 years, 11 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 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