/[MITgcm]/MITgcm/model/src/ini_forcing.F
ViewVC logotype

Diff of /MITgcm/model/src/ini_forcing.F

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

revision 1.1.1.1 by cnh, Wed Apr 22 19:15:30 1998 UTC revision 1.22.6.1 by heimbach, Fri Mar 7 23:10:21 2003 UTC
# Line 1  Line 1 
1  C $Id$  C $Header$
2    C $Name$
3    
4  #include "CPP_EEOPTIONS.h"  #include "CPP_OPTIONS.h"
5    
6  CStartOfInterface  CBOP
7    C     !ROUTINE: INI_FORCING
8    C     !INTERFACE:
9        SUBROUTINE INI_FORCING( myThid )        SUBROUTINE INI_FORCING( myThid )
 C     /==========================================================\  
 C     | SUBROUTINE INI_FORCING                                   |  
 C     | o Set model initial forcing fields.                      |  
 C     \==========================================================/  
10    
11    C     !DESCRIPTION: \bv
12    C     *==========================================================*
13    C     | SUBROUTINE INI_FORCING                                    
14    C     | o Set model initial forcing fields.                      
15    C     *==========================================================*
16    C     \ev
17    
18    C     !USES:
19          IMPLICIT NONE
20  C     === Global variables ===  C     === Global variables ===
21  #include "SIZE.h"  #include "SIZE.h"
22  #include "EEPARAMS.h"  #include "EEPARAMS.h"
# Line 16  C     === Global variables === Line 24  C     === Global variables ===
24  #include "GRID.h"  #include "GRID.h"
25  #include "FFIELDS.h"  #include "FFIELDS.h"
26    
27    C     !INPUT/OUTPUT PARAMETERS:
28  C     == Routine arguments ==  C     == Routine arguments ==
29  C     myThid -  Number of this instance of INI_FORCING  C     myThid -  Number of this instance of INI_FORCING
30        INTEGER myThid        INTEGER myThid
 CEndOfInterface  
31    
32    C     !LOCAL VARIABLES:
33  C     == Local variables ==  C     == Local variables ==
 C     iG, jG - Global coordinate index  
34  C     bi,bj  - Loop counters  C     bi,bj  - Loop counters
35  C     I,J,K  C     I,J
 C     distY  - Distance accross domain of point j  
 C     lY     - Width of the basin ( last point is land )  
 C     tauMax - Peak zonal wind stress ( N/m^2 )  
 C     tauX   - Local zonal wind stress  
       INTEGER iG, jG  
36        INTEGER bi, bj        INTEGER bi, bj
37        INTEGER  I,  J, K        INTEGER  I,  J
38        _RL distY  CEOP
39        _RL lY  
40        _RL tauX, tauMax        _BARRIER
41    
 C--   Initialise surface bc arrays  
 C     In cartesian yc, delY and ly are meters.  
 C     In spherical polar yc, delY and ly are degrees  
       tauMax = 0.1 _d 0  
       lY = 0. _d 0  
       DO j=1,nY-1  
        lY = lY + delY(j)  
       ENDDO  
