81 |
C afy :: 2-D array for horizontal advective flux, y direction |
C afy :: 2-D array for horizontal advective flux, y direction |
82 |
C afr :: 2-D array for vertical advective flux |
C afr :: 2-D array for vertical advective flux |
83 |
C fVerT :: 2 1/2D arrays for vertical advective flux |
C fVerT :: 2 1/2D arrays for vertical advective flux |
|
C localTij :: 2-D array, temporary local copy of tracer fld |
|
84 |
C calc_fluxes_X :: logical to indicate to calculate fluxes in X dir |
C calc_fluxes_X :: logical to indicate to calculate fluxes in X dir |
85 |
C calc_fluxes_Y :: logical to indicate to calculate fluxes in Y dir |
C calc_fluxes_Y :: logical to indicate to calculate fluxes in Y dir |
86 |
C interiorOnly :: only update the interior of myTile, but not the edges |
C interiorOnly :: only update the interior of myTile, but not the edges |
105 |
_RL afx (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
_RL afx (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
106 |
_RL afy (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
_RL afy (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
107 |
_RL afr (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
_RL afr (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
|
ccc _RL localTij(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
|
108 |
_RL smVol (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) |
_RL smVol (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) |
109 |
_RL smTr0 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) |
_RL smTr0 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) |
110 |
_RL alp (1-OLx:sNx+OLx,1-OLy:sNy+OLy,2) |
_RL alp (1-OLx:sNx+OLx,1-OLy:sNy+OLy,2) |
327 |
I overlapOnly, interiorOnly, |
I overlapOnly, interiorOnly, |
328 |
I N_edge, S_edge, E_edge, W_edge, |
I N_edge, S_edge, E_edge, W_edge, |
329 |
I deltaTLev(k), uTrans, |
I deltaTLev(k), uTrans, |
330 |
|
I maskInC(1-OLx,1-OLy,bi,bj), |
331 |
U smVol(1-OLx,1-OLy,k), |
U smVol(1-OLx,1-OLy,k), |
332 |
U smTr0(1-OLx,1-OLy,k), |
U smTr0(1-OLx,1-OLy,k), |
333 |
U smTr(1-OLx,1-OLy,k,bi,bj,1), |
U smTr(1-OLx,1-OLy,k,bi,bj,1), |
344 |
STOP 'GAD_SOM_ADVECT: adv. scheme incompatibale with SOM' |
STOP 'GAD_SOM_ADVECT: adv. scheme incompatibale with SOM' |
345 |
ENDIF |
ENDIF |
346 |
|
|
|
#ifdef ALLOW_OBCS |
|
|
C- Apply open boundary conditions |
|
|
c IF ( useOBCS ) THEN |
|
|
ccc localTij(i,j) = smTr0(i,j)/smVol(i,j) |
|
|
c IF (tracerIdentity.EQ.GAD_TEMPERATURE) THEN |
|
|
c CALL OBCS_APPLY_TLOC( bi, bj, k, localTij, myThid ) |
|
|
c ELSEIF (tracerIdentity.EQ.GAD_SALINITY) THEN |
|
|
c CALL OBCS_APPLY_SLOC( bi, bj, k, localTij, myThid ) |
|
|
#ifdef ALLOW_PTRACERS |
|
|
c ELSEIF (tracerIdentity.GE.GAD_TR1) THEN |
|
|
c CALL OBCS_APPLY_PTRACER( bi, bj, k, |
|
|
c & tracerIdentity-GAD_TR1+1, localTij, myThid ) |
|
|
#endif /* ALLOW_PTRACERS */ |
|
|
c ENDIF |
|
|
ccc smTr0(i,j) = localTij(i,j)*smVol(i,j) |
|
|
c ENDIF |
|
|
#endif /* ALLOW_OBCS */ |
|
|
|
|
347 |
C-- End of X direction |
C-- End of X direction |
348 |
ENDIF |
ENDIF |
349 |
|
|
374 |
I overlapOnly, interiorOnly, |
I overlapOnly, interiorOnly, |
375 |
I N_edge, S_edge, E_edge, W_edge, |
I N_edge, S_edge, E_edge, W_edge, |
376 |
I deltaTLev(k), vTrans, |
I deltaTLev(k), vTrans, |
377 |
|
I maskInC(1-OLx,1-OLy,bi,bj), |
378 |
U smVol(1-OLx,1-OLy,k), |
U smVol(1-OLx,1-OLy,k), |
379 |
U smTr0(1-OLx,1-OLy,k), |
U smTr0(1-OLx,1-OLy,k), |
380 |
U smTr(1-OLx,1-OLy,k,bi,bj,1), |
U smTr(1-OLx,1-OLy,k,bi,bj,1), |
391 |
STOP 'GAD_SOM_ADVECT: adv. scheme incompatibale with SOM' |
STOP 'GAD_SOM_ADVECT: adv. scheme incompatibale with SOM' |
392 |
ENDIF |
ENDIF |
393 |
|
|
|
#ifdef ALLOW_OBCS |
|
|
C- Apply open boundary conditions |
|
|
c IF (useOBCS) THEN |
|
|
ccc localTij(i,j) = smTr0(i,j)/smVol(i,j) |
|
|
c IF (tracerIdentity.EQ.GAD_TEMPERATURE) THEN |
|
|
c CALL OBCS_APPLY_TLOC( bi, bj, k, localTij, myThid ) |
|
|
c ELSEIF (tracerIdentity.EQ.GAD_SALINITY) THEN |
|
|
c CALL OBCS_APPLY_SLOC( bi, bj, k, localTij, myThid ) |
|
|
#ifdef ALLOW_PTRACERS |
|
|
c ELSEIF (tracerIdentity.GE.GAD_TR1) THEN |
|
|
c CALL OBCS_APPLY_PTRACER( bi, bj, k, |
|
|
c & tracerIdentity-GAD_TR1+1, localTij, myThid ) |
|
|
#endif /* ALLOW_PTRACERS */ |
|
|
c ENDIF |
|
|
ccc smTr0(i,j) = localTij(i,j)*smVol(i,j) |
|
|
c ENDIF |
|
|
#endif /* ALLOW_OBCS */ |
|
|
|
|
394 |
C-- End of Y direction |
C-- End of Y direction |
395 |
ENDIF |
ENDIF |
396 |
|
|
557 |
CALL GAD_SOM_ADV_R( |
CALL GAD_SOM_ADV_R( |
558 |
I bi,bj,k, kUp, kDown, |
I bi,bj,k, kUp, kDown, |
559 |
I deltaTLev(k), rTrans, maskUp, |
I deltaTLev(k), rTrans, maskUp, |
560 |
|
I maskInC(1-OLx,1-OLy,bi,bj), |
561 |
U smVol, |
U smVol, |
562 |
U smTr0, |
U smTr0, |
563 |
U smTr(1-OLx,1-OLy,1,bi,bj,1), |
U smTr(1-OLx,1-OLy,1,bi,bj,1), |