/[MITgcm]/MITgcm/verification/hs94.1x64x5/code/ini_theta.F
ViewVC logotype

Contents of /MITgcm/verification/hs94.1x64x5/code/ini_theta.F

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


Revision 1.3 - (show annotations) (download)
Sun Feb 4 14:38:53 2001 UTC (23 years, 3 months ago) by cnh
Branch: MAIN
CVS Tags: checkpoint38, pre38tag1, c37_adj, pre38-close, checkpoint39, checkpoint37, checkpoint36, checkpoint35
Branch point for: pre38
Changes since 1.2: +2 -1 lines
Made sure each .F and .h file had
the CVS keywords Header and Name at its start.
Most had header but very few currently have Name, so
lots of changes!

1 C $Header: /u/gcmpack/models/MITgcmUV/verification/hs94.1x64x5/code/ini_theta.F,v 1.2 2001/02/02 21:36:34 adcroft Exp $
2 C $Name: $
3
4 #include "CPP_OPTIONS.h"
5
6 CStartOfInterface
7 SUBROUTINE INI_THETA( myThid )
8 C /==========================================================\
9 C | SUBROUTINE INI_THETA |
10 C | o Set model initial temperature field. |
11 C |==========================================================|
12 C | There are several options for setting the initial |
13 C | temperature file |
14 C | 1. Inline code |
15 C | 2. Vertical profile ( uniform T in X and Y ) |
16 C | 3. Three-dimensional data from a file. For example from |
17 C | Levitus or from a checkpoint file from a previous |
18 C | integration. |
19 C | In addition to setting the temperature field we also |
20 C | set the initial temperature tendency term here. |
21 C \==========================================================/
22 IMPLICIT NONE
23
24 C === Global variables ===
25 #include "SIZE.h"
26 #include "EEPARAMS.h"
27 #include "PARAMS.h"
28 #include "GRID.h"
29 #include "DYNVARS.h"
30
31 C == Routine arguments ==
32 C myThid - Number of this instance of INI_THETA
33 INTEGER myThid
34 CEndOfInterface
35
36 C == Local variables ==
37 C bi,bj - Loop counters
38 C I,J,K
39 INTEGER bi, bj
40 INTEGER I, J, K, localWarnings
41 _RL term1,term2,thetaLim,thetaEq
42 _RL thKappa,rSurf
43 CHARACTER*(MAX_LEN_MBUF) msgBuf
44
45 _BARRIER
46
47 IF ( hydrogThetaFile .EQ. ' ' ) THEN
48 C-- Initialise temperature field to Held & Saurez equilibrium theta
49 DO bj = myByLo(myThid), myByHi(myThid)
50 DO bi = myBxLo(myThid), myBxHi(myThid)
51 DO K=1,Nr
52 rSurf=1.E5
53 thKappa = 2./7.
54 thetaLim = 200. / ((rC(K)/rSurf)**thKappa)
55 C thetaLim = 170. / ((rC(K)/rSurf)**thKappa)
56 DO J=1,sNy
57 term1=60.*(sin(yC(1,J,bi,bj)*deg2rad)**2)
58 term2=10.*log((rC(K)/rSurf))
59 & *(cos(yC(1,J,bi,bj)*deg2rad)**2)
60 thetaEq=315.-term1-term2
61 DO I=1,sNx
62 theta(I,J,K,bi,bj) = MAX( thetaLim, thetaEq )
63 C theta(I,J,K,bi,bj) = tRef(K)
64 ENDDO
65 ENDDO
66 ENDDO
67 ENDDO
68 ENDDO
69 ELSE
70 _BEGIN_MASTER( myThid )
71 CALL READ_FLD_XYZ_RL( hydrogThetaFile, ' ', theta, 0, myThid )
72 _END_MASTER(myThid)
73 ENDIF
74 C Set initial tendency terms
75 localWarnings=0
76 DO bj = myByLo(myThid), myByHi(myThid)
77 DO bi = myBxLo(myThid), myBxHi(myThid)
78 DO K=1,Nr
79 DO J=1,sNy
80 DO I=1,sNx
81 gt (I,J,K,bi,bj) = 0. _d 0
82 gtNM1(I,J,K,bi,bj) = 0. _d 0
83 IF (hFacC(I,J,K,bi,bj).EQ.0) theta(I,J,K,bi,bj) = 0.
84 IF (hFacC(I,J,K,bi,bj).NE.0.AND.theta(I,J,K,bi,bj).EQ.0.)
85 & THEN
86 localWarnings=localWarnings+1
87 ENDIF
88 ENDDO
89 ENDDO
90 ENDDO
91 ENDDO
92 ENDDO
93 IF (localWarnings.NE.0) THEN
94 WRITE(msgBuf,'(A,A)')
95 & 'S/R INI_THETA: theta = 0 identically. If this is intentional',
96 & 'you will need to edit ini_theta.F to avoid this safety check'
97 CALL PRINT_ERROR( msgBuf , myThid)
98 STOP 'ABNORMAL END: S/R INI_THETA'
99 ENDIF
100 C
101 _EXCH_XYZ_R8(theta , myThid )
102 _EXCH_XYZ_R8(gt , myThid )
103 _EXCH_XYZ_R8(gtNM1 , myThid )
104
105 CALL PLOT_FIELD_XYZRL( theta, 'Initial Temperature' ,
106 & Nr, 1, myThid )
107
108 RETURN
109 END

  ViewVC Help
Powered by ViewVC 1.1.22