/[MITgcm]/MITgcm/pkg/mom_common/mom_init_fixed.F
ViewVC logotype

Contents of /MITgcm/pkg/mom_common/mom_init_fixed.F

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


Revision 1.5 - (show annotations) (download)
Thu Sep 17 16:57:13 2009 UTC (14 years, 8 months ago) by dfer
Branch: MAIN
Changes since 1.4: +42 -1 lines
Move computation of length scales to mom_init_fixed.F (avoid recomputation
at each time-steps*levels).

1 C $Header: /u/gcmpack/MITgcm/pkg/mom_common/mom_init_fixed.F,v 1.4 2007/07/31 23:01:58 ce107 Exp $
2 C $Name: $
3
4 #include "MOM_COMMON_OPTIONS.h"
5
6 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
7 CBOP
8 C !ROUTINE: MOM_INIT_FIXED
9
10 C !INTERFACE:
11 SUBROUTINE MOM_INIT_FIXED( myThid )
12
13 C !DESCRIPTION:
14 C Initialize fixed quantities
15 C for momentum (common to fluxform & vecinv) packages
16
17 C !USES:
18 IMPLICIT NONE
19 #include "SIZE.h"
20 #include "EEPARAMS.h"
21 #include "PARAMS.h"
22 #include "GRID.h"
23 #include "SURFACE.h"
24 #include "MOM_VISC.h"
25
26 C !INPUT PARAMETERS:
27 C myThid :: thread number
28 INTEGER myThid
29 CEOP
30
31 C !LOCAL VARIABLES:
32 INTEGER i,j,bi,bj
33 #ifdef NONLIN_FRSURF
34 C i,j,k,bi,bj :: loop counter
35 INTEGER i,j,k,bi,bj
36 #endif
37
38 #ifdef NONLIN_FRSURF
39 C- used for side-drag:
40 DO bj=myByLo(myThid), myByHi(myThid)
41 DO bi=myBxLo(myThid), myBxHi(myThid)
42 DO k=1,Nr
43 DO j=1-Oly,sNy+Oly
44 DO i=1-Olx,sNx+Olx
45 h0FacC(i,j,k,bi,bj) = _hFacC(i,j,k,bi,bj)
46 h0FacW(i,j,k,bi,bj) = _hFacW(i,j,k,bi,bj)
47 h0FacS(i,j,k,bi,bj) = _hFacS(i,j,k,bi,bj)
48 ENDDO
49 ENDDO
50 ENDDO
51 ENDDO
52 ENDDO
53 #endif /* NONLIN_FRSURF */
54
55 IF (deltaTmom.NE.0.) THEN
56 recip_dt=1. _d 0/deltaTmom
57 ELSE
58 recip_dt=0. _d 0
59 ENDIF
60
61 DO bj=myByLo(myThid), myByHi(myThid)
62 DO bi=myBxLo(myThid), myBxHi(myThid)
63 DO j=1-Oly,sNy+Oly
64 DO i=1-Olx,sNx+Olx
65 IF (useAreaViscLength) THEN
66 L2_D(i,j,bi,bj)=rA(i,j,bi,bj)
67 ELSE
68 L2_D(i,j,bi,bj)=2. _d 0
69 & /((recip_DXF(i,j,bi,bj)**2+recip_DYF(i,j,bi,bj)**2))
70 ENDIF
71 L3_D(i,j,bi,bj)=L2_D(i,j,bi,bj)**1.5
72 L4rdt_D(i,j,bi,bj)=0.03125 _d 0*recip_dt*L2_D(i,j,bi,bj)**2
73 ENDDO
74 ENDDO
75 ENDDO
76 ENDDO
77
78 DO bj=myByLo(myThid), myByHi(myThid)
79 DO bi=myBxLo(myThid), myBxHi(myThid)
80 DO j=1-Oly,sNy+Oly
81 DO i=1-Olx,sNx+Olx
82 IF (useAreaViscLength) THEN
83 L2_Z(i,j,bi,bj)=rAz(i,j,bi,bj)
84 ELSE
85 L2_Z(i,j,bi,bj)=2. _d 0
86 & /((recip_DXV(I,J,bi,bj)**2+recip_DYU(I,J,bi,bj)**2))
87 ENDIF
88 L3_Z(i,j,bi,bj)=L2_Z(i,j,bi,bj)**1.5
89 L4rdt_Z(i,j,bi,bj)=0.03125 _d 0*recip_dt*L2_Z(i,j,bi,bj)**2
90 ENDDO
91 ENDDO
92 ENDDO
93 ENDDO
94
95 #ifdef ALLOW_DIAGNOSTICS
96 IF ( useDiagnostics ) THEN
97 CALL MOM_DIAGNOSTICS_INIT( myThid )
98 ENDIF
99 #endif /* ALLOW_DIAGNOSTICS */
100
101 RETURN
102 END

  ViewVC Help
Powered by ViewVC 1.1.22