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

Annotation 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 - (hide 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 cnh 1.3 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 adcroft 1.2
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