Changeset 865 for trunk/NEMO/LIM_SRC_3/limthd_lac.F90
- Timestamp:
- 2008-03-14T15:43:09+01:00 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/LIM_SRC_3/limthd_lac.F90
r834 r865 227 227 ! 3) Collection thickness of ice formed in leads and polynyas 228 228 !------------------------------------------------------------------------------! 229 ! hicol is the thickness of new ice. 229 ! hicol is the thickness of new ice formed in open water 230 ! hicol can be either prescribed (frazswi = 0) 231 ! or computed (frazswi = 1) 230 232 ! Frazil ice forms in open water, is transported by wind 231 233 ! accumulates at the edge of the consolidated ice edge 232 234 ! where it forms aggregates of a specific thickness called 233 235 ! collection thickness. 236 237 ! Note : the following algorithm currently breaks vectorization 238 ! 234 239 235 240 zvrel(:,:) = 0.0 … … 253 258 zsqcd = 1.0 / SQRT( 1.3 * cai ) ! 1/SQRT(airdensity*drag) 254 259 zgamafr = 0.03 255 256 !+++++257 WRITE(numout,*) ' ztwogp : ', ztwogp258 WRITE(numout,*) ' rau0 : ', rau0259 WRITE(numout,*) ' grav : ', grav260 WRITE(numout,*) ' rhoic : ', rhoic261 !+++++262 260 263 261 DO jj = 1, jpj … … 275 273 ! Square root of wind stress 276 274 ztenagm = SQRT( SQRT( ztaux * ztaux + ztauy * ztauy ) ) 277 ! !+++++278 ! tension on B-grid279 ! ztaux = ( gtaux(ji ,jj ) * tmu(ji,jj ) &280 ! + gtaux(ji+1,jj ) * tmu(ji+1,jj ) &281 ! + gtaux(ji,jj+1 ) * tmu(ji,jj+1 ) &282 ! + gtaux(ji+1,jj+1) * tmu(ji+1,jj+1) ) / 4.0283 ! ztauy = ( gtauy(ji ,jj ) * tmu(ji,jj ) &284 ! + gtauy(ji+1,jj ) * tmu(ji+1,jj ) &285 ! + gtauy(ji,jj+1 ) * tmu(ji,jj+1 ) &286 ! + gtauy(ji+1,jj+1) * tmu(ji+1,jj+1) ) / 4.0287 ! !+++++288 ! !+++++289 ! IF ( ( ji.EQ.jiindex ) .AND. ( jj.EQ.jjindex ) ) THEN290 ! WRITE(numout,*)291 ! WRITE(numout,*) ' ztaux : ', ztaux292 ! WRITE(numout,*) ' ztauy : ', ztauy293 ! WRITE(numout,*) ' |tau| : ', ztenagm294 ! ENDIF295 ! !+++++296 275 297 276 !--------------------- … … 320 299 zvrel(ji,jj) = SQRT(zvrel2) 321 300 322 !+++++++++323 ! ! ice drift on B-grid324 ! zindb = MAX(0.0, SIGN(1.0, at_i(ji,jj) ))325 ! zvgx = zindb * ( u_ice(ji,jj ) * tmu(ji,jj ) &326 ! + u_ice(ji+1,jj ) * tmu(ji+1,jj) &327 ! + u_ice(ji,jj+1 ) * tmu(ji,jj+1) &328 ! + u_ice(ji+1,jj+1) * tmu(ji+1,jj+1) ) &329 ! / 4.0330 ! zvgy = zindb * ( v_ice(ji,jj ) * tmu(ji,jj ) &331 ! + v_ice(ji+1,jj ) * tmu(ji+1,jj) &332 ! + v_ice(ji,jj+1 ) * tmu(ji,jj+1) &333 ! + v_ice(ji+1,jj+1) * tmu(ji+1,jj+1) ) &334 ! / 4.0335 336 ! !+++++337 ! IF ( ( ji.EQ.jiindex ) .AND. ( jj.EQ.jjindex ) ) THEN338 ! WRITE(numout,*)339 ! WRITE(numout,*) ' zvfrx : ', zvfrx340 ! WRITE(numout,*) ' zvfry : ', zvfry341 ! WRITE(numout,*) ' zvgx : ', zvgx342 ! WRITE(numout,*) ' zvgy : ', zvgx343 ! ENDIF344 ! !+++++345 346 ! !+++++347 ! IF ( ( ji.EQ.jiindex ) .AND. ( jj.EQ.jjindex ) ) THEN348 ! WRITE(numout,*)349 ! WRITE(numout,*) ' zvrel2: ', zvrel2350 ! WRITE(numout,*) ' zvrel : ', zvrel(ji,jj)351 ! ENDIF352 353 ! hicol(ji,jj) = 10.0 ! starting value has to be high!!!354 355 301 !--------------------- 356 302 ! Iterative procedure … … 372 318 hicol(ji,jj) = zhicol_new 373 319 374 !++++++++++++++++++++375 ! IF ( ABS(-zf/zfp) .LT. 1.0d-9 ) THEN376 ! iterate_frazil = .false.377 ! ENDIF378 379 ! IF ( (ji.eq.jiindex).AND.(jj.eq.jjindex) ) THEN380 ! WRITE(numout,*) ' ------- iter = ', iter, &381 ! '----------------'382 ! WRITE(numout,*) ' iterate_frazil ', iterate_frazil383 ! WRITE(numout,*) ' zf, zfp : ', zf, zfp384 ! WRITE(numout,*) ' dhicol : ', -zf/zfp385 ! WRITE(numout,*) ' hicol : ', hicol(ji,jj)386 !++++++++++++++++++++387 ! ENDIF388 389 320 iter = iter + 1 390 321 391 322 END DO ! do while 392 ! hicol(ji,jj) = MAX( hicol(ji,jj) , 0.03)393 ! WRITE(numout,*) ' zvrel2 : ', zvrel2, ' zvrel : ', SQRT(zvrel2), ' hicol : ',hicol(ji,jj)394 323 395 324 ENDIF ! end of selection of pixels where ice forms 396 397 !+++++++++++398 IF ( hicol(ji,jj) .GT. 2.00 .OR. hicol(ji,jj) .LT. 0.0 ) THEN399 WRITE(numout,*) ' ALERTE 125 : hicol too bad '400 WRITE(numout,*) ' ji,jj : ', ji, jj401 WRITE(numout,*) ' lat : ', gphit(ji,jj)402 WRITE(numout,*) ' lon : ', glamt(ji,jj)403 WRITE(numout,*) ' hicol : ', hicol(ji,jj)404 ENDIF405 !+++++++++++406 325 407 326 END DO ! loop on ji ends 408 327 END DO ! loop on jj ends 409 410 WRITE(numout,*) ' '411 WRITE(numout,*) ' Apres calcul : '412 WRITE(numout,*) ' hicol : ', hicol(jiindex,jjindex)413 WRITE(numout,*) ' at_i : ', at_i(jiindex,jjindex)414 328 415 329 ENDIF ! End of computation of frazil ice collection thickness … … 489 403 END DO 490 404 IF ( fraz_swi .EQ. 1.0 ) zh_newice(:) = hicol_b(:) 491 492 !+++++++++++++493 DO ji = 1, nbpac494 IF (zh_newice(ji) .LE. 0.0) THEN495 zji = MOD( npac(ji) - 1, jpi ) + 1496 zjj = ( npac(ji) - 1 ) / jpi + 1497 WRITE(numout,*) ' collection thickness <= 0 ', zh_newice(ji), ji, zji, zjj498 ENDIF499 END DO500 !+++++++++++++501 405 502 406 !---------------------- … … 563 467 zv_newice(ji) = ( 1.0 - zfrazb ) * zv_newice(ji) 564 468 END DO 469 470 !--------------------------------- 471 ! Salt flux due to new ice growth 472 !--------------------------------- 473 IF ( ( num_sal .EQ. 4 ) ) THEN 474 DO ji = 1, nbpac 475 zji = MOD( npac(ji) - 1, jpi ) + 1 476 zjj = ( npac(ji) - 1 ) / jpi + 1 477 fseqv_1d(ji) = fseqv_1d(ji) + & 478 ( sss_io(zji,zjj) - bulk_sal ) * rhoic * & 479 zv_newice(ji) / rdt_ice 480 END DO 481 ELSE 482 DO ji = 1, nbpac 483 zji = MOD( npac(ji) - 1, jpi ) + 1 484 zjj = ( npac(ji) - 1 ) / jpi + 1 485 fseqv_1d(ji) = fseqv_1d(ji) + & 486 ( sss_io(zji,zjj) - zs_newice(ji) ) * rhoic * & 487 zv_newice(ji) / rdt_ice 488 END DO ! ji 489 ENDIF 565 490 566 491 !------------------------------------ … … 804 729 ENDIF ! num_sal 805 730 806 !---------------------------------807 ! Salt flux due to new ice growth808 !---------------------------------809 IF ( ( num_sal .EQ. 4 ) ) THEN810 DO ji = 1, nbpac811 zji = MOD( npac(ji) - 1, jpi ) + 1812 zjj = ( npac(ji) - 1 ) / jpi + 1813 fseqv_1d(ji) = fseqv_1d(ji) + &814 ( sss_io(zji,zjj) - bulk_sal ) * rhoic * &815 zv_newice(ji) / rdt_ice816 END DO817 ELSE818 DO ji = 1, nbpac819 zji = MOD( npac(ji) - 1, jpi ) + 1820 zjj = ( npac(ji) - 1 ) / jpi + 1821 fseqv_1d(ji) = fseqv_1d(ji) + &822 ( sss_io(zji,zjj) - zs_newice(ji) ) * rhoic * &823 zv_newice(ji) / rdt_ice824 END DO ! ji825 ENDIF826 731 827 732 !------------------------------------------------------------------------------!
Note: See TracChangeset
for help on using the changeset viewer.