42        DO bj = myByLo(myThid), myByHi(myThid)        DO bj = myByLo(myThid), myByHi(myThid)
43         DO bi = myBxLo(myThid), myBxHi(myThid)         DO bi = myBxLo(myThid), myBxHi(myThid)
44          DO j=1-OLy,sNy+OLy          DO j=1-OLy,sNy+OLy
45           DO i=1-OLx,sNx+OLx           DO i=1-OLx,sNx+OLx
46            fu(i,j,bi,bj) = 0. _d 0            fu              (i,j,bi,bj) = 0. _d 0
47            fv(i,j,bi,bj) = 0. _d 0            fv              (i,j,bi,bj) = 0. _d 0
48           ENDDO            Qnet            (i,j,bi,bj) = 0. _d 0
49          ENDDO            EmPmR           (i,j,bi,bj) = 0. _d 0
50         ENDDO            SST             (i,j,bi,bj) = 0. _d 0
51        ENDDO            SSS             (i,j,bi,bj) = 0. _d 0
52        DO bj = myByLo(myThid), myByHi(myThid)  #ifdef SHORTWAVE_HEATING          
53         DO bi = myBxLo(myThid), myBxHi(myThid)            Qsw             (i,j,bi,bj) = 0. _d 0
54          DO j=1,sNy  #else
55           DO i=1,sNx            Qsw             (1,1,1,1)   = 0. _d 0
56            distY = yC(i,j,bi,bj)/lY  #endif
57  C         tauX  = -tauMax*cos(2. _d 0*PI*distY)  #ifdef ATMOSPHERIC_LOADING
58            tauX  = tauMax*sin(PI*distY)            pload           (i,j,bi,bj) = 0. _d 0
59            fu(i,j,bi,bj) = tauX/(delZ(1)*rhonil)  #endif
60  C         fu(i,j,bi,bj) = -tauMax            surfaceTendencyU(i,j,bi,bj) = 0. _d 0
61              surfaceTendencyV(i,j,bi,bj) = 0. _d 0
62              surfaceTendencyT(i,j,bi,bj) = 0. _d 0
63              surfaceTendencyS(i,j,bi,bj) = 0. _d 0
64    #ifndef INCLUDE_EXTERNAL_FORCING_PACKAGE
65              taux0           (i,j,bi,bj) = 0. _d 0
66              taux1           (i,j,bi,bj) = 0. _d 0
67              tauy0           (i,j,bi,bj) = 0. _d 0
68              tauy1           (i,j,bi,bj) = 0. _d 0
69              Qnet0           (i,j,bi,bj) = 0. _d 0
70              Qnet1           (i,j,bi,bj) = 0. _d 0
71              EmPmR0          (i,j,bi,bj) = 0. _d 0
72              EmPmR1          (i,j,bi,bj) = 0. _d 0
73              SST0            (i,j,bi,bj) = 0. _d 0
74              SST1            (i,j,bi,bj) = 0. _d 0
75              SSS0            (i,j,bi,bj) = 0. _d 0
76              SSS1            (i,j,bi,bj) = 0. _d 0
77    #ifdef SHORTWAVE_HEATING          
78              Qsw0            (i,j,bi,bj) = 0. _d 0
79              Qsw1            (i,j,bi,bj) = 0. _d 0
80    #endif
81    #ifdef ATMOSPHERIC_LOADING
82              pload0          (i,j,bi,bj) = 0. _d 0
83              pload1          (i,j,bi,bj) = 0. _d 0
84    #endif
85    #endif
86           ENDDO           ENDDO
87          ENDDO          ENDDO
88         ENDDO         ENDDO
89        ENDDO        ENDDO
90  C  C
91        _EXCH_XY_R4(fu  , myThid )        _BEGIN_MASTER(myThid)
92        _EXCH_XY_R4(fv  , myThid )        IF ( zonalWindFile .NE. ' '  ) THEN
93           CALL READ_FLD_XY_RS( zonalWindFile, ' ', fu, 0, myThid )
94          ENDIF
95          IF ( meridWindFile .NE. ' '  ) THEN
96           CALL READ_FLD_XY_RS( meridWindFile, ' ', fv, 0, myThid )
97          ENDIF
98          IF ( surfQFile .NE. ' '  ) THEN
99           CALL READ_FLD_XY_RS( surfQFile, ' ', Qnet, 0, myThid )
100          ENDIF
101          IF ( EmPmRfile .NE. ' '  ) THEN
102           CALL READ_FLD_XY_RS( EmPmRfile, ' ', EmPmR, 0, myThid )
103          ENDIF
104          IF ( thetaClimFile .NE. ' '  ) THEN
105           CALL READ_FLD_XY_RS( thetaClimFile, ' ', SST, 0, myThid )
106          ENDIF
107          IF ( saltClimFile .NE. ' '  ) THEN
108           CALL READ_FLD_XY_RS( saltClimFile, ' ', SSS, 0, myThid )
109          ENDIF
110    #ifdef SHORTWAVE_HEATING
111          IF ( surfQswFile .NE. ' '  ) THEN
112           CALL READ_FLD_XY_RS( surfQswFile, ' ', Qsw, 0, myThid )
113          ENDIF
114    #endif
115    #ifdef ATMOSPHERIC_LOADING
116          IF ( pLoadFile .NE. ' '  ) THEN
117           CALL READ_FLD_XY_RS( pLoadFile, ' ', pload, 0, myThid )
118          ENDIF
119    #endif
120          _END_MASTER(myThid)
121    C
122          _EXCH_XY_R4(fu   , myThid )
123          _EXCH_XY_R4(fv   , myThid )
124          _EXCH_XY_R4(Qnet , myThid )
125          _EXCH_XY_R4(EmPmR, myThid )
126          _EXCH_XY_R4(SST  , myThid )
127          _EXCH_XY_R4(SSS  , myThid )
128    #ifdef SHORTWAVE_HEATING
129          _EXCH_XY_R4(Qsw  , myThid )
130    #endif
131    #ifdef ATMOSPHERIC_LOADING
132          _EXCH_XY_R4(pload  , myThid )
133    C     CALL PLOT_FIELD_XYRS( pload, 'S/R INI_FORCING pload',1,myThid)
134    #endif
135    
136  CcnhDebugStarts  C     CALL PLOT_FIELD_XYRS( fu, 'S/R INI_FORCING FU',1,myThid)
137  Cdbg  WRITE(0,*) ' distY = ', distY  C     CALL PLOT_FIELD_XYRS( fv, 'S/R INI_FORCING FV',1,myThid)
 Cdbg  WRITE(0,*) '    ly = ', lY  
 Cdbg  WRITE(0,*) ' tauMax= ', tauMax  
 Cdbg  CALL PLOT_FIELD_XYR8( fu, 'INI_FORCING FU',1,myThid)  
 Cdbg  STOP 'INI_FORCING'  
 CcnhDebugEnds  
138    
139        RETURN        RETURN
140        END        END

Legend:
Removed from v.1.1.1.1  
changed lines
  Added in v.1.22.6.1

  ViewVC Help
Powered by ViewVC 1.1.22