- Timestamp:
- 2017-09-06T12:01:34+02:00 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/iceitd.F90
r8498 r8500 422 422 ! 423 423 jl1 = kdonor(ji,jl) 424 IF ( jl1 == jl ) THEN ; jl2 = jl1+1 425 ELSE ; jl2 = jl 426 ENDIF 427 ! 428 IF( v_i_2d(ji,jl1) >= epsi10 ) THEN ; zworkv(ji) = pdvice(ji,jl) / v_i_2d(ji,jl1) 429 ELSE ; zworkv(ji) = 0._wp 430 ENDIF 431 IF( a_i_2d(ji,jl1) >= epsi10 ) THEN ; zworka(ji) = pdaice(ji,jl) / a_i_2d(ji,jl1) 432 ELSE ; zworka(ji) = 0._wp 433 ENDIF 434 ! 435 a_i_2d(ji,jl1) = a_i_2d(ji,jl1) - pdaice(ji,jl) ! Ice areas 436 a_i_2d(ji,jl2) = a_i_2d(ji,jl2) + pdaice(ji,jl) 437 ! 438 v_i_2d(ji,jl1) = v_i_2d(ji,jl1) - pdvice(ji,jl) ! Ice volumes 439 v_i_2d(ji,jl2) = v_i_2d(ji,jl2) + pdvice(ji,jl) 440 ! 441 ztrans = v_s_2d(ji,jl1) * zworkv(ji) ! Snow volumes 442 v_s_2d(ji,jl1) = v_s_2d(ji,jl1) - ztrans 443 v_s_2d(ji,jl2) = v_s_2d(ji,jl2) + ztrans 444 ! 445 ! ! Ice age 446 ztrans = oa_i_2d(ji,jl1) * pdaice(ji,jl) !!clem: should be * zworka(ji) but it does not work ???? 447 oa_i_2d(ji,jl1) = oa_i_2d(ji,jl1) - ztrans 448 oa_i_2d(ji,jl2) = oa_i_2d(ji,jl2) + ztrans 449 ! 450 ztrans = smv_i_2d(ji,jl1) * zworkv(ji) ! Ice salinity 451 452 smv_i_2d(ji,jl1) = smv_i_2d(ji,jl1) - ztrans 453 smv_i_2d(ji,jl2) = smv_i_2d(ji,jl2) + ztrans 454 ! 455 ! ! Surface temperature 456 ztrans = t_su_2d(ji,jl1) * pdaice(ji,jl) !!clem: should be * zworka(ji) but it does not work ???? 457 zaTsfn(ji,jl1) = zaTsfn(ji,jl1) - ztrans 458 zaTsfn(ji,jl2) = zaTsfn(ji,jl2) + ztrans 459 ! 460 ! MV MP 2016 461 IF ( nn_pnd_scheme > 0 ) THEN 462 ! ! Pond fraction 463 ztrans = a_ip_2d(ji,jl1) * pdaice(ji,jl) !!clem: should be * zworka(ji) but it does not work 464 a_ip_2d(ji,jl1) = a_ip_2d(ji,jl1) - ztrans 465 a_ip_2d(ji,jl2) = a_ip_2d(ji,jl2) + ztrans 466 ! ! Pond volume (also proportional to da/a) 467 ztrans = v_ip_2d(ji,jl1) * pdaice(ji,jl) !!clem: should be * zworka(ji) but it does not work 468 v_ip_2d(ji,jl1) = v_ip_2d(ji,jl1) - ztrans 469 v_ip_2d(ji,jl2) = v_ip_2d(ji,jl2) + ztrans 470 ENDIF 471 ! END MV MP 2016 424 ! 425 IF( jl1 > 0 ) THEN 426 ! 427 IF ( jl1 == jl ) THEN ; jl2 = jl1+1 428 ELSE ; jl2 = jl 429 ENDIF 430 ! 431 IF( v_i_2d(ji,jl1) >= epsi10 ) THEN ; zworkv(ji) = pdvice(ji,jl) / v_i_2d(ji,jl1) 432 ELSE ; zworkv(ji) = 0._wp 433 ENDIF 434 IF( a_i_2d(ji,jl1) >= epsi10 ) THEN ; zworka(ji) = pdaice(ji,jl) / a_i_2d(ji,jl1) 435 ELSE ; zworka(ji) = 0._wp 436 ENDIF 437 ! 438 a_i_2d(ji,jl1) = a_i_2d(ji,jl1) - pdaice(ji,jl) ! Ice areas 439 a_i_2d(ji,jl2) = a_i_2d(ji,jl2) + pdaice(ji,jl) 440 ! 441 v_i_2d(ji,jl1) = v_i_2d(ji,jl1) - pdvice(ji,jl) ! Ice volumes 442 v_i_2d(ji,jl2) = v_i_2d(ji,jl2) + pdvice(ji,jl) 443 ! 444 ztrans = v_s_2d(ji,jl1) * zworkv(ji) ! Snow volumes 445 v_s_2d(ji,jl1) = v_s_2d(ji,jl1) - ztrans 446 v_s_2d(ji,jl2) = v_s_2d(ji,jl2) + ztrans 447 ! 448 ! ! Ice age 449 ztrans = oa_i_2d(ji,jl1) * pdaice(ji,jl) !!clem: should be * zworka(ji) but it does not work ???? 450 oa_i_2d(ji,jl1) = oa_i_2d(ji,jl1) - ztrans 451 oa_i_2d(ji,jl2) = oa_i_2d(ji,jl2) + ztrans 452 ! 453 ztrans = smv_i_2d(ji,jl1) * zworkv(ji) ! Ice salinity 454 ! 455 smv_i_2d(ji,jl1) = smv_i_2d(ji,jl1) - ztrans 456 smv_i_2d(ji,jl2) = smv_i_2d(ji,jl2) + ztrans 457 ! 458 ! ! Surface temperature 459 ztrans = t_su_2d(ji,jl1) * pdaice(ji,jl) !!clem: should be * zworka(ji) but it does not work ???? 460 zaTsfn(ji,jl1) = zaTsfn(ji,jl1) - ztrans 461 zaTsfn(ji,jl2) = zaTsfn(ji,jl2) + ztrans 462 ! 463 ! MV MP 2016 464 IF ( nn_pnd_scheme > 0 ) THEN 465 ! ! Pond fraction 466 ztrans = a_ip_2d(ji,jl1) * pdaice(ji,jl) !!clem: should be * zworka(ji) but it does not work 467 a_ip_2d(ji,jl1) = a_ip_2d(ji,jl1) - ztrans 468 a_ip_2d(ji,jl2) = a_ip_2d(ji,jl2) + ztrans 469 ! ! Pond volume (also proportional to da/a) 470 ztrans = v_ip_2d(ji,jl1) * pdaice(ji,jl) !!clem: should be * zworka(ji) but it does not work 471 v_ip_2d(ji,jl1) = v_ip_2d(ji,jl1) - ztrans 472 v_ip_2d(ji,jl2) = v_ip_2d(ji,jl2) + ztrans 473 ENDIF 474 ! END MV MP 2016 475 ! 476 ENDIF ! jl1 >0 472 477 END DO 473 478 ! … … 479 484 ! 480 485 jl1 = kdonor(ji,jl) 481 IF(jl1 == jl) THEN ; jl2 = jl+1 482 ELSE ; jl2 = jl 483 ENDIF 484 ! 485 ztrans = e_s(ii,ij,jk,jl1) * zworkv(ji) 486 e_s(ii,ij,jk,jl1) = e_s(ii,ij,jk,jl1) - ztrans 487 e_s(ii,ij,jk,jl2) = e_s(ii,ij,jk,jl2) + ztrans 486 ! 487 IF( jl1 > 0 ) THEN 488 IF(jl1 == jl) THEN ; jl2 = jl+1 489 ELSE ; jl2 = jl 490 ENDIF 491 ! 492 ztrans = e_s(ii,ij,jk,jl1) * zworkv(ji) 493 e_s(ii,ij,jk,jl1) = e_s(ii,ij,jk,jl1) - ztrans 494 e_s(ii,ij,jk,jl2) = e_s(ii,ij,jk,jl2) + ztrans 495 ENDIF 488 496 END DO 489 497 END DO … … 495 503 ! 496 504 jl1 = kdonor(ji,jl) 497 IF(jl1 == jl) THEN ; jl2 = jl+1 498 ELSE ; jl2 = jl 499 ENDIF 500 ! 501 ztrans = e_i(ii,ij,jk,jl1) * zworkv(ji) 502 e_i(ii,ij,jk,jl1) = e_i(ii,ij,jk,jl1) - ztrans 503 e_i(ii,ij,jk,jl2) = e_i(ii,ij,jk,jl2) + ztrans 505 ! 506 IF( jl1 > 0 ) THEN 507 IF(jl1 == jl) THEN ; jl2 = jl+1 508 ELSE ; jl2 = jl 509 ENDIF 510 ! 511 ztrans = e_i(ii,ij,jk,jl1) * zworkv(ji) 512 e_i(ii,ij,jk,jl1) = e_i(ii,ij,jk,jl1) - ztrans 513 e_i(ii,ij,jk,jl2) = e_i(ii,ij,jk,jl2) + ztrans 514 ENDIF 504 515 END DO 505 516 END DO … … 510 521 ! 3) Update ice thickness and temperature 511 522 !------------------------------------------------------------------------------- 512 DO jl = 1, jpl 513 DO ji = 1, nidx 514 IF ( a_i_2d(ji,jl) > epsi10 ) THEN 515 ht_i_2d(ji,jl) = v_i_2d(ji,jl) / a_i_2d(ji,jl) 516 t_su_2d(ji,jl) = zaTsfn(ji,jl) / a_i_2d(ji,jl) 517 ELSE 518 ht_i_2d(ji,jl) = 0._wp 519 t_su_2d(ji,jl) = rt0 520 ENDIF 521 END DO 522 END DO 523 WHERE( a_i_2d(1:nidx,:) >= epsi20 ) 524 ht_i_2d(1:nidx,:) = v_i_2d(1:nidx,:) / a_i_2d(1:nidx,:) 525 t_su_2d(1:nidx,:) = zaTsfn(1:nidx,:) / a_i_2d(1:nidx,:) 526 ELSEWHERE 527 ht_i_2d(1:nidx,:) = 0._wp 528 t_su_2d(1:nidx,:) = rt0 529 END WHERE 523 530 ! 524 531 CALL tab_2d_3d( nidx, idxice(1:nidx), ht_i_2d (1:nidx,1:jpl), ht_i )
Note: See TracChangeset
for help on using the changeset viewer.