2 |
C $Name$ |
C $Name$ |
3 |
|
|
4 |
#include "EXF_OPTIONS.h" |
#include "EXF_OPTIONS.h" |
5 |
|
#ifdef ALLOW_AUTODIFF |
6 |
|
# include "AUTODIFF_OPTIONS.h" |
7 |
|
#endif |
8 |
|
|
9 |
CBOP 0 |
CBOP 0 |
10 |
C !ROUTINE: EXF_MAPFIELDS |
C !ROUTINE: EXF_MAPFIELDS |
145 |
C 1) Rain has same temp as Air |
C 1) Rain has same temp as Air |
146 |
C 2) Snow has no heat capacity (consistent with seaice & thsice pkgs) |
C 2) Snow has no heat capacity (consistent with seaice & thsice pkgs) |
147 |
C 3) No distinction between sea-water Cp and fresh-water Cp |
C 3) No distinction between sea-water Cp and fresh-water Cp |
148 |
C 4) Run-Off comes at the temp of surface water (with same Cp) |
C 4) By default, RunOff comes at the temp of surface water (with same Cp); |
149 |
|
C ifdef ALLOW_RUNOFTEMP, RunOff temp can be specified in runoftempfile. |
150 |
C 5) Evap is released to the Atmos @ surf-temp (=SST); should be using |
C 5) Evap is released to the Atmos @ surf-temp (=SST); should be using |
151 |
C the water-vapor heat capacity here and consistently in Bulk-Formulae; |
C the water-vapor heat capacity here and consistently in Bulk-Formulae; |
152 |
C Could also be put directly into Latent Heat flux. |
C Could also be put directly into Latent Heat flux. |
205 |
ENDIF |
ENDIF |
206 |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
207 |
#endif /* ALLOW_ATM_TEMP */ |
#endif /* ALLOW_ATM_TEMP */ |
208 |
|
#if defined(ALLOW_RUNOFF) && defined(ALLOW_RUNOFTEMP) |
209 |
|
IF ( runoftempfile .NE. ' ' ) THEN |
210 |
|
C-- Add energy content of RunOff |
211 |
|
DO j = 1, sNy |
212 |
|
DO i = 1, sNx |
213 |
|
Qnet(i,j,bi,bj) = Qnet(i,j,bi,bj) |
214 |
|
& + HeatCapacity_Cp |
215 |
|
& *( theta(i,j,ks,bi,bj) - runoftemp(i,j,bi,bj) ) |
216 |
|
& *runoff(i,j,bi,bj)*rhoConstFresh |
217 |
|
ENDDO |
218 |
|
ENDDO |
219 |
|
ENDIF |
220 |
|
#endif |
221 |
|
|
222 |
#ifdef ALLOW_AUTODIFF_TAMC |
#ifdef ALLOW_AUTODIFF_TAMC |
223 |
CADJ STORE ustress(:,:,bi,bj) = comlev1_bibj, key=ikey, byte=isbyte |
CADJ STORE ustress(:,:,bi,bj) = comlev1_bibj, key=ikey, byte=isbyte |
328 |
ENDDO |
ENDDO |
329 |
#endif |
#endif |
330 |
|
|
331 |
#ifdef EXF_ALLOW_SEAICE_RELAX |
#ifdef EXF_SEAICE_FRACTION |
332 |
DO j = jmin,jmax |
DO j = jmin,jmax |
333 |
DO i = imin,imax |
DO i = imin,imax |
334 |
obsSIce(i,j,bi,bj) = |
exf_iceFraction(i,j,bi,bj) = |
335 |
& exf_outscal_areamask*areamask(i,j,bi,bj) |
& exf_outscal_areamask*areamask(i,j,bi,bj) |
336 |
obsSIce(I,J,bi,bj) = |
exf_iceFraction(I,J,bi,bj) = |
337 |
& MIN(MAX(obsSIce(I,J,bi,bj), 0.d0 ), 1.d0) |
& MIN( MAX(exf_iceFraction(I,J,bi,bj),zeroRS), oneRS ) |
338 |
ENDDO |
ENDDO |
339 |
ENDDO |
ENDDO |
340 |
#endif |
#endif |
360 |
#ifdef ATMOSPHERIC_LOADING |
#ifdef ATMOSPHERIC_LOADING |
361 |
_EXCH_XY_RS( pLoad, myThid ) |
_EXCH_XY_RS( pLoad, myThid ) |
362 |
#endif |
#endif |
363 |
#ifdef EXF_ALLOW_SEAICE_RELAX |
#ifdef EXF_SEAICE_FRACTION |
364 |
_EXCH_XY_RS( obsSIce, myThid ) |
_EXCH_XY_RS( exf_iceFraction, myThid ) |
365 |
#endif |
#endif |
366 |
|
|
367 |
RETURN |
RETURN |