/[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.3 - (show annotations) (download)
Thu Jun 24 23:46:26 2004 UTC (19 years, 10 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint57t_post, checkpoint57o_post, checkpoint54a_pre, checkpoint57m_post, checkpoint55c_post, checkpoint54e_post, checkpoint57s_post, checkpoint54a_post, checkpoint57k_post, checkpoint55d_pre, checkpoint57d_post, checkpoint57g_post, checkpoint57b_post, checkpoint57c_pre, checkpoint55j_post, checkpoint56b_post, checkpoint57i_post, checkpoint57e_post, checkpoint55h_post, checkpoint57g_pre, checkpoint54b_post, checkpoint55b_post, checkpoint54d_post, checkpoint56c_post, checkpoint55, checkpoint57f_pre, checkpoint57a_post, checkpoint54, checkpoint54f_post, checkpoint57v_post, checkpoint55g_post, checkpoint55f_post, checkpoint57r_post, checkpoint57a_pre, checkpoint55i_post, checkpoint57, checkpoint56, eckpoint57e_pre, checkpoint57h_done, checkpoint53g_post, checkpoint57n_post, checkpoint57w_post, checkpoint57p_post, checkpint57u_post, checkpoint57f_post, checkpoint57q_post, checkpoint57c_post, checkpoint55e_post, checkpoint53f_post, checkpoint55a_post, checkpoint54c_post, checkpoint57j_post, checkpoint57h_pre, checkpoint57l_post, checkpoint57h_post, checkpoint56a_post, checkpoint55d_post
Changes since 1.2: +13 -1 lines
compute surface temp. change (for diagnostics).

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

  ViewVC Help
Powered by ViewVC 1.1.22