/[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.8 by cnh, Fri Jun 12 19:33:33 1998 UTC revision 1.16 by adcroft, Wed May 5 18:32:34 1999 UTC
# Line 1  Line 1 
1  C $Header$  C $Header$
2    
3  #include "CPP_EEOPTIONS.h"  #include "CPP_OPTIONS.h"
4    
5  CStartOfInterface  CStartOfInterface
6        SUBROUTINE INI_FORCING( myThid )        SUBROUTINE INI_FORCING( myThid )
# Line 8  C     /================================= Line 8  C     /=================================
8  C     | SUBROUTINE INI_FORCING                                   |  C     | SUBROUTINE INI_FORCING                                   |
9  C     | o Set model initial forcing fields.                      |  C     | o Set model initial forcing fields.                      |
10  C     \==========================================================/  C     \==========================================================/
11          IMPLICIT NONE
12    
13  C     === Global variables ===  C     === Global variables ===
14  #include "SIZE.h"  #include "SIZE.h"
# Line 25  C     == Local variables == Line 26  C     == Local variables ==
26  C     iG, jG - Global coordinate index  C     iG, jG - Global coordinate index
27  C     bi,bj  - Loop counters  C     bi,bj  - Loop counters
28  C     I,J,K  C     I,J,K
 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  
29        INTEGER iG, jG        INTEGER iG, jG
30        INTEGER bi, bj        INTEGER bi, bj
31        INTEGER  I,  J, K        INTEGER  I,  J, K
       _RL distY  
       _RL lY  
       _RL tauX, tauMax  
32    
33        _BARRIER        _BARRIER
34    
35  C--   Initialise surface bc arrays        DO bj = myByLo(myThid), myByHi(myThid)
36        IF ( zonalWindFile .EQ. ' ' ) THEN         DO bi = myBxLo(myThid), myBxHi(myThid)
37  C      In cartesian yc, delY and ly are meters.          DO j=1-OLy,sNy+OLy
38  C      In spherical polar yc, delY and ly are degrees           DO i=1-OLx,sNx+OLx
39         tauMax = 0.1 _d 0            fu   (i,j,bi,bj) = 0. _d 0
40         lY = 0. _d 0            fv   (i,j,bi,bj) = 0. _d 0
41         DO j=1,nY-1            Qnet (i,j,bi,bj) = 0. _d 0
42          lY = lY + delY(j)            EmPmR(i,j,bi,bj) = 0. _d 0
43         ENDDO            SST  (i,j,bi,bj) = 0. _d 0
44         DO bj = myByLo(myThid), myByHi(myThid)            SSS  (i,j,bi,bj) = 0. _d 0
45          DO bi = myBxLo(myThid), myBxHi(myThid)            Qsw  (i,j,bi,bj) = 0. _d 0
          DO j=1-OLy,sNy+OLy  
           DO i=1-OLx,sNx+OLx  
            fu(i,j,bi,bj) = 0. _d 0  
            fv(i,j,bi,bj) = 0. _d 0  
           ENDDO  
          ENDDO  
         ENDDO  
        ENDDO  
        DO bj = myByLo(myThid), myByHi(myThid)  
         DO bi = myBxLo(myThid), myBxHi(myThid)  
          DO j=1,sNy  
           DO i=1,sNx  
            distY = (yC(i,j,bi,bj)-yC0)/lY  
            tauX  = -tauMax*cos(2. _d 0*PI*distY)  
            tauX  = tauMax*sin(PI*distY)  
            fu(i,j,bi,bj) = tauX/(delZ(1)*rhonil)  
 C          fu(i,j,bi,bj) = -tauMax  
           ENDDO  
46           ENDDO           ENDDO
47          ENDDO          ENDDO
48         ENDDO         ENDDO
49         fu(4,4,1,1) = fu(4,4,1,1)*0.917d0        ENDDO
50        ELSE  C
51         _BEGIN_MASTER(myThid)        _BEGIN_MASTER(myThid)
52          IF ( zonalWindFile .NE. ' '  ) THEN
53         CALL READ_FLD_XY_RS( zonalWindFile, ' ', fu, 0, myThid )         CALL READ_FLD_XY_RS( zonalWindFile, ' ', fu, 0, myThid )
        DO bj = myByLo(myThid), myByHi(myThid)  
         DO bi = myBxLo(myThid), myBxHi(myThid)  
          DO j=1,sNy  
           DO i=1,sNx  
            fu(i,j,bi,bj) = fu(i,j,bi,bj)/(delZ(1)*rhonil)*0.1  
           ENDDO  
          ENDDO  
         ENDDO  
        ENDDO  
        _END_MASTER(myThid)  
54        ENDIF        ENDIF
55  C        IF ( meridWindFile .NE. ' '  ) THEN
       _BARRIER  
   
       IF ( meridWindFile .EQ. ' ' ) THEN  
        DO bj = myByLo(myThid), myByHi(myThid)  
         DO bi = myBxLo(myThid), myBxHi(myThid)  
          DO j=1-OLy,sNy+OLy  
           DO i=1-OLx,sNx+OLx  
            fv(i,j,bi,bj) = 0. _d 0  
           ENDDO  
          ENDDO  
         ENDDO  
        ENDDO  
       ELSE  
        _BEGIN_MASTER(myThid)  
56         CALL READ_FLD_XY_RS( meridWindFile, ' ', fv, 0, myThid )         CALL READ_FLD_XY_RS( meridWindFile, ' ', fv, 0, myThid )
        DO bj = myByLo(myThid), myByHi(myThid)  
         DO bi = myBxLo(myThid), myBxHi(myThid)  
          DO j=1,sNy  
           DO i=1,sNx  
            fv(i,j,bi,bj) = fv(i,j,bi,bj)/(delZ(1)*rhonil)*0.1  
           ENDDO  
          ENDDO  
         ENDDO  
        ENDDO  
        _END_MASTER(myThid)  
57        ENDIF        ENDIF
58          IF ( surfQFile .NE. ' '  ) THEN
59           CALL READ_FLD_XY_RS( surfQFile, ' ', Qnet, 0, myThid )
60          ENDIF
61          IF ( EmPmRfile .NE. ' '  ) THEN
62           CALL READ_FLD_XY_RS( EmPmRfile, ' ', EmPmR, 0, myThid )
63          ENDIF
64          IF ( thetaClimFile .NE. ' '  ) THEN
65           CALL READ_FLD_XY_RS( thetaClimFile, ' ', SST, 0, myThid )
66          ENDIF
67          IF ( saltClimFile .NE. ' '  ) THEN
68           CALL READ_FLD_XY_RS( saltClimFile, ' ', SSS, 0, myThid )
69          ENDIF
70    c     IF ( surfQswFile .NE. ' '  ) THEN
71    c      CALL READ_FLD_XY_RS( surfQswFile, ' ', Qsw, 0, myThid )
72    c     ENDIF
73          _END_MASTER(myThid)
74  C  C
75        _EXCH_XY_R4(fu  , myThid )        _EXCH_XY_R4(fu   , myThid )
76        _EXCH_XY_R4(fv  , myThid )        _EXCH_XY_R4(fv   , myThid )
77          _EXCH_XY_R4(Qnet , myThid )
78          _EXCH_XY_R4(EmPmR, myThid )
79          _EXCH_XY_R4(SST  , myThid )
80          _EXCH_XY_R4(SSS  , myThid )
81          _EXCH_XY_R4(Qsw  , myThid )
82    
83  CcnhDebugStarts  C     CALL PLOT_FIELD_XYRS( fu, 'S/R INI_FORCING FU',1,myThid)
84  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  
       CALL PLOT_FIELD_XYR8( fu, 'INI_FORCING FU',1,myThid)  
       CALL PLOT_FIELD_XYR8( fv, 'INI_FORCING FV',1,myThid)  
 Cdbg  STOP 'INI_FORCING'  
 CcnhDebugEnds  
85    
86        RETURN        RETURN
87        END        END

Legend:
Removed from v.1.8  
changed lines
  Added in v.1.16

  ViewVC Help
Powered by ViewVC 1.1.22