/[MITgcm]/MITgcm_contrib/PRM/multi_comp_setup/cg/code/parent_override.F
ViewVC logotype

Contents of /MITgcm_contrib/PRM/multi_comp_setup/cg/code/parent_override.F

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


Revision 1.9 - (show annotations) (download)
Tue Feb 5 00:34:13 2008 UTC (18 years, 7 months ago) by jmc
Branch: MAIN
CVS Tags: HEAD
Changes since 1.8: +1 -1 lines
FILE REMOVED
use "mypackage" to apply forcing from FG-components

1 C $Header: /u/gcmpack/MITgcm_contrib/PRM/multi_comp_setup/cg/code/parent_override.F,v 1.8 2007/12/11 00:26:03 jmc Exp $
2 C $Name: $
3
4 #include "PACKAGES_CONFIG.h"
5 #include "CPP_OPTIONS.h"
6
7 CBOP
8 C !ROUTINE: PARENT_TENDENCY_APPLY_U
9 C !INTERFACE:
10 SUBROUTINE PARENT_TENDENCY_APPLY_U(
11 I iMin,iMax, jMin,jMax, bi,bj, kLev,
12 I myTime, myThid )
13 C !DESCRIPTION: \bv
14 C *==========================================================*
15 C | S/R PARENT_TENDENCY_APPLY_U
16 C | o Contains problem specific forcing for zonal velocity.
17 C *==========================================================*
18 C | Adds terms to gU for forcing by external sources
19 C | defined as "parent"
20 C *==========================================================*
21 C \ev
22
23 C !USES:
24 IMPLICIT NONE
25 C == Global data ==
26 #include "SIZE.h"
27 #include "GRID.h"
28 #include "EEPARAMS.h"
29 #include "DYNVARS.h"
30 #include "PARENT_OVERRIDE.h"
31
32 C !INPUT/OUTPUT PARAMETERS:
33 C == Routine arguments ==
34 C iMin,iMax :: Working range of x-index for applying forcing.
35 C jMin,jMax :: Working range of y-index for applying forcing.
36 C bi,bj :: Current tile indices
37 C kLev :: Current vertical level index
38 C myTime :: Current time in simulation
39 C myThid :: Thread Id number
40 INTEGER iMin, iMax, jMin, jMax, kLev, bi, bj
41 _RL myTime
42 INTEGER myThid
43
44 C !LOCAL VARIABLES:
45 C == Local variables ==
46 C i,j :: Loop counters
47 INTEGER i, j
48 CEOP
49
50 ! Call routine that applies any "parent" override for
51 ! step "tendency_apply_u".
52 ! I think we will end up with a "parent" or "override"
53 ! package to provide general support for this.
54 IF ( usePO_Tendency_Apply_U) THEN
55 DO j=jMin,jMax
56 DO i=iMin,iMax
57 gU(i,j,kLev,bi,bj) = gU(i,j,kLev,bi,bj)
58 & + maskW(i,j,kLev,bi,bj) * ( po_gu(i-1,j,kLev,bi,bj)
59 & +po_gu( i, j,kLev,bi,bj)
60 & )*0.5 _d 0
61 ENDDO
62 ENDDO
63 ENDIF
64
65 RETURN
66 END
67
68 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
69 CBOP
70 C !ROUTINE: PARENT_TENDENCY_APPLY_V
71 C !INTERFACE:
72 SUBROUTINE PARENT_TENDENCY_APPLY_V(
73 I iMin,iMax, jMin,jMax, bi,bj, kLev,
74 I myTime, myThid )
75 C !DESCRIPTION: \bv
76 C *==========================================================*
77 C | S/R PARENT_TENDENCY_APPLY_V
78 C | o Contains problem specific forcing for merid velocity.
79 C *==========================================================*
80 C | Adds terms to gV for forcing by external sources
81 C | defined as "parent".
82 C *==========================================================*
83 C \ev
84
85 C !USES:
86 IMPLICIT NONE
87 C == Global data ==
88 #include "SIZE.h"
89 #include "EEPARAMS.h"
90 #include "PARAMS.h"
91 #include "GRID.h"
92 #include "DYNVARS.h"
93 #include "PARENT_OVERRIDE.h"
94
95 C !INPUT/OUTPUT PARAMETERS:
96 C == Routine arguments ==
97 C iMin,iMax :: Working range of x-index for applying forcing.
98 C jMin,jMax :: Working range of y-index for applying forcing.
99 C bi,bj :: Current tile indices
100 C kLev :: Current vertical level index
101 C myTime :: Current time in simulation
102 C myThid :: Thread Id number
103 INTEGER iMin, iMax, jMin, jMax, kLev, bi, bj
104 _RL myTime
105 INTEGER myThid
106
107 C !LOCAL VARIABLES:
108 C == Local variables ==
109 C i,j :: Loop counters
110 C kSurface :: index of surface layer
111 INTEGER i, j
112 INTEGER kSurface
113 CEOP
114 IF ( usePO_Tendency_Apply_V) THEN
115 DO j=jMin,jMax
116 DO i=iMin,iMax
117 gV(i,j,kLev,bi,bj) = gV(i,j,kLev,bi,bj)
118 & + maskS(i,j,kLev,bi,bj) * ( po_gv(i,j-1,kLev,bi,bj)
119 & +po_gv(i, j, kLev,bi,bj)
120 & )*0.5 _d 0
121 ENDDO
122 ENDDO
123 ENDIF
124
125 RETURN
126 END
127
128 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
129 CBOP
130 C !ROUTINE: EXTERNAL_FORCING_T
131 C !INTERFACE:
132 SUBROUTINE PARENT_TENDENCY_APPLY_T(
133 I iMin,iMax, jMin,jMax, bi,bj, kLev,
134 I myTime, myThid )
135 C !DESCRIPTION: \bv
136 C *==========================================================*
137 C | S/R EXTERNAL_FORCING_T
138 C | o Contains problem specific forcing for temperature.
139 C *==========================================================*
140 C | Adds terms to gT for forcing by external sources
141 C | e.g. heat flux, climatalogical relaxation, etc ...
142 C *==========================================================*
143 C \ev
144
145 C !USES:
146 IMPLICIT NONE
147 C == Global data ==
148 #include "SIZE.h"
149 #include "EEPARAMS.h"
150 #include "PARAMS.h"
151 #include "GRID.h"
152 #include "DYNVARS.h"
153 #include "FFIELDS.h"
154 #include "PARENT_OVERRIDE.h"
155
156 C !INPUT/OUTPUT PARAMETERS:
157 C == Routine arguments ==
158 C iMin,iMax :: Working range of x-index for applying forcing.
159 C jMin,jMax :: Working range of y-index for applying forcing.
160 C bi,bj :: Current tile indices
161 C kLev :: Current vertical level index
162 C myTime :: Current time in simulation
163 C myThid :: Thread Id number
164 INTEGER iMin, iMax, jMin, jMax, kLev, bi, bj
165 _RL myTime
166 INTEGER myThid
167
168 C !LOCAL VARIABLES:
169 C == Local variables ==
170 C i,j :: Loop counters
171 C kSurface :: index of surface layer
172 INTEGER i, j
173 INTEGER kSurface
174 CEOP
175
176 IF ( usePO_Tendency_Apply_Theta) THEN
177 DO j=jMin,jMax
178 DO i=iMin,iMax
179 gT(i,j,kLev,bi,bj) = gT(i,j,kLev,bi,bj) +
180 . maskC(i,j,kLev,bi,bj) * po_gTheta(i,j,kLev,bi,bj)
181 ENDDO
182 ENDDO
183 ENDIF
184
185 RETURN
186 END

  ViewVC Help
Powered by ViewVC 1.1.22