/[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.11 - (show annotations) (download)
Tue Apr 10 22:35:25 2001 UTC (24 years, 3 months ago) by heimbach
Branch: MAIN
CVS Tags: checkpoint38, checkpoint39
Changes since 1.10: +3 -3 lines
See doc/tag-index and doc/notes_c37_adj.txt
Preparation for stand-alone autodifferentiability.

1 C $Header: /u/gcmpack/models/MITgcmUV/model/src/external_forcing.F,v 1.10 2001/02/04 14:38:47 cnh Exp $
2 C $Name: checkpoint37 $
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(klev)
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