/[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.10 - (show annotations) (download)
Sun Feb 4 14:38:47 2001 UTC (23 years, 4 months ago) by cnh
Branch: MAIN
CVS Tags: c37_adj, checkpoint37, checkpoint36, checkpoint35
Branch point for: pre38
Changes since 1.9: +2 -1 lines
Made sure each .F and .h file had
the CVS keywords Header and Name at its start.
Most had header but very few currently have Name, so
lots of changes!

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

  ViewVC Help
Powered by ViewVC 1.1.22