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

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

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


Revision 1.3 - (hide annotations) (download)
Thu May 2 20:03:12 2013 UTC (11 years, 1 month ago) by jmc
Branch: MAIN
CVS Tags: checkpoint64y, checkpoint64x, checkpoint64z, checkpoint64o, checkpoint64q, checkpoint64p, checkpoint64s, checkpoint64r, checkpoint64u, checkpoint64t, checkpoint64w, checkpoint64v, checkpoint66g, checkpoint66f, checkpoint66e, checkpoint66d, checkpoint66c, checkpoint66b, checkpoint66a, checkpoint64n, checkpoint66o, checkpoint66n, checkpoint66m, checkpoint66l, checkpoint66k, checkpoint66j, checkpoint66i, checkpoint66h, checkpoint65z, checkpoint65x, checkpoint65y, checkpoint65r, checkpoint65s, checkpoint65p, checkpoint65q, checkpoint65v, checkpoint65w, checkpoint65t, checkpoint65u, checkpoint65j, checkpoint65k, checkpoint65h, checkpoint65i, checkpoint65n, checkpoint65o, checkpoint65l, checkpoint65m, checkpoint65b, checkpoint65c, checkpoint65a, checkpoint65f, checkpoint65g, checkpoint65d, checkpoint65e, checkpoint64i, checkpoint64h, checkpoint64k, checkpoint65, checkpoint64j, checkpoint64m, checkpoint64l, HEAD
Changes since 1.2: +1 -2 lines
remove snowPrc from common block THSICE_FLUX, in THSICE_VARS.h
 and declared it locally (without bi,bj) in thsice_main.F & aim_do_physics.F

