/[MITgcm]/MITgcm_contrib/dgoldberg/streamice/streamice_init_fixed.F
ViewVC logotype

Diff of /MITgcm_contrib/dgoldberg/streamice/streamice_init_fixed.F

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

revision 1.3 by dgoldberg, Wed Jan 9 21:56:18 2013 UTC revision 1.5 by dgoldberg, Thu Mar 7 15:23:19 2013 UTC
# Line 29  CEOP Line 29  CEOP
29    
30  C     !LOCAL VARIABLES:  C     !LOCAL VARIABLES:
31  C     === Local variables ===  C     === Local variables ===
32        INTEGER bi, bj, i, j, Gi, Gj, m        INTEGER bi, bj, i, j, Gi, Gj, m, k
33        INTEGER maskFlag, hmaskFlag        INTEGER maskFlag, hmaskFlag
34        _RL x, y        _RL x, y
35          _RS dummyRS
36        CHARACTER*(MAX_LEN_MBUF) msgBuf        CHARACTER*(MAX_LEN_MBUF) msgBuf
37    
38  #ifdef ALLOW_STREAMICE  #ifdef ALLOW_STREAMICE
# Line 88  C       The 0 is the "iteration" argumen Line 89  C       The 0 is the "iteration" argumen
89       &                    SQUEEZE_RIGHT , 1)       &                    SQUEEZE_RIGHT , 1)
90        ENDIF        ENDIF
91    
92          
93    #ifdef ALLOW_COST
94          IF ( STREAMICEcostMaskFile .NE. ' ') THEN
95            _BARRIER
96    C       The 0 is the "iteration" argument. The ' ' is an empty suffix
97            CALL READ_FLD_XY_RL( STREAMICEcostMaskFile, ' ',
98         &   STREAMICE_cost_mask, 0, myThid )
99           ELSE
100            WRITE(msgBuf,'(A)') 'COST MASK - NOT IMPLENTED'
101            CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
102         &                    SQUEEZE_RIGHT , 1)
103    
104           DO bj = myByLo(myThid), myByHi(myThid)
105            DO bi = myBxLo(myThid), myBxHi(myThid)
106             DO j=1,sNy
107              DO i=1,sNx
108               STREAMICE_cost_mask (i,j,bi,bj) = 1.0
109              ENDDO
110             ENDDO
111            ENDDO
112           ENDDO
113    
114          ENDIF
115    #endif
116          
117    
118  !    READ IN FILES FOR BOUNDARY MASKS AND DIRICH VALUES  !    READ IN FILES FOR BOUNDARY MASKS AND DIRICH VALUES
119  #ifdef STREAMICE_GEOM_FILE_SETUP  #ifdef STREAMICE_GEOM_FILE_SETUP
120    
# Line 109  C       The 0 is the "iteration" argumen Line 136  C       The 0 is the "iteration" argumen
136         CALL PRINT_ERROR( msgBuf, myThid)         CALL PRINT_ERROR( msgBuf, myThid)
137        ENDIF        ENDIF
138    
139          _EXCH_XY_RS(temp_ufacemask,myThid)
140          _EXCH_XY_RS(temp_ufacemask,myThid)
141    
142        IF ( STREAMICEuDirichValsFile .NE. ' ') THEN        IF ( STREAMICEuDirichValsFile .NE. ' ') THEN
143          _BARRIER          _BARRIER
144         CALL READ_FLD_XY_RL ( STREAMICEuDirichValsFile, ' ',         CALL READ_FLD_XY_RL ( STREAMICEuDirichValsFile, ' ',
# Line 140  C       The 0 is the "iteration" argumen Line 170  C       The 0 is the "iteration" argumen
170         WRITE(msgBuf,'(A)') 'H MASK FILE - NOT SET'         WRITE(msgBuf,'(A)') 'H MASK FILE - NOT SET'
171         CALL PRINT_ERROR( msgBuf, myThid)         CALL PRINT_ERROR( msgBuf, myThid)
172        ENDIF        ENDIF
173          
174          _EXCH_XY_RS(temp_hmask,myThid)
175    
176    
177    #ifdef ALLOW_CTRL
178          DO bj = myByLo(myThid), myByHi(myThid)
179           DO bi = myBxLo(myThid), myBxHi(myThid)
180            DO j=1,sNy
181             DO i=1,sNx
182              IF (temp_hmask(i,j,bi,bj) .eq. 1.0) THEN
183               DO k=1,Nr
184               STREAMICE_ctrl_mask(i,j,k,bi,bj) = 1. _d 0
185               ENDDO
186              ENDIF
187             ENDDO
188            ENDDO
189           ENDDO
190          ENDDO
191    #endif
192    
193  #endif  #endif
194    
# Line 284  C         INITIALIZE BOUNDARY CONDS AT N Line 333  C         INITIALIZE BOUNDARY CONDS AT N
333  #else  #else
334  ! BOUNDARIES CONFIGURED FROM FILES  ! BOUNDARIES CONFIGURED FROM FILES
335    
336    
337            IF (temp_hmask(i,j,bi,bj).eq.1.0 .or.            IF (temp_hmask(i,j,bi,bj).eq.1.0 .or.
338       &        temp_hmask(i,j,bi,bj).eq.0.0) THEN       &        temp_hmask(i,j,bi,bj).eq.0.0 .or.
339         &        temp_hmask(i-1,j,bi,bj).eq.1.0) THEN
340    
341            ! WEST FACE OF CELL            ! WEST FACE OF CELL
342             maskFlag=INT(temp_ufacemask(i,j,bi,bj))             maskFlag=INT(temp_ufacemask(i,j,bi,bj))
# Line 303  C         INITIALIZE BOUNDARY CONDS AT N Line 354  C         INITIALIZE BOUNDARY CONDS AT N
354              STREAMICE_ufacemask_bdry (i,j,bi,bj) = -1.0              STREAMICE_ufacemask_bdry (i,j,bi,bj) = -1.0
355             ENDIF             ENDIF
356    
357              ENDIF
358    
359              IF (temp_hmask(i,j,bi,bj).eq.1.0 .or.
360         &        temp_hmask(i,j,bi,bj).eq.0.0) THEN
361    
362             ! EAST FACE OF CELL             ! EAST FACE OF CELL
363             maskFlag=INT(temp_ufacemask(i+1,j,bi,bj))             maskFlag=INT(temp_ufacemask(i+1,j,bi,bj))
364             IF (maskFlag.eq.2) THEN             IF (maskFlag.eq.2) THEN
# Line 319  C         INITIALIZE BOUNDARY CONDS AT N Line 375  C         INITIALIZE BOUNDARY CONDS AT N
375              STREAMICE_ufacemask_bdry (i+1,j,bi,bj) = -1.0              STREAMICE_ufacemask_bdry (i+1,j,bi,bj) = -1.0
376             ENDIF             ENDIF
377    
378              ENDIF
379    
380              IF (temp_hmask(i,j,bi,bj).eq.1.0 .or.
381         &        temp_hmask(i,j,bi,bj).eq.0.0 .or.
382         &        temp_hmask(i,j-1,bi,bj).eq.1.0) THEN
383    
384             ! SOUTH FACE OF CELL             ! SOUTH FACE OF CELL
385             maskFlag=INT(temp_vfacemask(i,j,bi,bj))             maskFlag=INT(temp_vfacemask(i,j,bi,bj))
386             IF (maskFlag.eq.2) THEN             IF (maskFlag.eq.2) THEN
# Line 335  C         INITIALIZE BOUNDARY CONDS AT N Line 397  C         INITIALIZE BOUNDARY CONDS AT N
397              STREAMICE_vfacemask_bdry (i,j,bi,bj) = -1.0              STREAMICE_vfacemask_bdry (i,j,bi,bj) = -1.0
398             ENDIF             ENDIF
399    
400              ENDIF
401    
402              IF (temp_hmask(i,j,bi,bj).eq.1.0 .or.
403         &        temp_hmask(i,j,bi,bj).eq.0.0) THEN
404    
405    
406             ! NORTH FACE OF CELL             ! NORTH FACE OF CELL
407             maskFlag=INT(temp_vfacemask(i,j+1,bi,bj))             maskFlag=INT(temp_vfacemask(i,j+1,bi,bj))
408             IF (maskFlag.eq.2) THEN             IF (maskFlag.eq.2) THEN
# Line 360  C         INITIALIZE BOUNDARY CONDS AT N Line 428  C         INITIALIZE BOUNDARY CONDS AT N
428         ENDDO         ENDDO
429        ENDDO        ENDDO
430    
431    #ifdef ALLOW_CTRL
432    !      _EXCH_XY_RL(STREAMICE_ctrl_mask, myThid )
433          CALL ACTIVE_WRITE_GEN_RS( 'maskCtrlL', STREAMICE_ctrl_mask,
434         &  'XY', Nr, 1, .FALSE., 0, mythid, dummyRS )
435    #endif
436    
437    #ifdef ALLOW_COST
438    !      _EXCH_XY_RL(STREAMICE_ctrl_mask, myThid )
439          CALL WRITE_FLD_XY_RS ( 'maskCost', '',
440         & STREAMICE_cost_mask, 0, myThid )
441    #endif
442    
443    
444        _EXCH_XY_RL(k1AtC_str, myThid )        _EXCH_XY_RL(k1AtC_str, myThid )
445        _EXCH_XY_RL(k2AtC_str, myThid )        _EXCH_XY_RL(k2AtC_str, myThid )
446        _EXCH_XY_RL(STREAMICE_ufacemask_bdry, myThid )        _EXCH_XY_RL(STREAMICE_ufacemask_bdry, myThid )
# Line 373  C         INITIALIZE BOUNDARY CONDS AT N Line 454  C         INITIALIZE BOUNDARY CONDS AT N
454        Xquad (2) = .5 * (1.+1./sqrt(3.))        Xquad (2) = .5 * (1.+1./sqrt(3.))
455    
456        CALL STREAMICE_INIT_PHI( myThid )        CALL STREAMICE_INIT_PHI( myThid )
   
457                
458    
459  #endif  #endif

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.5

  ViewVC Help
Powered by ViewVC 1.1.22