- Timestamp:
- 2017-10-18T19:14:32+02:00 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2017/dev_r7881_ENHANCE09_RK3/NEMOGCM/NEMO/LIM_SRC_3/icethd.F90
r8586 r8637 34 34 USE icethd_ent ! sea-ice: enthalpy redistribution 35 35 USE icethd_do ! sea-ice: growth in open water 36 USE icethd_pnd ! sea-ice: melt ponds 36 37 USE iceitd ! sea-ice: remapping thickness distribution 37 38 USE icetab ! sea-ice: 1D <==> 2D transformation … … 86 87 !! - call ice_thd_rem for remapping thickness distribution 87 88 !! - call ice_thd_do for ice growth in leads 88 !!------------------------------------------------------------------- --89 !!------------------------------------------------------------------- 89 90 INTEGER, INTENT(in) :: kt ! number of iteration 90 91 ! … … 230 231 s_i_new (1:npti) = 0._wp ; dh_s_tot (1:npti) = 0._wp ! --- some init --- ! (important to have them here) 231 232 dh_i_surf (1:npti) = 0._wp ; dh_i_bott(1:npti) = 0._wp 232 dh_snowice(1:npti) = 0._wp ; dh_i_sub (1:npti) = 0._wp 233 dh_snowice(1:npti) = 0._wp ; dh_i_sub (1:npti) = 0._wp ; dh_s_mlt(1:npti) = 0._wp 233 234 ! 234 235 IF( ln_icedH ) THEN ! --- growing/melting --- ! 235 236 CALL ice_thd_zdf ! Ice/Snow Temperature profile 236 237 CALL ice_thd_dh ! Ice/Snow thickness 238 CALL ice_thd_pnd ! Melt ponds formation 237 239 CALL ice_thd_ent( e_i_1d(1:npti,:) ) ! Ice enthalpy remapping 238 240 ENDIF … … 362 364 CALL tab_2d_1d( npti, nptidx(1:npti), at_i_1d(1:npti), at_i ) 363 365 CALL tab_2d_1d( npti, nptidx(1:npti), a_i_1d (1:npti), a_i (:,:,kl) ) 364 CALL tab_2d_1d( npti, nptidx(1:npti), h_i_1d (1:npti), h_i(:,:,kl) )365 CALL tab_2d_1d( npti, nptidx(1:npti), h_s_1d (1:npti), h_s(:,:,kl) )366 CALL tab_2d_1d( npti, nptidx(1:npti), h_i_1d (1:npti), h_i (:,:,kl) ) 367 CALL tab_2d_1d( npti, nptidx(1:npti), h_s_1d (1:npti), h_s (:,:,kl) ) 366 368 CALL tab_2d_1d( npti, nptidx(1:npti), t_su_1d(1:npti), t_su(:,:,kl) ) 367 CALL tab_2d_1d( npti, nptidx(1:npti), s_i_1d (1:npti), s_i(:,:,kl) )369 CALL tab_2d_1d( npti, nptidx(1:npti), s_i_1d (1:npti), s_i (:,:,kl) ) 368 370 DO jk = 1, nlay_s 369 CALL tab_2d_1d( npti, nptidx(1:npti), t_s_1d(1:npti,jk), t_s(:,:,jk,kl) )370 CALL tab_2d_1d( npti, nptidx(1:npti), e_s_1d(1:npti,jk), e_s(:,:,jk,kl) )371 CALL tab_2d_1d( npti, nptidx(1:npti), t_s_1d(1:npti,jk), t_s(:,:,jk,kl) ) 372 CALL tab_2d_1d( npti, nptidx(1:npti), e_s_1d(1:npti,jk), e_s(:,:,jk,kl) ) 371 373 END DO 372 374 DO jk = 1, nlay_i 373 CALL tab_2d_1d( npti, nptidx(1:npti), t_i_1d(1:npti,jk), t_i(:,:,jk,kl) ) 374 CALL tab_2d_1d( npti, nptidx(1:npti), e_i_1d(1:npti,jk), e_i(:,:,jk,kl) ) 375 CALL tab_2d_1d( npti, nptidx(1:npti), sz_i_1d(1:npti,jk), sz_i(:,:,jk,kl) ) 376 END DO 375 CALL tab_2d_1d( npti, nptidx(1:npti), t_i_1d (1:npti,jk), t_i (:,:,jk,kl) ) 376 CALL tab_2d_1d( npti, nptidx(1:npti), e_i_1d (1:npti,jk), e_i (:,:,jk,kl) ) 377 CALL tab_2d_1d( npti, nptidx(1:npti), sz_i_1d(1:npti,jk), sz_i(:,:,jk,kl) ) 378 END DO 379 CALL tab_2d_1d( npti, nptidx(1:npti), a_ip_1d (1:npti), a_ip (:,:,kl) ) 380 CALL tab_2d_1d( npti, nptidx(1:npti), h_ip_1d (1:npti), h_ip (:,:,kl) ) 381 CALL tab_2d_1d( npti, nptidx(1:npti), a_ip_frac_1d(1:npti), a_ip_frac(:,:,kl) ) 377 382 ! 378 383 CALL tab_2d_1d( npti, nptidx(1:npti), qprec_ice_1d(1:npti), qprec_ice ) … … 403 408 CALL tab_2d_1d( npti, nptidx(1:npti), wfx_spr_1d (1:npti), wfx_spr ) 404 409 CALL tab_2d_1d( npti, nptidx(1:npti), wfx_lam_1d (1:npti), wfx_lam ) 410 CALL tab_2d_1d( npti, nptidx(1:npti), wfx_pnd_1d (1:npti), wfx_pnd ) 405 411 ! 406 412 CALL tab_2d_1d( npti, nptidx(1:npti), sfx_bog_1d (1:npti), sfx_bog ) … … 454 460 ! 455 461 ! Change thickness to volume (replaces routine ice_var_eqv2glo) 456 v_i_1d(1:npti) = h_i_1d(1:npti) * a_i_1d(1:npti) 457 v_s_1d(1:npti) = h_s_1d(1:npti) * a_i_1d(1:npti) 458 sv_i_1d(1:npti) = s_i_1d(1:npti) * v_i_1d(1:npti) 462 v_i_1d (1:npti) = h_i_1d (1:npti) * a_i_1d (1:npti) 463 v_s_1d (1:npti) = h_s_1d (1:npti) * a_i_1d (1:npti) 464 sv_i_1d(1:npti) = s_i_1d (1:npti) * v_i_1d (1:npti) 465 v_ip_1d(1:npti) = h_ip_1d(1:npti) * a_ip_1d(1:npti) 459 466 460 467 CALL tab_1d_2d( npti, nptidx(1:npti), at_i_1d(1:npti), at_i ) 461 468 CALL tab_1d_2d( npti, nptidx(1:npti), a_i_1d (1:npti), a_i (:,:,kl) ) 462 CALL tab_1d_2d( npti, nptidx(1:npti), h_i_1d (1:npti), h_i(:,:,kl) )463 CALL tab_1d_2d( npti, nptidx(1:npti), h_s_1d (1:npti), h_s(:,:,kl) )469 CALL tab_1d_2d( npti, nptidx(1:npti), h_i_1d (1:npti), h_i (:,:,kl) ) 470 CALL tab_1d_2d( npti, nptidx(1:npti), h_s_1d (1:npti), h_s (:,:,kl) ) 464 471 CALL tab_1d_2d( npti, nptidx(1:npti), t_su_1d(1:npti), t_su(:,:,kl) ) 465 CALL tab_1d_2d( npti, nptidx(1:npti), s_i_1d (1:npti), s_i(:,:,kl) )472 CALL tab_1d_2d( npti, nptidx(1:npti), s_i_1d (1:npti), s_i (:,:,kl) ) 466 473 DO jk = 1, nlay_s 467 CALL tab_1d_2d( npti, nptidx(1:npti), t_s_1d(1:npti,jk), t_s(:,:,jk,kl) )468 CALL tab_1d_2d( npti, nptidx(1:npti), e_s_1d(1:npti,jk), e_s(:,:,jk,kl) )474 CALL tab_1d_2d( npti, nptidx(1:npti), t_s_1d(1:npti,jk), t_s(:,:,jk,kl) ) 475 CALL tab_1d_2d( npti, nptidx(1:npti), e_s_1d(1:npti,jk), e_s(:,:,jk,kl) ) 469 476 END DO 470 477 DO jk = 1, nlay_i 471 CALL tab_1d_2d( npti, nptidx(1:npti), t_i_1d(1:npti,jk), t_i(:,:,jk,kl) ) 472 CALL tab_1d_2d( npti, nptidx(1:npti), e_i_1d(1:npti,jk), e_i(:,:,jk,kl) ) 473 CALL tab_1d_2d( npti, nptidx(1:npti), sz_i_1d(1:npti,jk), sz_i(:,:,jk,kl) ) 474 END DO 478 CALL tab_1d_2d( npti, nptidx(1:npti), t_i_1d (1:npti,jk), t_i (:,:,jk,kl) ) 479 CALL tab_1d_2d( npti, nptidx(1:npti), e_i_1d (1:npti,jk), e_i (:,:,jk,kl) ) 480 CALL tab_1d_2d( npti, nptidx(1:npti), sz_i_1d(1:npti,jk), sz_i(:,:,jk,kl) ) 481 END DO 482 CALL tab_1d_2d( npti, nptidx(1:npti), a_ip_1d (1:npti), a_ip (:,:,kl) ) 483 CALL tab_1d_2d( npti, nptidx(1:npti), h_ip_1d (1:npti), h_ip (:,:,kl) ) 484 CALL tab_1d_2d( npti, nptidx(1:npti), a_ip_frac_1d(1:npti), a_ip_frac(:,:,kl) ) 475 485 ! 476 486 CALL tab_1d_2d( npti, nptidx(1:npti), wfx_snw_sni_1d(1:npti), wfx_snw_sni ) … … 488 498 CALL tab_1d_2d( npti, nptidx(1:npti), wfx_spr_1d (1:npti), wfx_spr ) 489 499 CALL tab_1d_2d( npti, nptidx(1:npti), wfx_lam_1d (1:npti), wfx_lam ) 500 CALL tab_2d_1d( npti, nptidx(1:npti), wfx_pnd_1d (1:npti), wfx_pnd ) 490 501 ! 491 502 CALL tab_1d_2d( npti, nptidx(1:npti), sfx_bog_1d (1:npti), sfx_bog ) … … 523 534 CALL tab_1d_2d( npti, nptidx(1:npti), v_s_1d (1:npti), v_s (:,:,kl) ) 524 535 CALL tab_1d_2d( npti, nptidx(1:npti), sv_i_1d(1:npti), sv_i(:,:,kl) ) 536 CALL tab_1d_2d( npti, nptidx(1:npti), v_ip_1d(1:npti), v_ip(:,:,kl) ) 525 537 ! 526 538 END SELECT … … 530 542 531 543 SUBROUTINE ice_thd_init 532 !!------------------------------------------------------------------- ----544 !!------------------------------------------------------------------- 533 545 !! *** ROUTINE ice_thd_init *** 534 546 !! … … 570 582 IF( ln_icedO ) CALL ice_thd_do_init ! set ice growth in open water parameters 571 583 CALL ice_thd_sal_init ! set ice salinity parameters 572 ! 573 IF( ln_icedS .AND. nn_icesal == 1 ) THEN 574 ln_icedS = .FALSE. 575 CALL ctl_warn('ln_icedS is set to false since constant ice salinity is chosen (nn_icesal=1)') 576 ENDIF 584 CALL ice_thd_pnd_init ! set melt ponds parameters 577 585 ! 578 586 END SUBROUTINE ice_thd_init
Note: See TracChangeset
for help on using the changeset viewer.