/[MITgcm]/MITgcm/pkg/thsice/thsice_slab_ocean.F
ViewVC logotype

Contents of /MITgcm/pkg/thsice/thsice_slab_ocean.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.2 - (show annotations) (download)
Thu Jun 3 16:34:36 2004 UTC (20 years ago) by jmc
Branch: MAIN
CVS Tags: checkpoint53d_post
Changes since 1.1: +4 -3 lines
use local Freezing Temp.(fct of sMxL)

1 C $Header: /u/gcmpack/MITgcm/pkg/thsice/thsice_slab_ocean.F,v 1.1 2004/04/07 23:40:34 jmc Exp $
2 C $Name: $
3
4 #include "THSICE_OPTIONS.h"
5
6 CBOP
7 C !ROUTINE: THSICE_SLAB_OCEAN
8 C !INTERFACE:
9 SUBROUTINE THSICE_SLAB_OCEAN(
10 I bi, bj, myThid )
11 C !DESCRIPTION: \bv
12 C *==========================================================*
13 C | S/R THSICE_SLAB_OCEAN
14 C | o Slab ocean for atmosphere (and sea-ice) model
15 C *==========================================================*
16 C | o add ocean-surface fluxes + restoring term
17 C | and step forward ocean mixed-layer Temp. & Salinity
18 C *==========================================================*
19 C \ev
20
21 C !USES:
22 IMPLICIT NONE
23
24 C == Global variables ==
25 C-- MITgcm
26 #include "SIZE.h"
27 #include "EEPARAMS.h"
28 #include "PARAMS.h"
29 #include "FFIELDS.h"
30
31 C-- Sea-Ice package
32 #include "THSICE_PARAMS.h"
33 #include "THSICE_VARS.h"
34
35 C-- Physics package
36 #ifdef ALLOW_AIM
37 #include "AIM_FFIELDS.h"
38 #endif
39
40 C !INPUT/OUTPUT PARAMETERS:
41 C == Routine Arguments ==
42 INTEGER bi,bj
43 INTEGER myThid
44 CEOP
45
46 #ifdef ALLOW_THSICE
47
48 C == Local variables ==
49 C i,j :: Loop counters
50 _RL dtFac, dtFacR, fwFac, heatFac, locTemp
51 _RL oceTfreez
52 INTEGER i,j
53
54 IF ( .NOT.stepFwd_oceMxL ) RETURN
55
56 C-- add heat flux and fresh-water + salt flux :
57 dtFac = ocean_deltaT/rhosw
58 fwFac = ocean_deltaT*sMxL_default*rhofw/rhosw
59 heatFac = ocean_deltaT/(cpwater*rhosw)
60 DO j=1,sNy
61 DO i=1,sNx
62 IF ( hOceMxL(i,j,bi,bj).NE.0. _d 0 ) THEN
63 tOceMxL(i,j,bi,bj) = tOceMxL(i,j,bi,bj)
64 & - heatFac*Qnet(i,j,bi,bj) / hOceMxL(i,j,bi,bj)
65 sOceMxL(i,j,bi,bj) = sOceMxL(i,j,bi,bj)
66 & + (fwFac*EmPmR(i,j,bi,bj) - dtFac*saltFlux(i,j,bi,bj))
67 & / hOceMxL(i,j,bi,bj)
68 ENDIF
69 ENDDO
70 ENDDO
71
72 #ifdef ALLOW_AIM
73 IF ( tauRelax_MxL .GT. 0. _d 0 ) THEN
74 C-- add restoring (backward) toward climatological Temp. & fixed Salinity
75 dtFac = ocean_deltaT/tauRelax_MxL
76 dtFacR = 1. _d 0 /(1. _d 0 + dtFac)
77 oceTfreez = - 1.9 _d 0
78 DO j=1,sNy
79 DO i=1,sNx
80 IF ( hOceMxL(i,j,bi,bj).NE.0. _d 0 ) THEN
81 sOceMxL(i,j,bi,bj) =
82 & (sOceMxL(i,j,bi,bj) + dtFac*sMxL_default)*dtFacR
83 oceTfreez = -mu_Tf*sOceMxL(i,j,bi,bj)
84 locTemp = ( aim_sWght0*aim_sst0(i,j,bi,bj)
85 & + aim_sWght1*aim_sst1(i,j,bi,bj)
86 & ) - celsius2K
87 locTemp = MAX( locTemp , oceTfreez )
88 tOceMxL(i,j,bi,bj) =
89 & (tOceMxL(i,j,bi,bj) + dtFac*locTemp)*dtFacR
90 ENDIF
91 ENDDO
92 ENDDO
93 ENDIF
94 #endif /* ALLOW_AIM */
95
96 #endif /* ALLOW_THSICE */
97
98 RETURN
99 END

  ViewVC Help
Powered by ViewVC 1.1.22