Changeset 4990 for trunk/NEMOGCM/NEMO/LIM_SRC_3/limdyn.F90
- Timestamp:
- 2014-12-15T17:42:49+01:00 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMOGCM/NEMO/LIM_SRC_3/limdyn.F90
r4872 r4990 64 64 INTEGER :: i_j1, i_jpj ! Starting/ending j-indices for rheology 65 65 REAL(wp) :: zcoef ! local scalar 66 REAL(wp), POINTER, DIMENSION(:) :: z ind! i-averaged indicator of sea-ice66 REAL(wp), POINTER, DIMENSION(:) :: zswitch ! i-averaged indicator of sea-ice 67 67 REAL(wp), POINTER, DIMENSION(:) :: zmsk ! i-averaged of tmask 68 68 REAL(wp), POINTER, DIMENSION(:,:) :: zu_io, zv_io ! ice-ocean velocity … … 74 74 75 75 CALL wrk_alloc( jpi, jpj, zu_io, zv_io ) 76 CALL wrk_alloc( jpj, z ind, zmsk )76 CALL wrk_alloc( jpj, zswitch, zmsk ) 77 77 78 78 IF( kt == nit000 ) CALL lim_dyn_init ! Initialization (first time-step only) … … 100 100 ! 101 101 DO jj = 1, jpj 102 z ind(jj) = SUM( 1.0 - at_i(:,jj) ) ! = REAL(jpj) if ocean everywhere on a j-line102 zswitch(jj) = SUM( 1.0 - at_i(:,jj) ) ! = REAL(jpj) if ocean everywhere on a j-line 103 103 zmsk(jj) = SUM( tmask(:,jj,1) ) ! = 0 if land everywhere on a j-line 104 104 END DO … … 110 110 i_j1 = njeq 111 111 i_jpj = jpj 112 DO WHILE ( i_j1 <= jpj .AND. z ind(i_j1) == FLOAT(jpi) .AND. zmsk(i_j1) /=0 )112 DO WHILE ( i_j1 <= jpj .AND. zswitch(i_j1) == FLOAT(jpi) .AND. zmsk(i_j1) /=0 ) 113 113 i_j1 = i_j1 + 1 114 114 END DO … … 120 120 i_j1 = 1 121 121 i_jpj = njeq 122 DO WHILE ( i_jpj >= 1 .AND. z ind(i_jpj) == FLOAT(jpi) .AND. zmsk(i_jpj) /=0 )122 DO WHILE ( i_jpj >= 1 .AND. zswitch(i_jpj) == FLOAT(jpi) .AND. zmsk(i_jpj) /=0 ) 123 123 i_jpj = i_jpj - 1 124 124 END DO … … 132 132 ! ! latitude strip 133 133 i_j1 = 1 134 DO WHILE ( i_j1 <= jpj .AND. z ind(i_j1) == FLOAT(jpi) .AND. zmsk(i_j1) /=0 )134 DO WHILE ( i_j1 <= jpj .AND. zswitch(i_j1) == FLOAT(jpi) .AND. zmsk(i_j1) /=0 ) 135 135 i_j1 = i_j1 + 1 136 136 END DO … … 138 138 139 139 i_jpj = jpj 140 DO WHILE ( i_jpj >= 1 .AND. z ind(i_jpj) == FLOAT(jpi) .AND. zmsk(i_jpj) /=0 )140 DO WHILE ( i_jpj >= 1 .AND. zswitch(i_jpj) == FLOAT(jpi) .AND. zmsk(i_jpj) /=0 ) 141 141 i_jpj = i_jpj - 1 142 142 END DO … … 221 221 ! 222 222 CALL wrk_dealloc( jpi, jpj, zu_io, zv_io ) 223 CALL wrk_dealloc( jpj, z ind, zmsk )223 CALL wrk_dealloc( jpj, zswitch, zmsk ) 224 224 ! 225 225 IF( nn_timing == 1 ) CALL timing_stop('limdyn') … … 241 241 !!------------------------------------------------------------------- 242 242 INTEGER :: ios ! Local integer output status for namelist read 243 NAMELIST/namicedyn/ epsd, om, cw, angvg,pstar, &243 NAMELIST/namicedyn/ epsd, om, cw, pstar, & 244 244 & c_rhg, creepl, ecc, ahi0, & 245 245 & nevp, relast, alphaevp, hminrhg … … 262 262 WRITE(numout,*) ' relaxation constant om = ', om 263 263 WRITE(numout,*) ' drag coefficient for oceanic stress cw = ', cw 264 WRITE(numout,*) ' turning angle for oceanic stress angvg = ', angvg265 264 WRITE(numout,*) ' first bulk-rheology parameter pstar = ', pstar 266 265 WRITE(numout,*) ' second bulk-rhelogy parameter c_rhg = ', c_rhg … … 274 273 ENDIF 275 274 ! 276 IF( angvg /= 0._wp ) THEN277 CALL ctl_warn( 'lim_dyn_init: turning angle for oceanic stress not properly coded for EVP ', &278 & '(see limsbc module). We force angvg = 0._wp' )279 angvg = 0._wp280 ENDIF281 282 275 usecc2 = 1._wp / ( ecc * ecc ) 283 276 rhoco = rau0 * cw 284 angvg = angvg * rad285 sangvg = SIN( angvg )286 cangvg = COS( angvg )287 pstarh = pstar * 0.5_wp288 277 289 278 ! elastic damping
Note: See TracChangeset
for help on using the changeset viewer.