/[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.1 - (hide 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 jmc 1.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