100 |
#include "FFIELDS.h" |
#include "FFIELDS.h" |
101 |
#include "GRID.h" |
#include "GRID.h" |
102 |
|
|
103 |
|
#ifdef ALLOW_SEAICE |
104 |
|
#include "SEAICE_EXTERNAL.h" |
105 |
|
#endif ALLOW_SEAICE |
106 |
|
|
107 |
#ifdef ALLOW_AUTODIFF_TAMC |
#ifdef ALLOW_AUTODIFF_TAMC |
108 |
#include "tamc.h" |
#include "tamc.h" |
109 |
#include "tamc_keys.h" |
#include "tamc_keys.h" |
351 |
jp1 = j + 1 |
jp1 = j + 1 |
352 |
DO i = imin, imax |
DO i = imin, imax |
353 |
ip1 = i+1 |
ip1 = i+1 |
354 |
|
|
355 |
if ( work3(i,j) .lt. (phepsi*phepsi) ) then |
if ( work3(i,j) .lt. (phepsi*phepsi) ) then |
356 |
ustar(i,j) = SQRT( phepsi * p5 * drF(1) ) |
ustar(i,j) = SQRT( phepsi * p5 * drF(1) ) |
357 |
else |
else |
358 |
tempVar2 = SQRT( work3(i,j) ) * p5 * drF(1) |
tempVar2 = SQRT( work3(i,j) ) * p5 * drF(1) |
359 |
ustar(i,j) = SQRT( tempVar2 ) |
ustar(i,j) = SQRT( tempVar2 ) |
360 |
endif |
endif |
361 |
bo(I,J) = - gravity * |
|
362 |
|
if ( .NOT. useSEAICE ) |
363 |
|
& bo(I,J) = - gravity * |
364 |
& ( vddiff(I,J,1,1) * SurfaceTendencyT(i,j,bi,bj) + |
& ( vddiff(I,J,1,1) * SurfaceTendencyT(i,j,bi,bj) + |
365 |
& vddiff(I,J,1,2) * SurfaceTendencyS(i,j,bi,bj) |
& vddiff(I,J,1,2) * SurfaceTendencyS(i,j,bi,bj) |
366 |
& ) * |
& ) * |
367 |
& drF(1) / work2(I,J) |
& drF(1) / work2(I,J) |
368 |
|
|
369 |
|
#ifdef ALLOW_SEAICE |
370 |
|
if ( useSEAICE ) |
371 |
|
& bo(I,J) = - gravity * |
372 |
|
& ( vddiff(I,J,1,1) * (SurfaceTendencyT(i,j,bi,bj)+ |
373 |
|
& SurfaceTendencyTice(i,j,bi,bj)) + |
374 |
|
& vddiff(I,J,1,2) * SurfaceTendencyS(i,j,bi,bj) |
375 |
|
& ) * |
376 |
|
& drF(1) / work2(I,J) |
377 |
|
#endif ALLOW_SEAICE |
378 |
|
|
379 |
bosol(I,J) = gravity * vddiff(I,J,1,1) * Qsw(i,j,bi,bj) * |
bosol(I,J) = gravity * vddiff(I,J,1,1) * Qsw(i,j,bi,bj) * |
380 |
& recip_Cp*recip_rhoConst*recip_dRf(1) * |
& recip_Cp*recip_rhoConst*recip_dRf(1) * |
381 |
& drF(1) / work2(I,J) |
& drF(1) / work2(I,J) |
382 |
|
|
383 |
END DO |
END DO |
384 |
END DO |
END DO |
385 |
|
|