/[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.1 - (show annotations) (download)
Wed Apr 7 23:40:34 2004 UTC (20 years, 2 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint52n_post, checkpoint53c_post, checkpoint53b_post, checkpoint53b_pre, checkpoint52m_post, checkpoint53a_post, checkpoint53, checkpoint53d_pre
major changes in pkg/thsice: allows atmospheric model (AIM) to use thsice.
- split thsice_therm.F in 2 S/R: thsice_solve4temp.F & thsice_calc_thickn.F
- move most of the ocean & bulk_force interface in thsice_main.F
- add a "slab ocean" component to be used with atmospheric model

1 C $Header: $
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 locTemp = ( aim_sWght0*aim_sst0(i,j,bi,bj)
82 & + aim_sWght1*aim_sst1(i,j,bi,bj)
83 & ) - celsius2K
84 locTemp = MAX( locTemp , oceTfreez )
85 tOceMxL(i,j,bi,bj) =
86 & (tOceMxL(i,j,bi,bj) + dtFac*locTemp)*dtFacR
87 sOceMxL(i,j,bi,bj) =
88 & (sOceMxL(i,j,bi,bj) + dtFac*sMxL_default)*dtFacR
89 ENDIF
90 ENDDO
91 ENDDO
92 ENDIF
93 #endif /* ALLOW_AIM */
94
95 #endif /* ALLOW_THSICE */
96
97 RETURN
98 END

  ViewVC Help
Powered by ViewVC 1.1.22