1 |
#include "CPP_OPTIONS.h" |
C $Header$ |
2 |
|
C $Name$ |
3 |
|
|
4 |
|
#include "DIC_OPTIONS.h" |
5 |
#include "GCHEM_OPTIONS.h" |
#include "GCHEM_OPTIONS.h" |
6 |
|
|
7 |
CStartOfInterFace |
CBOP |
8 |
SUBROUTINE O2_SURFFORCING( PTR_O2, GO2, |
C !ROUTINE: O2_SURFFORCING |
9 |
|
|
10 |
|
C !INTERFACE: ========================================================== |
11 |
|
SUBROUTINE O2_SURFFORCING( PTR_O2, SGO2, |
12 |
I bi,bj,iMin,iMax,jMin,jMax, |
I bi,bj,iMin,iMax,jMin,jMax, |
13 |
I myIter, myTime, myThid ) |
I myIter, myTime, myThid ) |
|
C /==========================================================\ |
|
|
C | SUBROUTINE O2_SURFFORCING | |
|
|
C | o Calculate the oxygen air-sea flux terms | |
|
|
C | o following external_forcing_o2.F from Mick | |
|
|
C |==========================================================| |
|
|
IMPLICIT NONE |
|
14 |
|
|
15 |
C == GLobal variables == |
C !DESCRIPTION: |
16 |
|
C Calculate the oxygen air-sea flux terms |
17 |
|
|
18 |
|
C !USES: =============================================================== |
19 |
|
IMPLICIT NONE |
20 |
#include "SIZE.h" |
#include "SIZE.h" |
21 |
#include "DYNVARS.h" |
#include "DYNVARS.h" |
22 |
#include "EEPARAMS.h" |
#include "EEPARAMS.h" |
25 |
#include "FFIELDS.h" |
#include "FFIELDS.h" |
26 |
#ifdef DIC_BIOTIC |
#ifdef DIC_BIOTIC |
27 |
#include "DIC_ABIOTIC.h" |
#include "DIC_ABIOTIC.h" |
28 |
|
#include "PTRACERS_SIZE.h" |
29 |
#include "PTRACERS.h" |
#include "PTRACERS.h" |
30 |
#endif |
#endif |
31 |
|
|
32 |
|
|
33 |
C == Routine arguments == |
c !INPUT PARAMETERS: =================================================== |
34 |
INTEGER myIter, myThid |
C myThid :: thread number |
35 |
|
C myIter :: current timestep |
36 |
|
C myTime :: current time |
37 |
|
C PTR_O2 :: oxygen tracer field |
38 |
_RL myTime |
_RL myTime |
39 |
_RL PTR_O2(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) |
_RL PTR_O2(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) |
|
_RL GO2(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
|
40 |
INTEGER iMin,iMax,jMin,jMax, bi, bj |
INTEGER iMin,iMax,jMin,jMax, bi, bj |
41 |
|
INTEGER myIter, myThid |
42 |
|
|
43 |
|
c !OUTPUT PARAMETERS: =================================================== |
44 |
|
C SGO2 :: air-sea exchange of oxygen |
45 |
|
_RL SGO2(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
46 |
|
|
47 |
#ifdef ALLOW_PTRACERS |
#ifdef ALLOW_PTRACERS |
48 |
|
|
49 |
|
|
50 |
C == Local variables == |
C !LOCAL VARIABLES: =================================================== |
51 |
C I, J, K - Loop counters |
C I, J, K - Loop counters |
52 |
INTEGER I,J,K |
INTEGER I,J,K |
53 |
C Solubility relation coefficients |
C Solubility relation coefficients |
67 |
_RL ttemp |
_RL ttemp |
68 |
_RL stemp |
_RL stemp |
69 |
_RL oCnew |
_RL oCnew |
70 |
|
CEOP |
71 |
|
|
72 |
|
|
73 |
K=1 |
K=1 |
129 |
C update surface tendencies |
C update surface tendencies |
130 |
DO j=jMin,jMax |
DO j=jMin,jMax |
131 |
DO i=iMin,iMax |
DO i=iMin,iMax |
132 |
GO2(i,j)= maskC(i,j,1,bi,bj)*FluxO2(i,j)*recip_drF(1) |
SGO2(i,j)= maskC(i,j,1,bi,bj)*FluxO2(i,j)*recip_drF(1) |
133 |
ENDDO |
ENDDO |
134 |
ENDDO |
ENDDO |
135 |
#endif |
#endif |