/[MITgcm]/MITgcm/model/src/external_forcing.F
ViewVC logotype

Contents of /MITgcm/model/src/external_forcing.F

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


Revision 1.8 - (show annotations) (download)
Mon Nov 13 16:32:58 2000 UTC (23 years, 6 months ago) by heimbach
Branch: MAIN
CVS Tags: checkpoint32
Changes since 1.7: +11 -19 lines
Rescaling of forcing fields done immediately after reading fields.

1 C $Header: /u/gcmpack/models/MITgcmUV/model/src/external_forcing.F,v 1.7 2000/09/11 20:45:57 heimbach Exp $
2
3 #include "CPP_OPTIONS.h"
4
5 CStartOfInterface
6 SUBROUTINE EXTERNAL_FORCING_U(
7 I iMin, iMax, jMin, jMax,bi,bj,kLev,
8 I myCurrentTime,myThid)
9 C /==========================================================\
10 C | S/R EXTERNAL_FORCING_U |
11 C | o Contains problem specific forcing for zonal velocity. |
12 C |==========================================================|
13 C | Adds terms to gU for forcing by external sources |
14 C | e.g. wind stress, bottom friction etc.................. |
15 C \==========================================================/
16 IMPLICIT NONE
17
18 C == Global data ==
19 #include "SIZE.h"
20 #include "EEPARAMS.h"
21 #include "PARAMS.h"
22 #include "GRID.h"
23 #include "DYNVARS.h"
24 #include "FFIELDS.h"
25 C == Routine arguments ==
26 C iMin - Working range of tile for applying forcing.
27 C iMax
28 C jMin
29 C jMax
30 C kLev
31 INTEGER iMin, iMax, jMin, jMax, kLev, bi, bj
32 _RL myCurrentTime
33 INTEGER myThid
34 CEndOfInterface
35
36 C == Local variables ==
37 C Loop counters
38 INTEGER I, J
39
40 C-- Forcing term
41 C Add windstress momentum impulse into the top-layer
42 IF ( kLev .EQ. 1 ) THEN
43 DO j=jMin,jMax
44 DO i=iMin,iMax
45 gU(i,j,kLev,bi,bj) = gU(i,j,kLev,bi,bj)
46 & +foFacMom*surfaceTendencyU(i,j,bi,bj)
47 & *_maskW(i,j,kLev,bi,bj)
48 ENDDO
49 ENDDO
50 ENDIF
51
52 RETURN
53 END
54 CStartOfInterface
55 SUBROUTINE EXTERNAL_FORCING_V(
56 I iMin, iMax, jMin, jMax,bi,bj,kLev,
57 I myCurrentTime,myThid)
58 C /==========================================================\
59 C | S/R EXTERNAL_FORCING_V |
60 C | o Contains problem specific forcing for merid velocity. |
61 C |==========================================================|
62 C | Adds terms to gV for forcing by external sources |
63 C | e.g. wind stress, bottom friction etc.................. |
64 C \==========================================================/
65 IMPLICIT NONE
66
67 C == Global data ==
68 #include "SIZE.h"
69 #include "EEPARAMS.h"
70 #include "PARAMS.h"
71 #include "GRID.h"
72 #include "DYNVARS.h"
73 #include "FFIELDS.h"
74
75
76 C == Routine arguments ==
77 C iMin - Working range of tile for applying forcing.
78 C iMax
79 C jMin
80 C jMax
81 C kLev
82 INTEGER iMin, iMax, jMin, jMax, kLev, bi, bj
83 _RL myCurrentTime
84 INTEGER myThid
85 CEndOfInterface
86 C == Local variables ==
87 C Loop counters
88 INTEGER I, J
89
90 C-- Forcing term
91 C Add windstress momentum impulse into the top-layer
92 IF ( kLev .EQ. 1 ) THEN
93 DO j=jMin,jMax
94 DO i=iMin,iMax
95 gV(i,j,kLev,bi,bj) = gV(i,j,kLev,bi,bj)
96 & +foFacMom*surfaceTendencyV(i,j,bi,bj)
97 & *_maskS(i,j,kLev,bi,bj)
98 ENDDO
99 ENDDO
100 ENDIF
101
102 RETURN
103 END
104 CStartOfInterface
105 SUBROUTINE EXTERNAL_FORCING_T(
106 I iMin, iMax, jMin, jMax,bi,bj,kLev,
107 I maskC,
108 I myCurrentTime,myThid)
109 C /==========================================================\
110 C | S/R EXTERNAL_FORCING_T |
111 C | o Contains problem specific forcing for temperature. |
112 C |==========================================================|
113 C | Adds terms to gT for forcing by external sources |
114 C | e.g. heat flux, climatalogical relaxation.............. |
115 C \==========================================================/
116 IMPLICIT NONE
117
118 C == Global data ==
119 #include "SIZE.h"
120 #include "EEPARAMS.h"
121 #include "PARAMS.h"
122 #include "GRID.h"
123 #include "DYNVARS.h"
124 #include "FFIELDS.h"
125 #ifdef SHORTWAVE_HEATING
126 integer two
127 _RL minusone
128 parameter (two=2,minusone=-1.)
129 _RL swfracb(two)
130 #endif
131
132
133 C == Routine arguments ==
134 C iMin - Working range of tile for applying forcing.
135 C iMax
136 C jMin
137 C jMax
138 C kLev
139 _RS maskC (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
140 INTEGER iMin, iMax, jMin, jMax, kLev, bi, bj
141 _RL myCurrentTime
142 INTEGER myThid
143 CEndOfInterface
144
145 C == Local variables ==
146 C Loop counters
147 INTEGER I, J
148
149 C-- Forcing term
150 C Add heat in top-layer
151 IF ( kLev .EQ. 1 ) THEN
152 DO j=jMin,jMax
153 DO i=iMin,iMax
154 gT(i,j,kLev,bi,bj)=gT(i,j,kLev,bi,bj)
155 & +maskC(i,j)*surfaceTendencyT(i,j,bi,bj)
156 ENDDO
157 ENDDO
158 ENDIF
159
160 #ifdef SHORTWAVE_HEATING
161 C Penetrating SW radiation
162 swfracb(1)=abs(rF(klev))
163 swfracb(2)=abs(rF(klev+1))
164 call SWFRAC(
165 I two,minusone,
166 I myCurrentTime,myThid,
167 O swfracb)
168 DO j=jMin,jMax
169 DO i=iMin,iMax
170 gT(i,j,klev,bi,bj) = gT(i,j,klev,bi,bj)
171 & +maskC(i,j)*Qsw(i,j,bi,bj)*(swfracb(1)-swfracb(2))
172 ENDDO
173 ENDDO
174 #endif
175 RETURN
176 END
177 CStartOfInterface
178 SUBROUTINE EXTERNAL_FORCING_S(
179 I iMin, iMax, jMin, jMax,bi,bj,kLev,
180 I maskC,
181 I myCurrentTime,myThid)
182 C /==========================================================\
183 C | S/R EXTERNAL_FORCING_S |
184 C | o Contains problem specific forcing for merid velocity. |
185 C |==========================================================|
186 C | Adds terms to gS for forcing by external sources |
187 C | e.g. fresh-water flux, climatalogical relaxation....... |
188 C \==========================================================/
189 IMPLICIT NONE
190
191 C == Global data ==
192 #include "SIZE.h"
193 #include "EEPARAMS.h"
194 #include "PARAMS.h"
195 #include "GRID.h"
196 #include "DYNVARS.h"
197 #include "FFIELDS.h"
198
199 C == Routine arguments ==
200 C iMin - Working range of tile for applying forcing.
201 C iMax
202 C jMin
203 C jMax
204 C kLev
205 _RS maskC (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
206 INTEGER iMin, iMax, jMin, jMax, kLev, bi, bj
207 _RL myCurrentTime
208 INTEGER myThid
209 CEndOfInterface
210
211 C == Local variables ==
212 C Loop counters
213 INTEGER I, J
214
215 C-- Forcing term
216 C Add fresh-water in top-layer
217 IF ( kLev .EQ. 1 ) THEN
218 DO j=jMin,jMax
219 DO i=iMin,iMax
220 gS(i,j,kLev,bi,bj)=gS(i,j,kLev,bi,bj)
221 & +maskC(i,j)*surfaceTendencyS(i,j,bi,bj)
222 ENDDO
223 ENDDO
224 ENDIF
225
226 RETURN
227 END

  ViewVC Help
Powered by ViewVC 1.1.22