42 |
CEOP |
CEOP |
43 |
|
|
44 |
#ifdef ALLOW_SALT_PLUME |
#ifdef ALLOW_SALT_PLUME |
|
|
|
45 |
C !LOCAL VARIABLES: |
C !LOCAL VARIABLES: |
46 |
C i,j :: loop indices |
C i,j :: loop indices |
47 |
C ks :: surface level index |
C ks :: surface level index |
48 |
INTEGER i, j, ks |
INTEGER i, j, ks |
|
|
|
49 |
IF ( usingPCoords ) THEN |
IF ( usingPCoords ) THEN |
50 |
ks = Nr |
ks = Nr |
51 |
ELSE |
ELSE |
54 |
|
|
55 |
DO j = jMin, jMax |
DO j = jMin, jMax |
56 |
DO i = iMin, iMax |
DO i = iMin, iMax |
57 |
|
#ifdef SALT_PLUME_VOLUME |
58 |
|
SPforcS1(i,j,bi,bj)=SPbrineVolFlux(i,j,bi,bj) |
59 |
|
& *SPbrineSconst*rhoConst |
60 |
|
SPforcT1(i,j,bi,bj)=SPbrineVolFlux(i,j,bi,bj) |
61 |
|
& *theta(i,j,1,bi,bj)*rhoConst |
62 |
|
& *HeatCapacity_Cp |
63 |
|
|
64 |
|
Cunits: surfaceForcingT [Kelvin.m/s], surfaceForcingS [psu.m/s] |
65 |
|
C SPforcS1 has same unit as saltPlumeFlux [g/m2/s]=[g/kg kg/m2/s] |
66 |
|
C SPforcT1: [W/m2] |
67 |
|
surfaceForcingS(i,j,bi,bj) = surfaceForcingS(i,j,bi,bj) |
68 |
|
& - SPforcS1(i,j,bi,bj) * mass2rUnit |
69 |
|
surfaceForcingT(i,j,bi,bj) = surfaceForcingT(i,j,bi,bj) |
70 |
|
& - SPforcT1(i,j,bi,bj) * mass2rUnit / HeatCapacity_Cp |
71 |
|
#else /* SALT_PLUME_VOLUME */ |
72 |
surfaceForcingS(i,j,bi,bj) = surfaceForcingS(i,j,bi,bj) |
surfaceForcingS(i,j,bi,bj) = surfaceForcingS(i,j,bi,bj) |
73 |
& - saltPlumeFlux(i,j,bi,bj) * mass2rUnit |
& - saltPlumeFlux(i,j,bi,bj) * mass2rUnit |
74 |
|
#endif /* SALT_PLUME_VOLUME */ |
75 |
ENDDO |
ENDDO |
76 |
ENDDO |
ENDDO |
|
|
|
77 |
#endif /* ALLOW_SALT_PLUME */ |
#endif /* ALLOW_SALT_PLUME */ |
78 |
|
|
79 |
RETURN |
RETURN |