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

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

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


Revision 1.2 - (hide 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 jmc 1.2 C $Header: /u/gcmpack/MITgcm/pkg/thsice/thsice_slab_ocean.F,v 1.1 2004/04/07 23:40:34 jmc Exp $
2 jmc 1.1 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 jmc 1.2 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 jmc 1.1 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