/[MITgcm]/MITgcm/model/inc/FFIELDS.h
ViewVC logotype

Annotation of /MITgcm/model/inc/FFIELDS.h

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


Revision 1.45 - (hide annotations) (download)
Thu Jul 4 23:05:09 2013 UTC (10 years, 11 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint65a, checkpoint65, checkpoint64y, checkpoint64x, checkpoint64z, checkpoint64q, checkpoint64p, checkpoint64s, checkpoint64r, checkpoint64u, checkpoint64t, checkpoint64w, checkpoint64v, checkpoint64k, checkpoint64m, checkpoint64l, checkpoint64o, checkpoint64n
Changes since 1.44: +1 -12 lines
File MIME type: text/plain
- call EXTERNAL_FORCING_SURF outside bi,bj loops (in do_oceanic_phys.F),
  (where external_forcing_adjust was called) and change list of arguments;
- merge external_forcing_adjust.F into external_forcing_surf.F
- put surface relaxation of SST & SSS in new S/R (forcing_surf_relax.F)
  which also contains balancing surface relaxation (ALLOW_BALANCE_RELAX,
  previously in file "balance_relax.F", now removed); remove corresponding
  arrays in FFIELDS.h.

1 jmc 1.45 C $Header: /u/gcmpack/MITgcm/model/inc/FFIELDS.h,v 1.44 2013/04/22 02:32:47 jmc Exp $
2 heimbach 1.14 C $Name: $
3 cnh 1.12 CBOP
4 jmc 1.33 C !ROUTINE: FFIELDS.h
5 cnh 1.12 C !INTERFACE:
6     C include "FFIELDS.h"
7     C !DESCRIPTION:
8     C \bv
9     C *==========================================================*
10 jmc 1.33 C | FFIELDS.h
11     C | o Model forcing fields
12 cnh 1.12 C *==========================================================*
13 dimitri 1.16 C | More flexible surface forcing configurations are
14     C | available via pkg/exf and pkg/seaice
15 cnh 1.12 C *==========================================================*
16     C \ev
17     CEOP
18 cnh 1.1 C
19 dimitri 1.16 C fu :: Zonal surface wind stress in N/m^2
20     C > 0 for increase in uVel, which is west to
21     C east for cartesian and spherical polar grids
22     C Typical range: -0.5 < fu < 0.5
23     C Southwest C-grid U point
24     C
25     C fv :: Meridional surface wind stress in N/m^2
26     C > 0 for increase in vVel, which is south to
27     C north for cartesian and spherical polar grids
28     C Typical range: -0.5 < fv < 0.5
29     C Southwest C-grid V point
30     C
31 jmc 1.35 C EmPmR :: Net upward freshwater flux in kg/m2/s
32 dimitri 1.16 C EmPmR = Evaporation - precipitation - runoff
33     C > 0 for increase in salt (ocean salinity)
34 jmc 1.35 C Typical range: -1e-4 < EmPmR < 1e-4
35 dimitri 1.16 C Southwest C-grid tracer point
36 dimitri 1.37 C NOTE: for backward compatibility EmPmRfile is specified in
37     C m/s when using external_fields_load.F. It is converted
38     C to kg/m2/s by multiplying by rhoConstFresh.
39 dimitri 1.16 C
40 jmc 1.21 C saltFlux :: Net upward salt flux in psu.kg/m^2/s
41     C flux of Salt taken out of the ocean per time unit (second).
42 jmc 1.17 C Note: a) only used when salty sea-ice forms or melts.
43 jmc 1.21 C b) units: when salinity (unit= psu) is expressed
44 jmc 1.39 C in g/kg, saltFlux unit becomes g/m^2/s.
45 jmc 1.17 C > 0 for decrease in SSS.
46     C Southwest C-grid tracer point
47     C
48 jmc 1.25 C Qnet :: Net upward surface heat flux (including shortwave) in W/m^2
49     C Qnet = latent + sensible + net longwave + net shortwave
50 dimitri 1.16 C > 0 for decrease in theta (ocean cooling)
51     C Typical range: -250 < Qnet < 600
52     C Southwest C-grid tracer point
53     C
54     C Qsw :: Net upward shortwave radiation in W/m^2
55     C Qsw = - ( downward - ice and snow absorption - reflected )
56     C > 0 for decrease in theta (ocean cooling)
57     C Typical range: -350 < Qsw < 0
58     C Southwest C-grid tracer point
59     C
60     C SST :: Sea surface temperature in degrees C for relaxation
61     C Southwest C-grid tracer point
62 adcroft 1.9 C
63 dimitri 1.16 C SSS :: Sea surface salinity in psu for relaxation
64     C Southwest C-grid tracer point
65 heimbach 1.7 C
66 heimbach 1.29 C lambdaThetaClimRelax :: Inverse time scale for relaxation ( 1/s ).
67     C
68     C lambdaSaltClimRelax :: Inverse time scale for relaxation ( 1/s ).
69    
70 jmc 1.33 C pLoad :: for the ocean: atmospheric pressure at z=eta
71 mlosch 1.13 C Units are Pa=N/m^2
72 jmc 1.33 C for the atmosphere: geopotential of the orography
73 mlosch 1.13 C Units are meters (converted)
74 jmc 1.43 C sIceLoad :: sea-ice loading, expressed in Mass of ice+snow / area unit
75 jmc 1.24 C Units are kg/m^2
76     C Note: only used with Sea-Ice & RealFreshWater formulation
77 jmc 1.43 C addMass :: source (<0: sink) of fluid in the domain interior
78     C (generalisation of oceanic real fresh-water flux)
79     C Units are kg/s (mass per unit of time)
80     C frictionHeating :: heating caused by friction and momentum dissipation
81     C Units are in Watts [W] (extensive variable)
82 gforget 1.38 C eddyPsiX -Zonal Eddy Streamfunction in m^2/s used in taueddy_external_forcing.F
83     C eddyPsiY -Meridional Streamfunction in m^2/s used in taueddy_external_forcing.F
84 heimbach 1.28 C EfluxY - y-component of Eliassen-Palm flux vector
85     C EfluxP - p-component of Eliassen-Palm flux vector
86 heimbach 1.7
87 heimbach 1.32 COMMON /FFIELDS_fu/ fu
88     COMMON /FFIELDS_fv/ fv
89     COMMON /FFIELDS_Qnet/ Qnet
90     COMMON /FFIELDS_Qsw/ Qsw
91     COMMON /FFIELDS_EmPmR/ EmPmR
92     COMMON /FFIELDS_saltFlux/ saltFlux
93     COMMON /FFIELDS_SST/ SST
94     COMMON /FFIELDS_SSS/ SSS
95     COMMON /FFIELDS_lambdaThetaClimRelax/ lambdaThetaClimRelax
96     COMMON /FFIELDS_lambdaSaltClimRelax/ lambdaSaltClimRelax
97 jmc 1.33 COMMON /FFIELDS_pLoad/ pLoad
98 heimbach 1.32 COMMON /FFIELDS_sIceLoad/ sIceLoad
99 mlosch 1.13
100 cnh 1.3 _RS fu (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
101     _RS fv (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
102 adcroft 1.6 _RS Qnet (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
103 heimbach 1.11 _RS Qsw (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
104 adcroft 1.6 _RS EmPmR (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
105 jmc 1.17 _RS saltFlux (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
106 adcroft 1.4 _RS SST (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
107     _RS SSS (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
108 heimbach 1.32 _RS lambdaThetaClimRelax(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
109     _RS lambdaSaltClimRelax(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
110 jmc 1.33 _RS pLoad (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
111 jmc 1.24 _RS sIceLoad (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
112 heimbach 1.14
113 jmc 1.43 #ifdef ALLOW_FRICTION_HEATING
114     COMMON /FFIELDS_frictionHeat/ frictionHeating
115     _RS frictionHeating(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
116     #endif
117     #ifdef ALLOW_ADDFLUID
118     COMMON /FFIELDS_ADD_FLUID/ addMass
119     _RL addMass(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
120 heimbach 1.28 #endif
121 jmc 1.33
122 jmc 1.43 C- jmc: commented out until corresponding (ghost-like) code apparition
123 jmc 1.44 C dQdT :: Thermal relaxation coefficient in W/m^2/degrees
124     C Southwest C-grid tracer point
125     c COMMON /FFIELDS_dQdT/ dQdT
126     c _RS dQdT (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
127 jmc 1.43 c#ifdef ALLOW_EP_FLUX
128     c COMMON /efluxFFIELDS/ EfluxY,EfluxP
129     c _RL EfluxY (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
130     c _RL EfluxP (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
131     c#endif
132    
133 gforget 1.38 #ifdef ALLOW_EDDYPSI
134     COMMON /eddypsiFFIELDS/ eddyPsiX,eddyPsiY
135     _RS eddyPsiX (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
136     _RS eddyPsiY (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
137 heimbach 1.28 #endif
138    
139 jmc 1.33 #ifndef EXCLUDE_FFIELDS_LOAD
140 jmc 1.41 C loadedRec :: time-record currently loaded (in temp arrays *[1])
141 jmc 1.27 C taux[0,1] :: Temp. for zonal wind stress
142     C tauy[0,1] :: Temp. for merid. wind stress
143     C Qnet[0,1] :: Temp. for heat flux
144     C EmPmR[0,1] :: Temp. for fresh water flux
145     C saltFlux[0,1] :: Temp. for isurface salt flux
146     C SST[0,1] :: Temp. for theta climatalogy
147     C SSS[0,1] :: Temp. for theta climatalogy
148     C Qsw[0,1] :: Temp. for short wave component of heat flux
149 jmc 1.33 C pLoad[0,1] :: Temp. for atmospheric pressure at z=eta
150 jmc 1.27 C [0,1] :: End points for interpolation
151 jmc 1.40
152     COMMON /FFIELDS_I/ loadedRec
153     INTEGER loadedRec(nSx,nSy)
154 heimbach 1.14
155     COMMON /TDFIELDS/
156     & taux0, tauy0, Qnet0, EmPmR0, SST0, SSS0,
157 jmc 1.27 & taux1, tauy1, Qnet1, EmPmR1, SST1, SSS1,
158     & saltFlux0, saltFlux1
159 heimbach 1.14 #ifdef SHORTWAVE_HEATING
160     & , Qsw0, Qsw1
161 jmc 1.33 #endif
162 heimbach 1.14 #ifdef ATMOSPHERIC_LOADING
163 jmc 1.33 & , pLoad0, pLoad1
164 heimbach 1.14 #endif
165    
166     _RS taux0 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
167     _RS tauy0 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
168     _RS Qnet0 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
169     _RS EmPmR0 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
170 jmc 1.27 _RS saltFlux0(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
171 heimbach 1.14 _RS SST0 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
172     _RS SSS0 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
173     _RS taux1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
174     _RS tauy1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
175     _RS Qnet1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
176     _RS EmPmR1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
177 jmc 1.27 _RS saltFlux1(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
178 heimbach 1.14 _RS SST1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
179     _RS SSS1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
180     #ifdef ATMOSPHERIC_LOADING
181 jmc 1.33 _RS pLoad0 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
182     _RS pLoad1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
183 heimbach 1.14 #endif
184     #ifdef SHORTWAVE_HEATING
185     _RS Qsw1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
186     _RS Qsw0 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
187     #endif
188 jmc 1.33 #endif /* EXCLUDE_FFIELDS_LOAD */
189 heimbach 1.7
190 jmc 1.26 C surfaceForcingU units are r_unit.m/s^2 (=m^2/s^2 if r=z)
191     C -> usage in gU: gU = gU + surfaceForcingU/drF [m/s^2]
192     C surfaceForcingV units are r_unit.m/s^2 (=m^2/s^-2 if r=z)
193     C -> usage in gU: gV = gV + surfaceForcingV/drF [m/s^2]
194     C
195     C surfaceForcingS units are r_unit.psu/s (=psu.m/s if r=z)
196     C - EmPmR * S_surf plus salinity relaxation*drF(1)
197     C -> usage in gS: gS = gS + surfaceForcingS/drF [psu/s]
198 heimbach 1.7 C
199 jmc 1.26 C surfaceForcingT units are r_unit.Kelvin/s (=Kelvin.m/s if r=z)
200     C - Qnet (+Qsw) plus temp. relaxation*drF(1)
201 heimbach 1.7 C -> calculate -lambda*(T(model)-T(clim))
202 jmc 1.26 C Qnet assumed to be net heat flux including ShortWave rad.
203     C -> usage in gT: gT = gT + surfaceforcingT/drF [K/s]
204     C surfaceForcingTice
205     C - equivalent Temperature flux in the top level that corresponds
206     C to the melting or freezing of sea-ice.
207 dimitri 1.22 C Note that the surface level temperature is modified
208     C directly by the sea-ice model in order to maintain
209     C water temperature under sea-ice at the freezing
210     C point. But we need to keep track of the
211     C equivalent amount of heat that this surface-level
212     C temperature change implies because it is used by
213     C the KPP package (kpp_calc.F and kpp_transport_t.F).
214 jmc 1.26 C Units are r_unit.K/s (=Kelvin.m/s if r=z) (>0 for ocean warming).
215    
216     COMMON /SURFACE_FORCING/
217     & surfaceForcingU,
218     & surfaceForcingV,
219     & surfaceForcingT,
220 jmc 1.33 & surfaceForcingS,
221 jmc 1.26 & surfaceForcingTice
222     _RL surfaceForcingU (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
223     _RL surfaceForcingV (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
224     _RL surfaceForcingT (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
225     _RL surfaceForcingS (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
226     _RL surfaceForcingTice(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)

  ViewVC Help
Powered by ViewVC 1.1.22