1 jmc 1.3 C $Header: /u/gcmpack/MITgcm/pkg/thsice/thsice_get_ocean.F,v 1.2 2013/04/01 18:18:15 jmc Exp $
2 jmc 1.1 C $Name: $
3    
4     #include "THSICE_OPTIONS.h"
5 jmc 1.2 #ifdef ALLOW_SEAICE
6     # include "SEAICE_OPTIONS.h"
7     #endif /* ALLOW_SEAICE */
8 jmc 1.1
9     CBOP
10     C !ROUTINE: THSICE_GET_OCEAN
11     C !INTERFACE:
12     SUBROUTINE THSICE_GET_OCEAN(
13     I bi, bj, myTime, myIter, myThid )
14     C !DESCRIPTION: \bv
15     C *==========================================================*
16     C | S/R THSICE_GET_OCEAN
17     C | o Get mixed layer properties from ocean main
18     C | variables (surface level) and store them
19     C | into this package local mixed-layer arrays
20     C *==========================================================*
21    
22     C !USES:
23     IMPLICIT NONE
24    
25     C === Global variables ===
26     #include "SIZE.h"
27     #include "EEPARAMS.h"
28     #include "PARAMS.h"
29     #include "GRID.h"
30     #include "SURFACE.h"
31     #include "DYNVARS.h"
32     c#include "THSICE_PARAMS.h"
33     #include "THSICE_SIZE.h"
34     #include "THSICE_VARS.h"
35 jmc 1.2 #ifdef ALLOW_SEAICE
36     # include "SEAICE_SIZE.h"
37     # include "SEAICE.h"
38     #endif /* ALLOW_SEAICE */
39 jmc 1.1
40     C !INPUT/OUTPUT PARAMETERS:
41     C === Routine arguments ===
42     C bi, bj :: Tile indices
43     C myTime :: Current time in simulation (s)
44     C myIter :: Current iteration number
45     C myThid :: My Thread Id. number
46     INTEGER bi, bj
47     _RL myTime
48     INTEGER myIter
49     INTEGER myThid
50     CEOP
51    
52     #ifdef ALLOW_THSICE
53     C !LOCAL VARIABLES:
54     C === Local variables ===
55     INTEGER i,j
56     INTEGER ks
57 jmc 1.2 #ifdef ALLOW_SEAICE
58     _RL uRel1, uRel2, vRel1, vRel2
59     #endif /* ALLOW_SEAICE */
60 jmc 1.1
61     C-- Mixed layer thickness: take the 1rst layer
62     ks = 1
63     #ifdef NONLIN_FRSURF
64     IF ( staggerTimeStep .AND. nonlinFreeSurf.GT.0 ) THEN
65     IF ( select_rStar.GT.0 ) THEN
66     DO j=1-OLy,sNy+OLy
67     DO i=1-OLx,sNx+OLx
68     hOceMxL(i,j,bi,bj) = drF(ks)*h0FacC(i,j,ks,bi,bj)
69     & *rStarFacC(i,j,bi,bj)
70     ENDDO
71     ENDDO
72     ELSE
73     DO j=1-OLy,sNy+OLy
74     DO i=1-OLx,sNx+OLx
75     IF ( kSurfC(i,j,bi,bj).EQ.1 ) THEN
76     hOceMxL(i,j,bi,bj) = drF(ks)*hFac_surfC(i,j,bi,bj)
77     ELSE
78     hOceMxL(i,j,bi,bj) = drF(ks)*hFacC(i,j,ks,bi,bj)
79     ENDIF
80     ENDDO
81     ENDDO
82     ENDIF
83     ELSE
84     #else /* ndef NONLIN_FRSURF */
85     IF (.TRUE.) THEN
86     #endif /* NONLIN_FRSURF */
87     DO j=1-OLy,sNy+OLy
88     DO i=1-OLx,sNx+OLx
89     hOceMxL(i,j,bi,bj) = drF(ks)*hFacC(i,j,ks,bi,bj)
90     ENDDO
91     ENDDO
92     ENDIF
93    
94     DO j=1-OLy,sNy+OLy
95     DO i=1-OLx,sNx+OLx
96     tOceMxL(i,j,bi,bj) = theta(i,j,ks,bi,bj)
97     sOceMxL(i,j,bi,bj) = salt (i,j,ks,bi,bj)
98     v2ocMxL(i,j,bi,bj) = 0. _d 0
99     icFrwAtm(i,j,bi,bj) = 0. _d 0
100     icFlxAtm(i,j,bi,bj) = 0. _d 0
101     icFlxSW (i,j,bi,bj) = 0. _d 0
102     siceAlb (i,j,bi,bj) = 0. _d 0
103     ENDDO
104     ENDDO
105 jmc 1.2 IF ( .NOT.useSEAICE ) THEN
106     DO j=1-OLy,sNy+OLy-1
107     DO i=1-OLx,sNx+OLx-1
108     v2ocMxL(i,j,bi,bj) =
109 jmc 1.1 & ( uVel(i,j,ks,bi,bj) * uVel(i,j,ks,bi,bj)
110     & + uVel(i+1,j,ks,bi,bj)*uVel(i+1,j,ks,bi,bj)
111     & + vVel(i,j+1,ks,bi,bj)*vVel(i,j+1,ks,bi,bj)
112     & + vVel(i,j,ks,bi,bj) * vVel(i,j,ks,bi,bj)
113     & )*0.5 _d 0
114     ENDDO
115     ENDDO
116 jmc 1.2 #ifdef ALLOW_SEAICE
117     ELSE
118     DO j=1-OLy,sNy+OLy-1
119     DO i=1-OLx,sNx+OLx-1
120     uRel1 = uVel( i, j,ks,bi,bj)-uIce( i, j,bi,bj)
121     uRel2 = uVel(i+1,j,ks,bi,bj)-uIce(i+1,j,bi,bj)
122     vRel1 = vVel(i, j, ks,bi,bj)-vIce(i, j, bi,bj)
123     vRel2 = vVel(i,j+1,ks,bi,bj)-vIce(i,j+1,bi,bj)
124     v2ocMxL(i,j,bi,bj) =
125     & ( ( uRel1*uRel1 + uRel2*uRel2 )
126     & + ( vRel1*vRel1 + vRel2*vRel2 )
127     & )*0.5 _d 0
128     ENDDO
129     ENDDO
130     #endif /* ALLOW_SEAICE */
131     ENDIF
132 jmc 1.1
133     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
134     #endif /*ALLOW_THSICE*/
135    
136     RETURN
137     END

  ViewVC Help
Powered by ViewVC 1.1.22