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

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

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

revision 1.16 by dgoldberg, Wed Jun 12 20:48:08 2013 UTC revision 1.17 by dgoldberg, Wed Aug 27 19:29:14 2014 UTC
# Line 1  Line 1 
1  C $Header$  C $Header$
2  C $Name$  C $Name$
3    
4  #ifdef ALLOW_COST  #ifdef ALLOW_COST
5  # include "COST_OPTIONS.h"  # include "COST_OPTIONS.h"
6  #endif  #endif
# Line 35  CEndOfInterface Line 36  CEndOfInterface
36  #ifdef ALLOW_STREAMICE  #ifdef ALLOW_STREAMICE
37  C     === Local variables ===  C     === Local variables ===
38  C     I,J,bi,bj - Loop counters  C     I,J,bi,bj - Loop counters
39        INTEGER i, j, k, bi, bj, Gi, Gj        INTEGER i, j, k, bi, bj, Gi, Gj, r
40        INTEGER col_y, col_x        INTEGER col_y, col_x
41        _RL slope_pos, c1, x, y, lenx, leny        _RL slope_pos, c1, x, y, lenx, leny
42        CHARACTER*(MAX_LEN_MBUF) msgBuf        CHARACTER*(MAX_LEN_MBUF) msgBuf
# Line 48  C     ZERO OUT FLOATING POINT ARRAYS Line 49  C     ZERO OUT FLOATING POINT ARRAYS
49    
50        DO bj = myByLo(myThid), myByHi(myThid)        DO bj = myByLo(myThid), myByHi(myThid)
51         DO bi = myBxLo(myThid), myBxHi(myThid)         DO bi = myBxLo(myThid), myBxHi(myThid)
52          DO j=1-Oly,sNy+Oly          DO j=1-OLy,sNy+OLy
53           DO i=1-Olx,sNx+Olx           DO i=1-OLx,sNx+OLx
54            H_streamIce(i,j,bi,bj) = 0. _d 0            H_streamIce(i,j,bi,bj) = 0. _d 0
55            U_streamice(i,j,bi,bj) = 0. _d 0            U_streamice(i,j,bi,bj) = 0. _d 0
56            V_streamice(i,j,bi,bj) = 0. _d 0            V_streamice(i,j,bi,bj) = 0. _d 0
# Line 61  C     ZERO OUT FLOATING POINT ARRAYS Line 62  C     ZERO OUT FLOATING POINT ARRAYS
62            area_shelf_streamice(i,j,bi,bj) = 0. _d 0            area_shelf_streamice(i,j,bi,bj) = 0. _d 0
63            mass_ice_streamice(i,j,bi,bj) = 0. _d 0            mass_ice_streamice(i,j,bi,bj) = 0. _d 0
64            BDOT_streamice(i,j,bi,bj) = 0. _d 0            BDOT_streamice(i,j,bi,bj) = 0. _d 0
65    #ifdef ALLOW_STREAMICE_TIMEDEP_FORCING
66              BDOT_streamice1(i,j,bi,bj) = 0. _d 0
67    #endif          
68            ADOT_streamice(i,j,bi,bj) = streamice_adot_uniform            ADOT_streamice(i,j,bi,bj) = streamice_adot_uniform
69            C_basal_friction(i,j,bi,bj) = C_basal_fric_const            C_basal_friction(i,j,bi,bj) = C_basal_fric_const
70    #ifndef STREAMICE_3D_GLEN_CONST
71            B_glen(i,j,bi,bj) = B_glen_isothermal            B_glen(i,j,bi,bj) = B_glen_isothermal
72    #else
73              do k=1,Nr
74               B_glen(i,j,k,bi,bj) = B_glen_isothermal
75              enddo
76    #endif
77            H_streamice_prev(i,j,bi,bj) = 0. _d 0            H_streamice_prev(i,j,bi,bj) = 0. _d 0
78    #ifdef STREAMICE_STRESS_BOUNDARY_CONTROL
79              STREAMICE_u_normal_pert(i,j,bi,bj) = 0. _d 0      
80              STREAMICE_v_normal_pert(i,j,bi,bj) = 0. _d 0      
81              STREAMICE_u_shear_pert(i,j,bi,bj) = 0. _d 0      
82              STREAMICE_v_shear_pert(i,j,bi,bj) = 0. _d 0      
83              STREAMICE_u_normal_stress(i,j,bi,bj) = 0. _d 0
84              STREAMICE_v_normal_stress(i,j,bi,bj) = 0. _d 0
85              STREAMICE_u_shear_stress(i,j,bi,bj) = 0. _d 0
86              STREAMICE_v_shear_stress(i,j,bi,bj) = 0. _d 0
87    #ifdef ALLOW_STREAMICE_TIMEDEP_FORCING
88              STREAMICE_u_normal_stress1(i,j,bi,bj) = 0. _d 0
89              STREAMICE_v_normal_stress1(i,j,bi,bj) = 0. _d 0
90              STREAMICE_u_shear_stress1(i,j,bi,bj) = 0. _d 0
91              STREAMICE_v_shear_stress1(i,j,bi,bj) = 0. _d 0
92    #endif
93    #endif
94  #ifdef ALLOW_STREAMICE_2DTRACER  #ifdef ALLOW_STREAMICE_2DTRACER
95  #ifdef STREAMICE_TRACER_AB  #ifdef STREAMICE_TRACER_AB
96           GAD_trac_2d (i,j,bi,bj) = 0. _d 0           GAD_trac_2d (i,j,bi,bj) = 0. _d 0
# Line 86  C     ZERO OUT FLOATING POINT ARRAYS Line 112  C     ZERO OUT FLOATING POINT ARRAYS
112            do k=1,Nr            do k=1,Nr
113             visc_streamice_full(i,j,k,bi,bj) =             visc_streamice_full(i,j,k,bi,bj) =
114       &     eps_glen_min**((1-n_glen)/n_glen)       &     eps_glen_min**((1-n_glen)/n_glen)
115            enddo                  enddo
116            streamice_taubx (i,j,bi,bj) = 0. _d 0            streamice_taubx (i,j,bi,bj) = 0. _d 0
117            streamice_tauby (i,j,bi,bj) = 0. _d 0            streamice_tauby (i,j,bi,bj) = 0. _d 0
118  #endif  #endif
# Line 95  C     ZERO OUT FLOATING POINT ARRAYS Line 121  C     ZERO OUT FLOATING POINT ARRAYS
121    
122  #ifdef ALLOW_COST_TEST  #ifdef ALLOW_COST_TEST
123          cost_func1_streamice (bi,bj) = 0.0          cost_func1_streamice (bi,bj) = 0.0
124            cost_vel_streamice (bi,bj) = 0.0
125            cost_surf_streamice (bi,bj) = 0.0
126  #endif  #endif
127    
128         ENDDO         ENDDO
# Line 123  C     INIT. INTEGER ARRAYS Line 151  C     INIT. INTEGER ARRAYS
151    
152        DO bj = myByLo(myThid), myByHi(myThid)        DO bj = myByLo(myThid), myByHi(myThid)
153         DO bi = myBxLo(myThid), myBxHi(myThid)         DO bi = myBxLo(myThid), myBxHi(myThid)
154          DO j=1-Oly,sNy+Oly          DO j=1-OLy,sNy+OLy
155           DO i=1-Olx,sNx+Olx           DO i=1-OLx,sNx+OLx
156            STREAMICE_hmask(i,j,bi,bj) = -1.0            STREAMICE_hmask(i,j,bi,bj) = -1.0
157            STREAMICE_umask(i,j,bi,bj) = 0.0            STREAMICE_umask(i,j,bi,bj) = 0.0
158            STREAMICE_vmask(i,j,bi,bj) = 0.0            STREAMICE_vmask(i,j,bi,bj) = 0.0
# Line 142  C     INIT. INTEGER ARRAYS Line 170  C     INIT. INTEGER ARRAYS
170        IF ( STREAMICEtopogFile .NE. ' ' ) THEN        IF ( STREAMICEtopogFile .NE. ' ' ) THEN
171          _BARRIER          _BARRIER
172  C The 0 is the "iteration" argument. The ' ' is an empty suffix  C The 0 is the "iteration" argument. The ' ' is an empty suffix
173         CALL READ_FLD_XY_RS( STREAMICEtopogFile, '',         CALL READ_FLD_XY_RL( STREAMICEtopogFile, '',
174       &      R_low_si, 0, myThid )       &      R_low_si, 0, myThid )
175          
176        ELSE        ELSE
177          WRITE(msgBuf,'(A)') 'STREAMICE TOPOG - FILENAME MISSING'          WRITE(msgBuf,'(A)') 'STREAMICE TOPOG - FILENAME MISSING'
178          CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,          CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
# Line 155  C The 0 is the "iteration" argument. The Line 183  C The 0 is the "iteration" argument. The
183  ! initialize thickness  ! initialize thickness
184    
185  #ifndef STREAMICE_GEOM_FILE_SETUP  #ifndef STREAMICE_GEOM_FILE_SETUP
186        
187        IF ( STREAMICEthickInit.EQ.'PARAM' ) THEN        IF ( STREAMICEthickInit.EQ.'PARAM' ) THEN
188    
189        WRITE(msgBuf,'(A)') 'initializing analytic thickness'        WRITE(msgBuf,'(A)') 'initializing analytic thickness'
# Line 163  C The 0 is the "iteration" argument. The Line 191  C The 0 is the "iteration" argument. The
191       &                    SQUEEZE_RIGHT , 1)       &                    SQUEEZE_RIGHT , 1)
192    
193         slope_pos = shelf_edge_pos - shelf_flat_width         slope_pos = shelf_edge_pos - shelf_flat_width
194         c1 = 0.0         c1 = 0.0
195         IF (shelf_slope_scale .GT. 0.0) THEN         IF (shelf_slope_scale .GT. 0.0) THEN
196          c1 = 1.0 / shelf_slope_scale          c1 = 1.0 / shelf_slope_scale
197         ENDIF         ENDIF
# Line 174  C The 0 is the "iteration" argument. The Line 202  C The 0 is the "iteration" argument. The
202            DO i=1,sNx            DO i=1,sNx
203             Gi = (myXGlobalLo-1)+(bi-1)*sNx+i             Gi = (myXGlobalLo-1)+(bi-1)*sNx+i
204             Gj = (myYGlobalLo-1)+(bj-1)*sNy+j             Gj = (myYGlobalLo-1)+(bj-1)*sNy+j
205              
206             IF ((Gi.lt.Nx).and.(Gj.lt.Ny)) THEN             IF ((Gi.lt.Nx).and.(Gj.lt.Ny)) THEN
207                
208  C             IF (flow_dir .EQ. 2.0) THEN  C             IF (flow_dir .EQ. 2.0) THEN
209              IF (.TRUE.) THEN              IF (.TRUE.) THEN
210               IF (xC(i-1,j,bi,bj).GE.shelf_edge_pos) THEN               IF (xC(i-1,j,bi,bj).GE.shelf_edge_pos) THEN
# Line 187  C             IF (flow_dir .EQ. 2.0) THE Line 215  C             IF (flow_dir .EQ. 2.0) THE
215                IF (xC(i,j,bi,bj).GT.slope_pos) THEN                IF (xC(i,j,bi,bj).GT.slope_pos) THEN
216                 H_streamice (i,j,bi,bj) = shelf_min_draft                 H_streamice (i,j,bi,bj) = shelf_min_draft
217                ELSE                ELSE
218                 H_streamice (i,j,bi,bj) = (shelf_min_draft +                 H_streamice (i,j,bi,bj) = (shelf_min_draft +
219       &          (shelf_max_draft - shelf_min_draft) *       &          (shelf_max_draft - shelf_min_draft) *
220       &          min (1.0, (c1*(slope_pos-xC(i,j,bi,bj)))**2))       &          min (oneRL, (c1*(slope_pos-xC(i,j,bi,bj)))**2))
221                ENDIF                ENDIF
222    
223                IF (xC(i,j,bi,bj).GT.shelf_edge_pos) THEN                IF (xC(i,j,bi,bj).GT.shelf_edge_pos) THEN
# Line 203  C             IF (flow_dir .EQ. 2.0) THE Line 231  C             IF (flow_dir .EQ. 2.0) THE
231                  H_streamice(i,j,bi,bj) = 0.0                  H_streamice(i,j,bi,bj) = 0.0
232                 ENDIF                 ENDIF
233                ELSE                ELSE
234                 area_shelf_streamice(i,j,bi,bj) = rA(i,j,bi,bj)                 area_shelf_streamice(i,j,bi,bj) = rA(i,j,bi,bj)
235                 STREAMICE_hmask(i,j,bi,bj) = 1.0                 STREAMICE_hmask(i,j,bi,bj) = 1.0
236                ENDIF                ENDIF
237    
238    
239               ENDIF               ENDIF
240              ENDIF              ENDIF
241             ENDIF               ENDIF
242            ENDDO            ENDDO
243           ENDDO           ENDDO
244          ENDDO          ENDDO
# Line 251  C The 0 is the "iteration" argument. The Line 279  C The 0 is the "iteration" argument. The
279          CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,          CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
280       &                    SQUEEZE_RIGHT , 1)       &                    SQUEEZE_RIGHT , 1)
281         ENDIF         ENDIF
282          
283        ELSE        ELSE
284    
285         WRITE(msgBuf,'(A)') 'INIT THICKNESS - NOT IMPLENTED'         WRITE(msgBuf,'(A)') 'INIT THICKNESS - NOT IMPLENTED'
# Line 282  C The 0 is the "iteration" argument. The Line 310  C The 0 is the "iteration" argument. The
310         CALL PRINT_ERROR( msgBuf, myThid)         CALL PRINT_ERROR( msgBuf, myThid)
311        ENDIF        ENDIF
312    
313  #endif  #endif
314  ! STREAMICE_GEOM_FILE_SETUP  ! STREAMICE_GEOM_FILE_SETUP
315    
316    
317          IF ( .NOT. ( startTime .EQ. baseTime .AND.  nIter0 .EQ. 0
318         &     .AND. pickupSuff .EQ. ' ') ) THEN
319                  
320                              CALL STREAMICE_READ_PICKUP ( myThid )
321                  
322          ENDIF
323    
324  ! finish initialize thickness  ! finish initialize thickness
325    
326  ! initialize glen constant  ! initialize glen constant
# Line 295  C The 0 is the "iteration" argument. The Line 330  C The 0 is the "iteration" argument. The
330         IF ( STREAMICEGlenConstFile .NE. ' ' ) THEN         IF ( STREAMICEGlenConstFile .NE. ' ' ) THEN
331          _BARRIER          _BARRIER
332    
333          CALL READ_FLD_XY_RL( STREAMICEGlenConstFile, ' ',  #ifdef STREAMICE_3D_GLEN_CONST
334    
335            CALL READ_FLD_XYZ_RL( STREAMICEGlenConstFile, ' ',
336       &      B_glen, 0, myThid )       &      B_glen, 0, myThid )
337    
338    
339    #else
340    
341            CALL READ_FLD_XY_RL( STREAMICEGlenConstFile, ' ',
342         &      B_glen, 0, myThid )
343    
344    #endif
345         ELSE         ELSE
346          WRITE(msgBuf,'(A)') 'INIT GLEN - FILENAME MISSING'          WRITE(msgBuf,'(A)') 'INIT GLEN - FILENAME MISSING'
347          CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,          CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
348       &                    SQUEEZE_RIGHT , 1)       &                    SQUEEZE_RIGHT , 1)
349         ENDIF         ENDIF
350          
351        ELSE IF (STREAMICEGlenConstConfig.EQ.'UNIFORM' ) THEN        ELSE IF (STREAMICEGlenConstConfig.EQ.'UNIFORM' ) THEN
352    
353          DO bj = myByLo(myThid), myByHi(myThid)          DO bj = myByLo(myThid), myByHi(myThid)
354           DO bi = myBxLo(myThid), myBxHi(myThid)           DO bi = myBxLo(myThid), myBxHi(myThid)
355            DO j=1,sNy            DO j=1,sNy
356             DO i=1,sNx             DO i=1,sNx
357              B_glen(i,j,bi,bj) = B_glen_isothermal  #ifdef STREAMICE_3D_GLEN_CONST
358                DO r=1,Nr
359                 B_glen(i,j,r,bi,bj) = B_glen_isothermal
360                ENDDO
361    #else
362                 B_glen(i,j,bi,bj) = B_glen_isothermal
363    #endif
364             ENDDO             ENDDO
365            ENDDO            ENDDO
366           ENDDO           ENDDO
# Line 325  C The 0 is the "iteration" argument. The Line 375  C The 0 is the "iteration" argument. The
375    
376  ! finish initialize glen constant  ! finish initialize glen constant
377    
378    ! initialize melt rates
379    
380          IF ( STREAMICEBdotConfig.EQ.'FILE' ) THEN
381    
382           IF ( STREAMICEBdotFile .NE. ' ' ) THEN
383            _BARRIER
384    
385            CALL READ_FLD_XY_RL( STREAMICEBdotFile, ' ',
386         &      BDOT_streamice, 0, myThid )
387    
388           ELSE
389            WRITE(msgBuf,'(A)') 'INIT BDOT - FILENAME MISSING'
390            CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
391         &                    SQUEEZE_RIGHT , 1)
392           ENDIF
393    
394          ENDIF
395    
396    ! finish initialize melt rates
397    
398  ! initialize basal traction  ! initialize basal traction
399    
400        IF ( STREAMICEbasalTracConfig.EQ.'FILE' ) THEN        IF ( STREAMICEbasalTracConfig.EQ.'FILE' ) THEN
# Line 332  C The 0 is the "iteration" argument. The Line 402  C The 0 is the "iteration" argument. The
402         IF ( STREAMICEbasalTracFile .NE. ' ' ) THEN         IF ( STREAMICEbasalTracFile .NE. ' ' ) THEN
403          _BARRIER          _BARRIER
404    
405          CALL READ_FLD_XY_RL( STREAMICEbasalTracFile, ' ',          CALL READ_FLD_XY_RL( STREAMICEbasalTracFile, ' ',
406       &      C_basal_friction, 0, myThid )       &      C_basal_friction, 0, myThid )
407    
408         ELSE         ELSE
# Line 340  C The 0 is the "iteration" argument. The Line 410  C The 0 is the "iteration" argument. The
410          CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,          CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
411       &                    SQUEEZE_RIGHT , 1)       &                    SQUEEZE_RIGHT , 1)
412         ENDIF         ENDIF
413          
414        ELSE IF (STREAMICEbasalTracConfig.EQ.'UNIFORM' ) THEN        ELSE IF (STREAMICEbasalTracConfig.EQ.'UNIFORM' ) THEN
415    
416          DO bj = myByLo(myThid), myByHi(myThid)          DO bj = myByLo(myThid), myByHi(myThid)
# Line 354  C The 0 is the "iteration" argument. The Line 424  C The 0 is the "iteration" argument. The
424          ENDDO          ENDDO
425    
426        ELSE IF (STREAMICEbasalTracConfig.EQ.'2DPERIODIC' ) THEN        ELSE IF (STREAMICEbasalTracConfig.EQ.'2DPERIODIC' ) THEN
427                
428         lenx = sNx*nSx*nPx*delX(1)         lenx = sNx*nSx*nPx*delX(1)
429         leny = sNy*nSy*nPy*delY(1)         leny = sNy*nSy*nPy*delY(1)
430         DO bj = myByLo(myThid), myByHi(myThid)         DO bj = myByLo(myThid), myByHi(myThid)
# Line 363  C The 0 is the "iteration" argument. The Line 433  C The 0 is the "iteration" argument. The
433            DO i=1,sNx            DO i=1,sNx
434             x = xC(i,j,bi,bj)             x = xC(i,j,bi,bj)
435             y = yC(i,j,bi,bj)             y = yC(i,j,bi,bj)
436             C_basal_friction(i,j,bi,bj) =             C_basal_friction(i,j,bi,bj) =
437       &      sqrt(C_basal_fric_const**2*       &      sqrt(C_basal_fric_const**2*
438       &        (1+sin(2*streamice_kx_b_init*PI*x/lenx)*       &        (1+sin(2*streamice_kx_b_init*PI*x/lenx)*
439       &           sin(2*streamice_ky_b_init*PI*y/leny)))       &           sin(2*streamice_ky_b_init*PI*y/leny)))
# Line 373  C The 0 is the "iteration" argument. The Line 443  C The 0 is the "iteration" argument. The
443         ENDDO         ENDDO
444    
445        ELSE IF (STREAMICEbasalTracConfig.EQ.'1DPERIODIC' ) THEN        ELSE IF (STREAMICEbasalTracConfig.EQ.'1DPERIODIC' ) THEN
446                
447         lenx = sNx*nSx*nPx*delX(1)         lenx = sNx*nSx*nPx*delX(1)
448         DO bj = myByLo(myThid), myByHi(myThid)         DO bj = myByLo(myThid), myByHi(myThid)
449          DO bi = myBxLo(myThid), myBxHi(myThid)          DO bi = myBxLo(myThid), myBxHi(myThid)
# Line 381  C The 0 is the "iteration" argument. The Line 451  C The 0 is the "iteration" argument. The
451            DO i=1,sNx            DO i=1,sNx
452             x = xC(i,j,bi,bj)             x = xC(i,j,bi,bj)
453             y = yC(i,j,bi,bj)             y = yC(i,j,bi,bj)
454             C_basal_friction(i,j,bi,bj) =             C_basal_friction(i,j,bi,bj) =
455       &      sqrt(C_basal_fric_const**2*(1+       &      sqrt(C_basal_fric_const**2*(1+
456       &        sin(2*streamice_kx_b_init*PI*x/lenx)))       &        sin(2*streamice_kx_b_init*PI*x/lenx)))
457            ENDDO            ENDDO
# Line 396  C The 0 is the "iteration" argument. The Line 466  C The 0 is the "iteration" argument. The
466         STOP 'ABNORMAL END: S/R STREAMICE_INIT_VAR'         STOP 'ABNORMAL END: S/R STREAMICE_INIT_VAR'
467        ENDIF        ENDIF
468    
469  ! finish initialize basal trac  ! finish initialize basal trac
470    
471  #ifdef ALLOW_STREAMICE_2DTRACER  #ifdef ALLOW_STREAMICE_2DTRACER
472    
# Line 427  C The 0 is the "iteration" argument. The Line 497  C The 0 is the "iteration" argument. The
497    
498  #endif /*STREAMICE_ALLOW_2DTRACER*/  #endif /*STREAMICE_ALLOW_2DTRACER*/
499    
500    #ifdef STREAMICE_STRESS_BOUNDARY_CONTROL
501          IF ( STREAMICEuNormalStressFile .NE. ' ') THEN
502            _BARRIER
503           CALL READ_FLD_XY_RL ( STREAMICEuNormalStressFile, ' ',
504         &  streamice_u_normal_stress, 0, myThid )
505          ELSE
506           WRITE(msgBuf,'(A)') 'IMPOSED NORMAL U STRESS NOT SET'
507           CALL PRINT_ERROR( msgBuf, myThid)
508          ENDIF
509    
510          IF ( STREAMICEvNormalStressFile .NE. ' ') THEN
511            _BARRIER
512           CALL READ_FLD_XY_RL ( STREAMICEvNormalStressFile, ' ',
513         &  streamice_v_normal_stress, 0, myThid )
514          ELSE
515           WRITE(msgBuf,'(A)') 'IMPOSED NORMAL V STRESS NOT SET'
516           CALL PRINT_ERROR( msgBuf, myThid)
517          ENDIF
518    
519          IF ( STREAMICEuShearStressFile .NE. ' ') THEN
520            _BARRIER
521           CALL READ_FLD_XY_RL ( STREAMICEuShearStressFile, ' ',
522         &  streamice_u_shear_stress, 0, myThid )
523          ELSE
524           WRITE(msgBuf,'(A)') 'IMPOSED SHEAR U STRESS NOT SET'
525           CALL PRINT_ERROR( msgBuf, myThid)
526          ENDIF
527    
528          IF ( STREAMICEvShearStressFile .NE. ' ') THEN
529            _BARRIER
530           CALL READ_FLD_XY_RL ( STREAMICEvShearStressFile, ' ',
531         &  streamice_v_shear_stress, 0, myThid )
532          ELSE
533           WRITE(msgBuf,'(A)') 'IMPOSED SHEAR V STRESS NOT SET'
534           CALL PRINT_ERROR( msgBuf, myThid)
535          ENDIF
536    
537          CALL EXCH_XY_RL
538         & (streamice_v_shear_stress, myThid)
539          CALL EXCH_XY_RL
540         & (streamice_u_shear_stress, myThid)
541          CALL EXCH_XY_RL
542         & (streamice_v_normal_stress, myThid)
543          CALL EXCH_XY_RL
544         & (streamice_u_normal_stress, myThid)
545    
546    #endif /*STREAMICE_STRESS_BOUNDARY_CONTROL*/
547    
548    
549        CALL STREAMICE_UPD_FFRAC_UNCOUPLED ( myThid )        CALL STREAMICE_UPD_FFRAC_UNCOUPLED ( myThid )
550    
551        _EXCH_XY_RL(H_streamice, myThid )        _EXCH_XY_RL(H_streamice, myThid )
552        _EXCH_XY_RL(STREAMICE_hmask, myThid )        _EXCH_XY_RS(STREAMICE_hmask, myThid )
553        _EXCH_XY_RL(area_shelf_streamice, myThid )        _EXCH_XY_RL(area_shelf_streamice, myThid )
554        _EXCH_XY_RL(C_basal_friction, myThid )        _EXCH_XY_RL(C_basal_friction, myThid )
555    #ifndef STREAMICE_3D_GLEN_CONST
556        _EXCH_XY_RL(B_glen, myThid )        _EXCH_XY_RL(B_glen, myThid )
557    #else
558          CALL EXCH_3D_RL(B_glen, Nr,myThid )
559    #endif
560    
561  #ifdef USE_ALT_RLOW  #ifdef USE_ALT_RLOW
562        _EXCH_XY_RL(R_low_si, myThid )        _EXCH_XY_RL(R_low_si, myThid )
563  #endif  #endif
# Line 450  C The 0 is the "iteration" argument. The Line 574  C The 0 is the "iteration" argument. The
574    
575         CALL STREAMICE_UPD_FFRAC_UNCOUPLED ( myThid )         CALL STREAMICE_UPD_FFRAC_UNCOUPLED ( myThid )
576         CALL STREAMICE_VELMASK_UPD (myThid)         CALL STREAMICE_VELMASK_UPD (myThid)
577         CALL STREAMICE_VEL_SOLVE( myThid )         CALL STREAMICE_VEL_SOLVE(
578         &     myThid,
579         &     streamice_max_nl_iter,
580         &     streamice_max_cg_iter )
581    
582  #endif  #endif
583    
584  !#endif  !#endif
585          
586        CALL WRITE_FLD_XY_RL ( "C_basal_fric", "",        CALL WRITE_FLD_XY_RL ( "C_basal_fric", "",
587       & C_basal_friction, 0, myThid )       & C_basal_friction, 0, myThid )
588        CALL WRITE_FLD_XY_RL ( "B_glen_sqrt", "",        CALL WRITE_FLD_XY_RL ( "B_glen_sqrt", "",
589       & B_glen, 0, myThid )       & B_glen, 0, myThid )
590        CALL WRITE_FLD_XY_RL ( "H_streamice", "init",        CALL WRITE_FLD_XY_RL ( "H_streamice", "init",
591       & H_streamIce, 0, myThid )       & H_streamIce, 0, myThid )
592  #ifdef ALLOW_STREAMICE_2DTRACER  #ifdef ALLOW_STREAMICE_2DTRACER
593        CALL WRITE_FLD_XY_RL ( "2DTracer", "init",        CALL WRITE_FLD_XY_RL ( "2DTracer", "init",
594       & trac2d, 0, myThid )       & trac2d, 0, myThid )
595  #endif  #endif
596        CALL WRITE_FLD_XY_RL ( "area_shelf_streamice", "init",        CALL WRITE_FLD_XY_RL ( "area_shelf_streamice", "init",
597       & area_shelf_streamice, 0, myThid )       & area_shelf_streamice, 0, myThid )
598        CALL WRITE_FLD_XY_RL ( "STREAMICE_hmask", "init",        CALL WRITE_FLD_XY_RS ( "STREAMICE_hmask", "init",
599       & STREAMICE_hmask, 0, myThid )       & STREAMICE_hmask, 0, myThid )
600  #ifdef ALLOW_CTRL  #ifdef ALLOW_CTRL
601        CALL ACTIVE_WRITE_GEN_RS( 'maskCtrlst', STREAMICE_ctrl_mask,        CALL ACTIVE_WRITE_GEN_RS( 'maskCtrlst', STREAMICE_ctrl_mask,
602       &  'XY', Nr, 1, .FALSE., 0, mythid, dummyRS )       &  'XY', Nr, 1, .FALSE., 0, myThid, dummyRS )
603  #endif  #endif
604  !      call active_write_xyz( 'maskCtrlS', STREAMICE_ctrl_mask, 1, 0,  !      call active_write_xyz( 'maskCtrlS', STREAMICE_ctrl_mask, 1, 0,
605  !     & mythid, dummy)  !     & myThid, dummy)
606  !       CALL STREAMICE_VELMASK_UPD (myThid)  !       CALL STREAMICE_VELMASK_UPD (myThid)
607  !       CALL STREAMICE_UPD_FFRAC_UNCOUPLED ( myThid )  !       CALL STREAMICE_UPD_FFRAC_UNCOUPLED ( myThid )
608  !       CALL STREAMICE_VEL_SOLVE( myThid )  !       CALL STREAMICE_VEL_SOLVE( myThid )
609    
610        CALL WRITE_FLD_XY_RL ( "U_init", "",        CALL WRITE_FLD_XY_RL ( "U_init", "",
611       &   C_basal_friction, 0, myThid )       &   C_basal_friction, 0, myThid )
612        CALL WRITE_FLD_XY_RL ( "V_init", "",        CALL WRITE_FLD_XY_RL ( "V_init", "",
613       &   V_streamice, 0, myThid )       &   V_streamice, 0, myThid )
614  #ifdef USE_ALT_RLOW  #ifdef USE_ALT_RLOW
615        CALL WRITE_FLD_XY_RL ( "R_low_si", "init",        CALL WRITE_FLD_XY_RL ( "R_low_si", "init",
616       & R_low_si, 0, myThid )       & R_low_si, 0, myThid )
617  #endif  #endif
618    
619  !       CALL WRITE_FULLARRAY_RL ("H",H_streamice,1,0,0,1,0,myThid)  !       CALL WRITE_FULLARRAY_RL ("H",H_streamice,1,0,0,1,0,myThid)
620  !       CALL WRITE_FULLARRAY_RL ("hmask",STREAMICE_hmask,1,0,0,1,0,myThid)  !       CALL WRITE_FULLARRAY_RS ("hmask",STREAMICE_hmask,1,0,0,1,0,myThid)
621  !       CALL WRITE_FULLARRAY_RL ("umask",STREAMICE_umask,1,0,0,1,0,myThid)  !       CALL WRITE_FULLARRAY_RL ("umask",STREAMICE_umask,1,0,0,1,0,myThid)
622    
   
         
623  #endif /* ALLOW_STREAMICE */  #endif /* ALLOW_STREAMICE */
624    
625        RETURN        RETURN

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

  ViewVC Help
Powered by ViewVC 1.1.22