/[MITgcm]/MITgcm/verification/hs94.cs-32x32x5/code/ini_theta.F
ViewVC logotype

Diff of /MITgcm/verification/hs94.cs-32x32x5/code/ini_theta.F

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

revision 1.1 by adcroft, Mon Apr 9 20:01:16 2001 UTC revision 1.2 by adcroft, Tue May 29 14:01:58 2001 UTC
# Line 0  Line 1 
1    C $Header$
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     == Functions ==
37          Real*8  PORT_RAND
38    
39    C     == Local variables ==
40    C     bi,bj  - Loop counters
41    C     I,J,K
42          INTEGER bi, bj
43          INTEGER I, J, K
44          _RL     term1,term2,thetaLim,thetaEq
45          _RL     thKappa
46    
47          _BARRIER
48    
49          J = 99+myBxLo(myThid)+nPx*myByLo(myThid)
50    c     CALL SRAND( J )
51    
52          IF ( hydrogThetaFile .EQ. ' ' ) THEN
53    C--    Initialise temperature field to Held & Saurez equilibrium theta
54           DO bj = myByLo(myThid), myByHi(myThid)
55            DO bi = myBxLo(myThid), myBxHi(myThid)
56             DO K=1,Nr
57              Ro_SeaLevel=1.E5
58              thKappa = 2./7.
59              thetaLim = 200. / ((rC(K)/Ro_SeaLevel)**thKappa)
60              DO J=1,sNy
61               DO I=1,sNx
62               term1=60.*(sin(yC(I,J,bi,bj)*deg2rad)**2)
63               term2=10.*log((rC(K)/Ro_SeaLevel))
64         &              *(cos(yC(I,J,bi,bj)*deg2rad)**2)
65               thetaEq=315.-term1-term2
66                theta(I,J,K,bi,bj) = MAX( thetaLim, thetaEq )
67    c    &                          + 0.01*(RAND()-0.5)
68    c    &                          + 0.01*(PORT_RAND()-0.5)
69    c           theta(I,J,K,bi,bj) = tRef(K)
70               ENDDO
71              ENDDO
72             ENDDO
73            ENDDO
74           ENDDO
75           DO bj = myByLo(myThid), myByHi(myThid)
76            DO bi = myBxLo(myThid), myBxHi(myThid)
77             DO K=1,Nr
78              DO J=1,sNy
79    #ifdef ALLOW_ZONAL_FILT
80    C--   Zonal FFT filter initial conditions
81               CALL ZONAL_FILTER(
82         U      theta, hFacC,
83         I      1, sNy, k, k, bi, bj, 1, myThid)
84    #endif /* INCLUDE_LAT_CIRC_FFT_FILTER_CODE */
85              ENDDO
86             ENDDO
87            ENDDO
88           ENDDO
89          ELSE
90           _BEGIN_MASTER( myThid )
91           CALL READ_FLD_XYZ_RL( hydrogThetaFile, ' ', theta, 0, myThid )
92           _END_MASTER(myThid)
93          ENDIF
94    C     Set initial tendency terms
95          DO bj = myByLo(myThid), myByHi(myThid)
96           DO bi = myBxLo(myThid), myBxHi(myThid)
97            DO K=1,Nr
98             DO J=1,sNy
99              DO I=1,sNx
100               gt   (I,J,K,bi,bj) = 0. _d 0
101               gtNM1(I,J,K,bi,bj) = 0. _d 0
102               IF (hFacC(I,J,K,bi,bj).EQ.0.) theta(I,J,K,bi,bj) = 0.
103              ENDDO
104             ENDDO
105            ENDDO
106           ENDDO
107          ENDDO
108    C
109    
110    
111          _EXCH_XYZ_R8(theta , myThid )
112          _EXCH_XYZ_R8(gt , myThid )
113          _EXCH_XYZ_R8(gtNM1 , myThid )
114    
115          CALL PLOT_FIELD_XYZRL( theta, 'Initial Temperature' ,
116         &                       Nr, 1, myThid )
117    
118          RETURN
119          END

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

  ViewVC Help
Powered by ViewVC 1.1.22