91 |
kop1 = MIN(Nr,ko+1) |
kop1 = MIN(Nr,ko+1) |
92 |
maskp1 = 1. _d 0 |
maskp1 = 1. _d 0 |
93 |
IF (ko.GE.Nr) maskp1 = 0. _d 0 |
IF (ko.GE.Nr) maskp1 = 0. _d 0 |
94 |
#ifndef NONLIN_FRSRURF |
#ifndef NONLIN_FRSURF |
95 |
C For the linear free surface, hFacC can be omitted, buying another |
C For the linear free surface, hFacC can be omitted, buying another |
96 |
C performance increase of a factor of six on a vector computer. |
C performance increase of a factor of six on a vector computer. |
97 |
C For now this is not implemented via run time flags, in order to |
C For now this is not implemented via run time flags, in order to |
98 |
C avoid making this code too complicated. |
C avoid making this code too complicated. |
99 |
depth_l = -rF(ko) + drF(ko) |
depth_l = -rF(ko) + drF(ko) |
100 |
reminFac = exp(-(depth_l-zbase)/zca) |
reminFac = exp(-(depth_l-zbase)/zca) |
101 |
#endif |
#endif /* NONLIN_FRSURF */ |
102 |
DO j=jmin,jmax |
DO j=jmin,jmax |
103 |
DO i=imin,imax |
DO i=imin,imax |
104 |
IF ( caexport(i,j) .NE. 0. _d 0 ) THEN |
IF ( caexport(i,j) .NE. 0. _d 0 ) THEN |
105 |
C-- Lower flux (no flux to ocean bottom) |
C-- Lower flux (no flux to ocean bottom) |
106 |
#ifdef NONLIN_FRSRURF |
#ifdef NONLIN_FRSURF |
107 |
depth_l = -rF(ko) + drF(ko) * _hFacC(i,j,ko,bi,bj) |
depth_l = -rF(ko) + drF(ko) * _hFacC(i,j,ko,bi,bj) |
108 |
reminFac = exp(-(depth_l-zbase)/zca) |
reminFac = exp(-(depth_l-zbase)/zca) |
109 |
#endif |
#endif /* NONLIN_FRSURF */ |
110 |
flux_l = caexport(i,j)*reminFac |
flux_l = caexport(i,j)*reminFac |
111 |
& *maskp1*maskC(i,j,kop1,bi,bj) |
& *maskp1*maskC(i,j,kop1,bi,bj) |
112 |
|
|