/[MITgcm]/MITgcm/pkg/dic/alk_surfforcing.F
ViewVC logotype

Contents of /MITgcm/pkg/dic/alk_surfforcing.F

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


Revision 1.8 - (show annotations) (download)
Mon Aug 27 19:44:13 2007 UTC (16 years, 9 months ago) by dfer
Branch: MAIN
CVS Tags: checkpoint59g, checkpoint59h
Changes since 1.7: +2 -0 lines
CPP option to do virtual flux of dic and alkalinity as coded in dic package

1 #include "DIC_OPTIONS.h"
2 #include "GCHEM_OPTIONS.h"
3
4 CBOP
5 C !ROUTINE: ALK_SURFFORCING
6
7 C !INTERFACE: ==========================================================
8 SUBROUTINE ALK_SURFFORCING( PTR_ALK , GALK,
9 I bi,bj,imin,imax,jmin,jmax,
10 I myIter,myTime,myThid)
11
12 C !DESCRIPTION:
13 C Calculate the alkalinity change due to freshwater flux
14 C Update alkalinity tendency term
15
16 C !USES: ===============================================================
17 IMPLICIT NONE
18 #include "SIZE.h"
19 #include "DYNVARS.h"
20 #include "EEPARAMS.h"
21 #include "PARAMS.h"
22 #include "GRID.h"
23 #include "FFIELDS.h"
24 #include "DIC_ABIOTIC.h"
25
26 C !INPUT PARAMETERS: ===================================================
27 C myThid :: thread number
28 C myIter :: current timestep
29 C myTime :: current time
30 C bi,bj :: tile indices
31 C PTR_ALK :: alkalinity field
32 INTEGER myIter, myThid
33 _RL myTime
34 _RL PTR_ALK(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
35 INTEGER iMin,iMax,jMin,jMax, bi, bj
36
37 C !OUTPUT PARAMETERS: ==================================================
38 C GALK :: tendency term of alkalinity
39 _RL GALK(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
40
41 #ifdef ALLOW_PTRACERS
42 #ifdef DIC_BIOTIC
43
44 C !LOCAL VARIABLES: ====================================================
45 C i,j :: loop indices
46 INTEGER i,j
47 CEOP
48
49 #ifdef ALLOW_OLD_VIRTUALFLUX
50 DO j=jmin,jmax
51 DO i=imin,imax
52 IF (maskC(i,j,1,bi,bj).NE.0.) THEN
53 c calculate virtual flux
54 c EminusPforV = dS/dt*(1/Sglob)
55 C NOTE: Be very careful with signs here!
56 C Positive EminusPforV => loss of water to atmos and increase
57 C in salinity. Thus, also increase in other surface tracers
58 C (i.e. positive virtual flux into surface layer)
59 GALK(i,j)=gsm_ALK*surfaceForcingS(i,j,bi,bj)*
60 & recip_drF(1)/gsm_S
61 c OR
62 c let virtual flux be zero
63 c GALK(i,j)=0.d0
64 c
65 ELSE
66 GALK(i,j)=0. _d 0
67 ENDIF
68 ENDDO
69 ENDDO
70 #endif /* ALLOW_OLD_VIRTUALFLUX */
71
72 #endif
73 #endif
74 RETURN
75 END

  ViewVC Help
Powered by ViewVC 1.1.22