/[MITgcm]/MITgcm/pkg/thsice/thsice_main.F
ViewVC logotype

Diff of /MITgcm/pkg/thsice/thsice_main.F

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

revision 1.1 by jmc, Sun Nov 23 01:20:13 2003 UTC revision 1.2 by jmc, Wed Apr 7 23:40:34 2004 UTC
# Line 3  C $Name$ Line 3  C $Name$
3    
4  #include "THSICE_OPTIONS.h"  #include "THSICE_OPTIONS.h"
5    
6    CBOP
7  C     !ROUTINE: THSICE_MAIN  C     !ROUTINE: THSICE_MAIN
8  C     !INTERFACE:  C     !INTERFACE:
9        SUBROUTINE THSICE_MAIN(        SUBROUTINE THSICE_MAIN(
10       I                        myTime, myIter, myThid )       I                        myTime, myIter, myThid )
11    C     !DESCRIPTION: \bv
12  C     *==========================================================*  C     *==========================================================*
13  C     | SUBROUTINE  THSICE_MAIN              C     | S/R  THSICE_MAIN            
14  C     | o Therm_SeaIce main routine.  C     | o Therm_SeaIce main routine.
15  C     |   step forward Thermodynamic_SeaIce variables and modify  C     |   step forward Thermodynamic_SeaIce variables and modify
16  C     |    ocean surface forcing accordingly.  C     |    ocean surface forcing accordingly.
# Line 16  C     *================================= Line 18  C     *=================================
18    
19  C     !USES:  C     !USES:
20        IMPLICIT NONE        IMPLICIT NONE
21    
22  C     === Global variables ===  C     === Global variables ===
23  #include "SIZE.h"  #include "SIZE.h"
24  #include "EEPARAMS.h"  #include "EEPARAMS.h"
25  #include "PARAMS.h"  #include "PARAMS.h"
26    #include "GRID.h"
27    #include "DYNVARS.h"
28  #include "FFIELDS.h"  #include "FFIELDS.h"
29  #include "THSICE_PARAMS.h"  #include "THSICE_PARAMS.h"
30  #include "THSICE.h"  #include "THSICE_VARS.h"
31    #ifdef ALLOW_BULK_FORCE
32    #include "BULKF.h"
33    #endif
34    
35  C     !INPUT/OUTPUT PARAMETERS:  C     !INPUT/OUTPUT PARAMETERS:
36  C     === Routine arguments ===  C     === Routine arguments ===
# Line 32  C     myThid :: thread number for this i Line 40  C     myThid :: thread number for this i
40        _RL  myTime        _RL  myTime
41        INTEGER myIter        INTEGER myIter
42        INTEGER myThid        INTEGER myThid
43    CEOP
44    
45  #ifdef ALLOW_THSICE  #ifdef ALLOW_THSICE
46  C     !LOCAL VARIABLES:  C     !LOCAL VARIABLES:
# Line 40  C     === Local variables === Line 49  C     === Local variables ===
49        INTEGER bi,bj        INTEGER bi,bj
50        INTEGER iMin, iMax        INTEGER iMin, iMax
51        INTEGER jMin, jMax        INTEGER jMin, jMax
52          _RL prcAtm(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
53          _RL evpAtm(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
54          _RL flxSW (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
55    
56        _RL tauFac        _RL tauFac
57    
# Line 59  C---+----1----+----2----+----3----+----4 Line 71  C---+----1----+----2----+----3----+----4
71    
72        DO bj=myByLo(myThid),myByHi(myThid)        DO bj=myByLo(myThid),myByHi(myThid)
73         DO bi=myBxLo(myThid),myBxHi(myThid)         DO bi=myBxLo(myThid),myBxHi(myThid)
74    
75             DO j = jMin, jMax
76              DO i = iMin, iMax
77               hOceMxL(i,j,bi,bj) = hfacC(i,j,1,bi,bj)*drF(1)
78               tOceMxL(i,j,bi,bj) = theta(i,j,1,bi,bj)
79               sOceMxL(i,j,bi,bj) = salt (i,j,1,bi,bj)
80               v2ocMxL(i,j,bi,bj) =
81         &              ( uvel(i,j,1,bi,bj)*uvel(i,j,1,bi,bj)
82         &              + uvel(i+1,j,1,bi,bj)*uvel(i+1,j,1,bi,bj)
83         &              + vvel(i,j+1,1,bi,bj)*vvel(i,j+1,1,bi,bj)
84         &              + vvel(i,j,1,bi,bj)*vvel(i,j,1,bi,bj)
85         &              )*0.5 _d 0
86               prcAtm(i,j) = 0.
87               evpAtm(i,j) = 0.
88               flxSW (i,j) = 0.
89               snowPrc(i,j,bi,bj) = 0. _d 0
90    #ifdef ALLOW_BULK_FORCE
91               prcAtm(i,j) = ( rain(i,j,bi,bj)+runoff(i,j,bi,bj) )*rhofw
92               flxSW (i,j) = solar(i,j,bi,bj)
93               IF ( iceMask(i,j,bi,bj).GT.0. _d 0
94         &       .AND. Tair(i,j,bi,bj).LE.Tf0kel )  THEN
95                 snowPrc(i,j,bi,bj) = rain(i,j,bi,bj)*rhofw
96               ENDIF
97    #endif
98              ENDDO
99             ENDDO
100    
101           CALL THSICE_STEP_FWD(           CALL THSICE_STEP_FWD(
102       I                     bi, bj, iMin, iMax, jMin, jMax,       I                     bi, bj, iMin, iMax, jMin, jMax,
103         I                     prcAtm,
104         U                     evpAtm, flxSW,
105       I                     myTime, myIter, myThid )       I                     myTime, myIter, myThid )
106           IF ( thSIce_taveFreq .GT. 0. _d 0 )  
107       &   CALL THSICE_AVE( bi,bj, mythid )           CALL THSICE_AVE(
108         I                   evpAtm, flxSW,
109         I                   bi,bj, myTime, myIter, myThid )
110    
111  c      ENDDO  c      ENDDO
112  c     ENDDO  c     ENDDO
113    

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

  ViewVC Help
Powered by ViewVC 1.1.22