- Timestamp:
- 2020-02-27T12:27:50+01:00 (4 years ago)
- Location:
- NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/src/ICE
- Files:
-
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/src/ICE/ice.F90
r12449 r12475 245 245 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: wfx_ice !: mass flux from ice-ocean mass exchange [kg.m-2.s-1] 246 246 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: wfx_sni !: mass flux from snow ice growth component of wfx_ice [kg.m-2.s-1] 247 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: wfx_snp !: mass flux from snow melting into melt ponds [kg.m-2.s-1] 247 248 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: wfx_opw !: mass flux from lateral ice growth component of wfx_ice [kg.m-2.s-1] 248 249 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: wfx_bog !: mass flux from bottom ice growth component of wfx_ice [kg.m-2.s-1] … … 415 416 & wfx_bog (jpi,jpj) , wfx_dyn (jpi,jpj) , wfx_bom(jpi,jpj) , wfx_sum(jpi,jpj) , & 416 417 & wfx_res (jpi,jpj) , wfx_sni (jpi,jpj) , wfx_opw(jpi,jpj) , wfx_spr(jpi,jpj) , & 417 & afx_tot (jpi,jpj) , rn_amax_2d(jpi,jpj) , 418 & afx_tot (jpi,jpj) , rn_amax_2d(jpi,jpj) , wfx_snp(jpi,jpj) , & 418 419 & qsb_ice_bot(jpi,jpj) , qlead (jpi,jpj) , & 419 420 & sfx_res (jpi,jpj) , sfx_bri (jpi,jpj) , sfx_dyn(jpi,jpj) , sfx_sub(jpi,jpj) , sfx_lam(jpi,jpj) , & -
NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/src/ICE/ice1d.F90
r12449 r12475 77 77 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: wfx_sum_1d 78 78 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: wfx_sni_1d 79 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: wfx_snp_1d 79 80 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: wfx_opw_1d 80 81 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: wfx_res_1d … … 203 204 & fhld_1d (jpij) , wfx_sub_1d (jpij) , wfx_bog_1d (jpij) , wfx_bom_1d (jpij) , & 204 205 & wfx_sum_1d (jpij) , wfx_sni_1d (jpij) , wfx_opw_1d (jpij) , wfx_res_1d (jpij) , & 206 & wfx_snp_1d (jpij) , & 205 207 & wfx_snw_sub_1d(jpij) , wfx_snw_dyn_1d(jpij) , wfx_ice_sub_1d(jpij) , wfx_err_sub_1d(jpij) , & 206 208 & wfx_lam_1d (jpij) , wfx_dyn_1d (jpij) , wfx_pnd_1d (jpij) , dqns_ice_1d (jpij) , evap_ice_1d (jpij) , & -
NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/src/ICE/icedyn.F90
r12379 r12475 105 105 ! 106 106 107 write(numout,*)'ice_dyn 0: e_i = ',e_i (42,26,1,1) 107 write(numout,*)'ice_dyn 0:sv_i, e_i, t_i = ',sv_i(3,4,1), ' ', e_i(3,4,1,1), ' ', t_i(3,4,1,1) 108 write(numout,*)'ice_dyn 0:a_i, h_i, v_i = ',a_i(3,4,1), ' ', h_i(3,4,1), ' ', v_i(3,4,1) 109 write(numout,*)'ice_dyn 0:s_i = ',s_i(3,4,1) 110 write(numout,*)'ice_dyn 0: MEAN(sv_i) = ',SUM(sv_i)/SIZE(sv_i) 111 write(numout,*)'ice_dyn 0: MEAN(e_i) = ',SUM(e_i)/SIZE(e_i) 112 write(numout,*)'ice_dyn 0: MEAN(t_i) = ',SUM(t_i)/SIZE(t_i) 113 write(numout,*)'ice_dyn 0: MEAN(a_i) = ',SUM(a_i)/SIZE(a_i) 114 write(numout,*)'ice_dyn 0: MEAN(h_i) = ',SUM(h_i)/SIZE(h_i) 115 write(numout,*)'ice_dyn 0: MEAN(v_i) = ',SUM(v_i)/SIZE(v_i) 116 write(numout,*)'ice_dyn 0: MEAN(s_i) = ',SUM(s_i)/SIZE(s_i) 117 write(numout,*)'ice_dyn 0: MEAN(u_ice) = ',SUM(u_ice)/SIZE(u_ice) 118 write(numout,*)'ice_dyn 0: MEAN(e2u) = ',SUM(e2u)/SIZE(e2u) 119 write(numout,*)'ice_dyn 0: u_ice, e2u = ',u_ice(3,4), e2u(3,4) 120 108 121 ! 109 122 SELECT CASE( nice_dyn ) !-- Set which dynamics is running … … 111 124 CASE ( np_dynALL ) !== all dynamical processes ==! 112 125 ! 113 CALL ice_dyn_rhg ( kt ) ! -- rheology 126 CALL ice_dyn_rhg ( kt ) ! -- rheology 127 write(numout,*)'ice_dyn 1:sv_i, e_s = ',sv_i(3,4,1), ' ', e_i (3,4,1,1) 128 write(numout,*)'ice_dyn 1: u_ice, e2u = ',u_ice(3,4), e2u(3,4) 114 129 CALL ice_dyn_adv ( kt ) ! -- advection of ice 130 write(numout,*)'ice_dyn 2:sv_i, e_s = ',sv_i(3,4,1), ' ', e_i (3,4,1,1) 115 131 CALL ice_dyn_rdgrft( kt ) ! -- ridging/rafting 132 write(numout,*)'ice_dyn 3:sv_i, e_s = ',sv_i(3,4,1), ' ', e_i (3,4,1,1) 116 133 CALL ice_cor ( kt , 1 ) ! -- Corrections 117 134 ! … … 150 167 END SELECT 151 168 152 write(numout,*)'ice_dyn 1: e_i = ',e_i (42,26,1,1)169 write(numout,*)'ice_dyn 4: e_i = ',e_i (42,26,1,1) 153 170 ! 154 171 ! … … 174 191 ! 175 192 ENDIF 176 write(numout,*)'ice_dyn 2: e_i = ',e_i (42,26,1,1)193 write(numout,*)'ice_dyn 5: e_i = ',e_i (42,26,1,1) 177 194 ! 178 195 ! controls -
NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/src/ICE/icedyn_adv_umx.F90
r12379 r12475 105 105 ! 106 106 IF( kt == nit000 .AND. lwp ) WRITE(numout,*) '-- ice_dyn_adv_umx: Ultimate-Macho advection scheme' 107 108 write(numout,*)'ice_dyn_adv_umx 1:psv_i, pe_s = ',psv_i(3,4,1), ' ', pe_i (3,4,1,1) 107 109 ! 108 110 ! --- Record max of the surrounding 9-pts ice thick. (for call Hbig) --- ! … … 142 144 zdt = rdt_ice / REAL(icycle) 143 145 146 write(numout,*)'ice_dyn_adv_umx 2: pu_ice, e2u = ',pu_ice(3,4), e2u(3,4) 147 144 148 ! --- transport --- ! 145 149 zudy(:,:) = pu_ice(:,:) * e2u(:,:) 146 150 zvdx(:,:) = pv_ice(:,:) * e1v(:,:) 151 152 write(numout,*)'ice_dyn_adv_umx 2: zudy, zvdx, zu_cat, zv_cat, zcu_box, zcv_box = ',zudy(3,4), zvdx(3,4), zu_cat(3,4,1), zv_cat(3,4,1), zcu_box(3,4), zcv_box(3,4) 153 147 154 ! 148 155 ! setup transport for each ice cat … … 151 158 zv_cat(:,:,jl) = zvdx(:,:) 152 159 END DO 160 161 write(numout,*)'ice_dyn_adv_umx 3: zudy, zvdx, zu_cat, zv_cat, zcu_box, zcv_box = ',zudy(3,4), zvdx(3,4), zu_cat(3,4,1), zv_cat(3,4,1), zcu_box(3,4), zcv_box(3,4) 162 153 163 ! 154 164 ! --- define velocity for advection: u*grad(H) --- ! … … 166 176 END DO 167 177 END DO 178 179 write(numout,*)'ice_dyn_adv_umx 4: zudy, zvdx, zu_cat, zv_cat, zcu_box, zcv_box = ',zudy(3,4), zvdx(3,4), zu_cat(3,4,1), zv_cat(3,4,1), zcu_box(3,4), zcv_box(3,4) 168 180 169 181 !---------------! … … 209 221 CALL adv_umx( zamsk, kn_umx, jt, kt, zdt, zudy, zvdx, zu_cat , zv_cat , zcu_box, zcv_box, & 210 222 & pa_i, pa_i, zua_ups, zva_ups, zua_ho , zva_ho ) 223 224 write(numout,*)'ice_dyn_adv_umx 5: zudy, zvdx, zu_cat, zv_cat, zcu_box, zcv_box = ',zudy(3,4), zvdx(3,4), zu_cat(3,4,1), zv_cat(3,4,1), zcu_box(3,4), zcv_box(3,4) 225 211 226 ! 212 227 ! ! --------------------------------- ! … … 227 242 CALL adv_umx( zamsk, kn_umx, jt, kt, zdt, zudy , zvdx , zu_cat, zv_cat, zcu_box, zcv_box, & 228 243 & psv_i, psv_i ) 244 write(numout,*)'ice_dyn_adv_umx 6:psv_i, pe_s, jt = ',psv_i(3,4,1), ' ', pe_i (3,4,1,1), ' ', jt 229 245 !== Ice heat content ==! 230 246 DO jk = 1, nlay_i … … 254 270 CALL adv_umx( zamsk, kn_umx, jt, kt, zdt, zudy , zvdx , zua_ho , zva_ho , zcu_box, zcv_box, & 255 271 & zhvar, psv_i, zua_ups, zva_ups ) 272 write(numout,*)'ice_dyn_adv_umx 7:psv_i, pe_s, jt = ',psv_i(3,4,1), ' ', pe_i (3,4,1,1), ' ', jt 256 273 !== Ice heat content ==! 257 274 DO jk = 1, nlay_i … … 296 313 CALL adv_umx( zamsk, kn_umx, jt, kt, zdt, zudy , zvdx , zuv_ho , zvv_ho , zcu_box, zcv_box, & 297 314 & zhvar, psv_i, zuv_ups, zvv_ups ) 315 316 write(numout,*)'ice_dyn_adv_umx 8:psv_i, pe_s, jt = ',psv_i(3,4,1), ' ', pe_i (3,4,1,1), ' ', jt 298 317 !== Ice heat content ==! 299 318 DO jk = 1, nlay_i … … 360 379 ! (because advected fields are not perfectly bounded and tiny negative values can occur, e.g. -1.e-20) 361 380 CALL ice_var_zapneg( zdt, pato_i, pv_i, pv_s, psv_i, poa_i, pa_i, pa_ip, pv_ip, plh_ip, pe_s, pe_i ) 381 382 write(numout,*)'ice_dyn_adv_umx 9:psv_i, pe_s, jt = ',psv_i(3,4,1), ' ', pe_i (3,4,1,1), ' ', jt 362 383 ! 363 384 ! Make sure ice thickness is not too big … … 365 386 CALL Hbig( zdt, zhi_max, zhs_max, zhip_max, pv_i, pv_s, psv_i, poa_i, pa_i, pa_ip, pv_ip, pe_s, pe_i ) 366 387 367 END DO 388 write(numout,*)'ice_dyn_adv_umx 10:psv_i, pe_s, jt = ',psv_i(3,4,1), ' ', pe_i (3,4,1,1), ' ', jt 389 390 END DO 391 392 write(numout,*)'ice_dyn_adv_umx 11:psv_i, pe_s = ',psv_i(3,4,1), ' ', pe_i (3,4,1,1) 368 393 ! 369 394 END SUBROUTINE ice_dyn_adv_umx -
NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/src/ICE/icedyn_rhg.F90
r11081 r12475 63 63 ! controls 64 64 IF( ln_timing ) CALL timing_start('icedyn_rhg') ! timing 65 write(numout,*)'ice_dyn_rhg 1: u_ice = ',u_ice(3,4) 65 66 IF( ln_icediachk ) CALL ice_cons_hsm(0, 'icedyn_rhg', rdiag_v, rdiag_s, rdiag_t, rdiag_fv, rdiag_fs, rdiag_ft) ! conservation 66 67 ! … … 77 78 END DO 78 79 ENDIF 80 write(numout,*)'ice_dyn_rhg 2: u_ice = ',u_ice(3,4) 79 81 ! 80 82 !--------------! … … 86 88 ! !------------------------! 87 89 CALL ice_dyn_rhg_evp( kt, stress1_i, stress2_i, stress12_i, shear_i, divu_i, delta_i ) 90 write(numout,*)'ice_dyn_rhg 3: u_ice = ',u_ice(3,4) 88 91 ! 89 92 END SELECT … … 91 94 IF( lrst_ice ) THEN !* write EVP fields in the restart file 92 95 IF( ln_rhg_EVP ) CALL rhg_evp_rst( 'WRITE', kt ) 96 write(numout,*)'ice_dyn_rhg 4: u_ice = ',u_ice(3,4) 93 97 ENDIF 94 98 ! 95 99 ! controls 96 100 IF( ln_icediachk ) CALL ice_cons_hsm(1, 'icedyn_rhg', rdiag_v, rdiag_s, rdiag_t, rdiag_fv, rdiag_fs, rdiag_ft) ! conservation 101 write(numout,*)'ice_dyn_rhg 5: u_ice = ',u_ice(3,4) 97 102 IF( ln_ctl ) CALL ice_prt3D ('icedyn_rhg') ! prints 98 IF( ln_timing ) CALL timing_stop ('icedyn_rhg') ! timing 103 write(numout,*)'ice_dyn_rhg 6: u_ice = ',u_ice(3,4) 104 IF( ln_timing ) CALL timing_stop ('icedyn_rhg') 105 write(numout,*)'ice_dyn_rhg 7: u_ice = ',u_ice(3,4) ! timing 99 106 ! 100 107 END SUBROUTINE ice_dyn_rhg -
NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/src/ICE/icedyn_rhg_evp.F90
r11081 r12475 185 185 186 186 IF( kt == nit000 .AND. lwp ) WRITE(numout,*) '-- ice_dyn_rhg_evp: EVP sea-ice rheology' 187 188 write(numout,*)'ice_dyn_rhg_evp 1: u_ice = ',u_ice(3,4) 187 189 ! 188 190 !!gm for Clem: OPTIMIZATION: I think zfmask can be computed one for all at the initialization.... … … 225 227 CALL lbc_lnk( 'icedyn_rhg_evp', zfmask, 'F', 1._wp ) 226 228 229 write(numout,*)'ice_dyn_rhg_evp 3: u_ice = ',u_ice(3,4) 230 227 231 !------------------------------------------------------------------------------! 228 232 ! 1) define some variables and initialize arrays … … 267 271 ELSE ; zkt = 0._wp 268 272 ENDIF 273 274 write(numout,*)'ice_dyn_rhg_evp 3: u_ice = ',u_ice(3,4) 269 275 ! 270 276 !------------------------------------------------------------------------------! … … 328 334 END DO 329 335 CALL lbc_lnk_multi( 'icedyn_rhg_evp', zmf, 'T', 1., zdt_m, 'T', 1. ) 336 337 write(numout,*)'ice_dyn_rhg_evp 3: u_ice = ',u_ice(3,4) 330 338 ! 331 339 ! !== Landfast ice parameterization ==! … … 368 376 IF( iom_use('tau_icebfr') ) CALL iom_put( 'tau_icebfr', tau_icebfr(:,:) ) 369 377 378 write(numout,*)'ice_dyn_rhg_evp 3: u_ice = ',u_ice(3,4) 379 370 380 !------------------------------------------------------------------------------! 371 381 ! 3) Solution of the momentum equation, iterative procedure … … 397 407 CALL lbc_lnk( 'icedyn_rhg_evp', zds, 'F', 1. ) 398 408 409 write(numout,*)'ice_dyn_rhg_evp 3: u_ice = ',u_ice(3,4) 410 399 411 DO jj = 2, jpj ! loop to jpi,jpj to avoid making a communication for zs1,zs2,zs12 400 412 DO ji = 2, jpi ! no vector loop … … 440 452 END DO 441 453 CALL lbc_lnk( 'icedyn_rhg_evp', zp_delt, 'T', 1. ) 454 455 write(numout,*)'ice_dyn_rhg_evp 3: u_ice = ',u_ice(3,4) 442 456 443 457 DO jj = 1, jpjm1 … … 488 502 END DO 489 503 END DO 504 write(numout,*)'ice_dyn_rhg_evp 3: u_ice = ',u_ice(3,4) 505 490 506 ! 491 507 ! --- Computation of ice velocity --- ! … … 558 574 & ( zmf(ji ,jj) * ( e1v(ji ,jj) * v_ice(ji ,jj) + e1v(ji ,jj-1) * v_ice(ji ,jj-1) ) & 559 575 & + zmf(ji+1,jj) * ( e1v(ji+1,jj) * v_ice(ji+1,jj) + e1v(ji+1,jj-1) * v_ice(ji+1,jj-1) ) ) 576 577 IF (ji == 3 .AND. jj == 4) THEN 578 write(numout,*)'ice_dyn_rhg_evp 6: u_ice(ji,jj), u_oce(ji,jj), v_iceU(ji,jj), v_oceU(ji,jj) = ',u_ice(ji,jj), u_oce(ji,jj), v_iceU(ji,jj), v_oceU(ji,jj) 579 write(numout,*)'ice_dyn_rhg_evp 6: zTauO, zTauU_ib(ji,jj), zvel =',zTauO, zTauU_ib(ji,jj), zvel 580 write(numout,*)'ice_dyn_rhg_evp 6: r1_e1u(ji,jj), zmf(ji,jj), e1v(ji,jj) = ',r1_e1u(ji,jj), zmf(ji,jj), e1v(ji,jj) 581 ENDIF 582 560 583 ! 561 584 ! !--- Sum of external forces (explicit solution) = F + tau_ia + Coriolis + spg + tau_io … … 580 603 & ) * zmaskU(ji,jj) 581 604 ENDIF 605 606 IF (ji == 3 .AND. jj == 4) THEN 607 write(numout,*)'ice_dyn_rhg_evp 7: u_ice(ji,jj), zmU_t(ji,jj), zTauE, zTauO = ',u_ice(ji,jj), zmU_t(ji,jj), zTauE, zTauO 608 write(numout,*)'ice_dyn_rhg_evp 7: zepsi, zTauO, zTauB, rswitch = ', zepsi, zTauO, zTauB, rswitch 609 write(numout,*)'ice_dyn_rhg_evp 7: zdtevp, rn_lfrelax, zswitchU(ji,jj), zmaskU(ji,jj) = ', zdtevp, rn_lfrelax, zswitchU(ji,jj), zmaskU(ji,jj) 610 ENDIF 611 582 612 END DO 583 613 END DO … … 608 638 & ( zmf(ji ,jj) * ( e1v(ji ,jj) * v_ice(ji ,jj) + e1v(ji ,jj-1) * v_ice(ji ,jj-1) ) & 609 639 & + zmf(ji+1,jj) * ( e1v(ji+1,jj) * v_ice(ji+1,jj) + e1v(ji+1,jj-1) * v_ice(ji+1,jj-1) ) ) 640 641 IF (ji == 3 .AND. jj == 4) THEN 642 write(numout,*)'ice_dyn_rhg_evp 8: u_ice(ji,jj), u_oce(ji,jj), v_iceU(ji,jj), v_oceU(ji,jj) = ',u_ice(ji,jj), u_oce(ji,jj), v_iceU(ji,jj), v_oceU(ji,jj) 643 write(numout,*)'ice_dyn_rhg_evp 8: zTauO, zTauU_ib(ji,jj), zvel =',zTauO, zTauU_ib(ji,jj), zvel 644 write(numout,*)'ice_dyn_rhg_evp 8: r1_e1u(ji,jj), zmf(ji,jj), e1v(ji,jj) = ',r1_e1u(ji,jj), zmf(ji,jj), e1v(ji,jj) 645 ENDIF 646 610 647 ! 611 648 ! !--- Sum of external forces (explicit solution) = F + tau_ia + Coriolis + spg + tau_io … … 630 667 & ) * zmaskU(ji,jj) 631 668 ENDIF 669 670 IF (ji == 3 .AND. jj == 4) THEN 671 write(numout,*)'ice_dyn_rhg_evp 9: u_ice(ji,jj), zmU_t(ji,jj), zTauE, zTauO = ',u_ice(ji,jj), zmU_t(ji,jj), zTauE, zTauO 672 write(numout,*)'ice_dyn_rhg_evp 9: zepsi, zTauO, zTauB, rswitch = ', zepsi, zTauO, zTauB, rswitch 673 write(numout,*)'ice_dyn_rhg_evp 9: zdtevp, rn_lfrelax, zswitchU(ji,jj), zmaskU(ji,jj) = ', zdtevp, rn_lfrelax, zswitchU(ji,jj), zmaskU(ji,jj) 674 ENDIF 632 675 END DO 633 676 END DO 634 677 CALL lbc_lnk( 'icedyn_rhg_evp', u_ice, 'U', -1. ) 678 679 write(numout,*)'ice_dyn_rhg_evp 10: u_ice = ',u_ice(3,4) 635 680 ! 636 681 #if defined key_agrif … … 706 751 CALL bdy_ice_dyn( 'V' ) 707 752 ENDIF 753 write(numout,*)'ice_dyn_rhg_evp 5: u_ice = ',u_ice(3,4) 708 754 ! 709 755 !------------------------------------------------------------------------------! … … 757 803 pstress2_i (:,:) = zs2 (:,:) 758 804 pstress12_i(:,:) = zs12(:,:) 805 write(numout,*)'ice_dyn_rhg_evp 4: u_ice = ',u_ice(3,4) 759 806 ! 760 807 … … 853 900 END DO 854 901 END DO 902 903 write(numout,*)'ice_dyn_rhg_evp 11: u_ice = ',u_ice(3,4) 855 904 856 905 CALL lbc_lnk_multi( 'icedyn_rhg_evp', zdiag_sig1 , 'T', 1., zdiag_sig2 , 'T', 1., & … … 887 936 888 937 ENDIF 938 939 write(numout,*)'ice_dyn_rhg_evp 2: u_ice = ',u_ice(3,4) 889 940 ! 890 941 END SUBROUTINE ice_dyn_rhg_evp -
NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/src/ICE/icestp.F90
r12449 r12475 188 188 kt_ice = kt ! -- Ice model time step 189 189 190 write(numout,*)'icestp 0: e_s = ',e_s (42,26,1,1)190 write(numout,*)'icestp 0: sv_i, e_i, u_ice, e2u, u_oce = ',sv_i(3,4,1), ' ', e_i (3,4,1,1), ' ', u_ice(3,4), ' ', e2u(3,4), ' ', u_oce(3,4) 191 191 ! 192 192 u_oce(:,:) = ssu_m(:,:) ! -- mean surface ocean current … … 215 215 CALL ice_sbc_tau( kt, ksbc, utau_ice, vtau_ice ) 216 216 217 write(numout,*)'icestp 1: e_s = ',e_s (42,26,1,1)217 write(numout,*)'icestp 1: sv_i, e_i, u_ice, e2u, u_oce = ',sv_i(3,4,1), ' ', e_i (3,4,1,1), ' ', u_ice(3,4), ' ', e2u(3,4), ' ', u_oce(3,4) 218 218 219 219 !-------------------------------------! … … 226 226 & CALL ice_dyn( kt ) ! -- Ice dynamics 227 227 228 write(numout,*)'icestp 2: e_s = ',e_s (42,26,1,1)228 write(numout,*)'icestp 2: sv_i, e_i, u_ice, e2u, u_oce = ',sv_i(3,4,1), ' ', e_i (3,4,1,1), ' ', u_ice(3,4), ' ', e2u(3,4), ' ', u_oce(3,4) 229 229 ! 230 230 ! !== lateral boundary conditions ==! 231 231 IF( ln_icethd .AND. ln_bdy ) CALL bdy_ice( kt ) ! -- bdy ice thermo 232 232 233 write(numout,*)'icestp 3: e_s = ',e_s (42,26,1,1)233 write(numout,*)'icestp 3: sv_i, e_i, u_ice, e2u, u_oce = ',sv_i(3,4,1), ' ', e_i (3,4,1,1), ' ', u_ice(3,4), ' ', e2u(3,4), ' ', u_oce(3,4) 234 234 ! 235 235 ! !== previous lead fraction and ice volume for flux calculations 236 236 CALL ice_var_glo2eqv ! h_i and h_s for ice albedo calculation 237 237 238 write(numout,*)'icestp 4: t_s, e_s = ',t_s(ji,jj,jk,jl) - rt0, ' ', e_s (42,26,1,1)238 write(numout,*)'icestp 4: sv_i, e_i, u_ice, e2u, u_oce = ',sv_i(3,4,1), ' ', e_i (3,4,1,1), ' ', u_ice(3,4), ' ', e2u(3,4), ' ', u_oce(3,4) 239 239 240 240 CALL ice_var_agg(1) ! at_i for coupling 241 241 242 write(numout,*)'icestp 5: t_s, e_s = ',t_s(ji,jj,jk,jl) - rt0, ' ', e_s (42,26,1,1)242 write(numout,*)'icestp 5: sv_i, e_i, u_ice, e2u, u_oce = ',sv_i(3,4,1), ' ', e_i (3,4,1,1), ' ', u_ice(3,4), ' ', e2u(3,4), ' ', u_oce(3,4) 243 243 244 244 CALL store_fields ! Store now ice values 245 245 246 write(numout,*)'icestp 6: t_s, e_s = ',t_s(ji,jj,jk,jl) - rt0, ' ', e_s (42,26,1,1)246 write(numout,*)'icestp 6: sv_i, e_i, u_ice, e2u, u_oce = ',sv_i(3,4,1), ' ', e_i (3,4,1,1), ' ', u_ice(3,4), ' ', e2u(3,4), ' ', u_oce(3,4) 247 247 ! 248 248 !------------------------------------------------------! … … 260 260 !------------------------------------------------------! 261 261 CALL ice_sbc_flx( kt, ksbc ) 262 write(numout,*)'icestp 7: t_s, e_s = ',t_s(ji,jj,jk,jl) - rt0, ' ', e_s (42,26,1,1)262 write(numout,*)'icestp 7: sv_i, e_s = ',sv_i(3,4,1), ' ', e_s (3,4,1,1) 263 263 !----------------------------! 264 264 ! --- ice thermodynamics --- ! 265 265 !----------------------------! 266 266 IF( ln_icethd ) CALL ice_thd( kt ) ! -- Ice thermodynamics 267 write(numout,*)'icestp 8: t_s, e_s = ',t_s(ji,jj,jk,jl) - rt0, ' ', e_s (42,26,1,1)267 write(numout,*)'icestp 8: sv_i, e_s = ',sv_i(3,4,1), ' ', e_s (3,4,1,1) 268 268 ! 269 269 CALL ice_cor( kt , 2 ) ! -- Corrections 270 write(numout,*)'icestp 9: t_s, e_s = ',t_s(ji,jj,jk,jl) - rt0, ' ', e_s (42,26,1,1)270 write(numout,*)'icestp 9: sv_i, e_s = ',sv_i(3,4,1), ' ', e_s (3,4,1,1) 271 271 ! 272 272 CALL ice_var_glo2eqv ! necessary calls (at least for coupling) … … 490 490 wfx_snw(:,:) = 0._wp ; wfx_ice(:,:) = 0._wp 491 491 wfx_sni(:,:) = 0._wp ; wfx_opw(:,:) = 0._wp 492 wfx_snp(:,:) = 0._wp 492 493 wfx_bog(:,:) = 0._wp ; wfx_dyn(:,:) = 0._wp 493 494 wfx_bom(:,:) = 0._wp ; wfx_sum(:,:) = 0._wp -
NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/src/ICE/icethd.F90
r12449 r12475 442 442 CALL tab_2d_1d( npti, nptidx(1:npti), wfx_sum_1d (1:npti), wfx_sum ) 443 443 CALL tab_2d_1d( npti, nptidx(1:npti), wfx_sni_1d (1:npti), wfx_sni ) 444 CALL tab_2d_1d( npti, nptidx(1:npti), wfx_snp_1d (1:npti), wfx_snp ) 444 445 CALL tab_2d_1d( npti, nptidx(1:npti), wfx_res_1d (1:npti), wfx_res ) 445 446 CALL tab_2d_1d( npti, nptidx(1:npti), wfx_spr_1d (1:npti), wfx_spr ) … … 536 537 CALL tab_1d_2d( npti, nptidx(1:npti), wfx_sum_1d (1:npti), wfx_sum ) 537 538 CALL tab_1d_2d( npti, nptidx(1:npti), wfx_sni_1d (1:npti), wfx_sni ) 539 CALL tab_1d_2d( npti, nptidx(1:npti), wfx_snp_1d (1:npti), wfx_snp ) 538 540 CALL tab_1d_2d( npti, nptidx(1:npti), wfx_res_1d (1:npti), wfx_res ) 539 541 CALL tab_1d_2d( npti, nptidx(1:npti), wfx_spr_1d (1:npti), wfx_spr ) -
NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/src/ICE/icethd_dh.F90
r12449 r12475 296 296 ! Snow melt trapped in ponds contrbutes to ice thickness and snow to ice conversion 297 297 h_i_1d (ji) = MAX( 0._wp , h_i_1d(ji) - zdeltah_pnd(ji,jk) * rhos * r1_rhoi ) 298 wfx_sni_1d(ji) = wfx_sni_1d(ji) - a_i_1d(ji) * zdeltah_pnd(ji,jk) * rhos * r1_rdtice 299 wfx_snw_sni_1d(ji) = wfx_snw_sni_1d(ji) + a_i_1d(ji) * zdeltah_pnd(ji,jk) * rhos * r1_rdtice 298 wfx_snp_1d(ji) = wfx_snp_1d(ji) + a_i_1d(ji) * zdeltah_pnd(ji,jk) * rhos * r1_rdtice ! As zdeltah_pnd is negative this comes out as negative 300 299 ! 301 300 ENDIF -
NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/src/ICE/icethd_zdf_bl99.F90
r12374 r12475 102 102 ! 103 103 REAL(wp), DIMENSION(jpij) :: isnow ! fraction of sea ice that is snow covered (for thermodynamic use only) 104 LOGICAL, DIMENSION(jpij) :: l_snow ! is snow above the threshold105 104 REAL(wp), DIMENSION(jpij) :: ztsub ! surface temperature at previous iteration 106 105 REAL(wp), DIMENSION(jpij) :: zh_i, z1_h_i ! ice layer thickness … … 157 156 ! If the snow thickness drops below zhs_min then reduce the snow fraction instead 158 157 IF( h_s_1d(ji) < zhs_min ) THEN 159 ! isnow(ji) = h_s_1d(ji) / zhs_min 160 isnow(ji) = 0.0_wp 158 isnow(ji) = h_s_1d(ji) / zhs_min 161 159 zh_s(ji) = zhs_min * r1_nlay_s 162 l_snow(ji) = .false.163 160 ELSE 164 161 isnow(ji) = 1.0_wp 165 162 zh_s(ji) = h_s_1d(ji) * r1_nlay_s 166 l_snow(ji) = .true.167 163 END IF 168 164 … … 322 318 IF ( .NOT. l_T_converged(ji) ) & 323 319 zkappa_s(ji,jk) = zghe(ji) * rn_cnd_s * z1_h_s(ji) 324 IF ( .NOT. l_snow(ji) ) zkappa_s(ji,jk) = 0.0_wp325 320 END DO 326 321 END DO … … 370 365 DO jk = 1, nlay_s 371 366 DO ji = 1, npti 372 IF (l_snow(ji)) then 373 zeta_s(ji,jk) = rdt_ice * r1_rhos * r1_rcpi * z1_h_s(ji) 374 ELSE 375 zeta_s(ji,jk) = 0.0_wp 376 END IF 367 zeta_s(ji,jk) = rdt_ice * r1_rhos * r1_rcpi * z1_h_s(ji) 377 368 END DO 378 369 END DO … … 722 713 DO ji = 1, npti 723 714 ! !---------------------! 724 IF( l_snow(ji)) THEN ! snow-covered cells !715 IF( h_s_1d(ji) > 0._wp ) THEN ! snow-covered cells ! 725 716 ! !---------------------! 726 717 ! snow interior terms (bottom equation has the same form as the others) … … 779 770 zindterm(ji,jm_min(ji)) = ztiold(ji,1) + zeta_i(ji,1) * & 780 771 & ( zradab_i(ji,1) + zkappa_i(ji,1) * t_bo_1d(ji) + qcn_ice_1d(ji) ) 781 ENDIF 772 ENDIF 782 773 783 774 ENDIF 775 776 IF (to_print(ji) == 10) THEN 777 write(numout,*)'after minmax: h_s_1d(ji), jm_min(ji), nlay_s = ',h_s_1d(ji), ' ', jm_min(ji), ' ', nlay_s 778 ENDIF 779 784 780 ! 785 781 zindtbis(ji,jm_min(ji)) = zindterm(ji,jm_min(ji)) … … 802 798 DO jk = jm_mint+1, jm_maxt 803 799 DO ji = 1, npti 800 801 804 802 jm = MIN(MAX(jm_min(ji)+1,jk),jm_max(ji)) 803 IF (to_print(ji) == 10) THEN 804 write(numout,*)'before calc zdiagbis: jk, jm, zdiagbis(ji,jm-1) = ',jk, ' ', jm, ' ', zdiagbis(ji,jm-1) 805 write(numout,*)'before calc zdiagbis:ztrid(ji,jm,2), ztrid(ji,jm,1), ztrid(ji,jm-1,3) = ', ztrid(ji,jm,2), ' ', ztrid(ji,jm,1), ' ', ztrid(ji,jm-1,3) 806 ENDIF 807 805 808 zdiagbis(ji,jm) = ztrid (ji,jm,2) - ztrid(ji,jm,1) * ztrid (ji,jm-1,3) / zdiagbis(ji,jm-1) 806 809 zindtbis(ji,jm) = zindterm(ji,jm) - ztrid(ji,jm,1) * zindtbis(ji,jm-1) / zdiagbis(ji,jm-1) … … 838 841 write(numout,*)'icethd_zdf_bl99 2: t_s_1d(ji,1), e_s_1d(ji,1) = ',t_s_1d(ji,1), ' ', e_s_1d(ji,1) 839 842 write(numout,*)'icethd_zdf_bl99 2: zindtbis(ji,nlay_s+1), ztrid(ji,nlay_s+1,3), t_i_1d(ji,1) = ', zindtbis(ji,nlay_s+1), ' ', ztrid(ji,nlay_s+1,3), ' ', t_i_1d(ji,1) 843 write(numout,*)'icethd_zdf_bl99 2: zdiagbis(ji,nlay_s+1), h_s_1d(ji) = ',zdiagbis(ji,nlay_s+1), ' ', h_s_1d(ji) 840 844 END IF 841 845 END DO -
NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/src/ICE/iceupdate.F90
r12449 r12475 154 154 & + wfx_opw(ji,jj) + wfx_dyn(ji,jj) + wfx_res(ji,jj) + wfx_lam(ji,jj) + wfx_pnd(ji,jj) 155 155 156 157 156 158 ! add the snow melt water to snow mass flux to the ocean 157 159 wfx_snw(ji,jj) = wfx_snw_sni(ji,jj) + wfx_snw_dyn(ji,jj) + wfx_snw_sum(ji,jj) … … 161 163 emp(ji,jj) = emp_oce(ji,jj) - wfx_ice(ji,jj) - wfx_snw(ji,jj) - wfx_err_sub(ji,jj) ! mass flux + F/M mass flux (always ice/ocean mass exchange) 162 164 165 166 163 167 164 168 ! Salt flux at the ocean surface … … 166 170 sfx(ji,jj) = sfx_bog(ji,jj) + sfx_bom(ji,jj) + sfx_sum(ji,jj) + sfx_sni(ji,jj) + sfx_opw(ji,jj) & 167 171 & + sfx_res(ji,jj) + sfx_dyn(ji,jj) + sfx_bri(ji,jj) + sfx_sub(ji,jj) + sfx_lam(ji,jj) + sfx_pnd(ji,jj) 172 173 168 174 169 175 ! Mass of snow and ice per unit area … … 177 183 END DO 178 184 END DO 185 186 write(numout,*)'iceupdate: MEAN(wfx_pnd) = ',SUM(wfx_pnd)/SIZE(wfx_pnd) 187 write(numout,*)'iceupdate: MEAN(wfx_sum) = ',SUM(wfx_sum)/SIZE(wfx_sum) 188 write(numout,*)'iceupdate: MEAN(wfx_bom) = ',SUM(wfx_bom)/SIZE(wfx_bom) 189 write(numout,*)'iceupdate: MEAN(wfx_ice) = ',SUM(wfx_ice)/SIZE(wfx_ice) 190 write(numout,*)'iceupdate: MEAN(wfx_sni) = ',SUM(wfx_sni)/SIZE(wfx_sni) 191 write(numout,*)'iceupdate: MEAN(wfx_snp) = ',SUM(wfx_snp)/SIZE(wfx_snp) 192 write(numout,*)'iceupdate: MEAN(fmmflx) = ',SUM(fmmflx)/SIZE(fmmflx) 193 write(numout,*)'iceupdate: MEAN(wfx_snw) = ',SUM(wfx_snw)/SIZE(wfx_snw) 194 write(numout,*)'iceupdate: MEAN(emp) = ',SUM(emp)/SIZE(emp) 195 write(numout,*)'iceupdate: MEAN(emp_oce) = ',SUM(emp_oce)/SIZE(emp_oce) 196 write(numout,*)'iceupdate: MEAN(sfx) = ',SUM(sfx)/SIZE(sfx) 197 write(numout,*)'iceupdate: MEAN(sfx_sni) = ',SUM(sfx_sni)/SIZE(sfx_sni) 198 write(numout,*)'iceupdate: MEAN(sfx_pnd) = ',SUM(sfx_pnd)/SIZE(sfx_pnd) 199 write(numout,*)'iceupdate: MEAN(sfx_sum) = ',SUM(sfx_sum)/SIZE(sfx_sum) 200 write(numout,*)'iceupdate: MEAN(sfx_bom) = ',SUM(sfx_sum)/SIZE(sfx_bom) 201 write(numout,*)'iceupdate: MAXVAL(wfx_pnd) = ',MAXVAL(wfx_pnd) 202 write(numout,*)'iceupdate: MINVAL(wfx_pnd) = ',MINVAL(wfx_pnd) 203 write(numout,*)'iceupdate: MAXVAL(wfx_bom) = ',MAXVAL(wfx_bom) 204 write(numout,*)'iceupdate: MINVAL(wfx_bom) = ',MINVAL(wfx_bom) 205 write(numout,*)'iceupdate: MAXVAL(wfx_sni) = ',MAXVAL(wfx_sni) 206 write(numout,*)'iceupdate: MINVAL(wfx_sni) = ',MINVAL(wfx_sni) 207 write(numout,*)'iceupdate: MAXVAL(sfx_pnd) = ',MAXVAL(sfx_pnd) 208 write(numout,*)'iceupdate: MINVAL(sfx_pnd) = ',MINVAL(sfx_pnd) 209 write(numout,*)'iceupdate: MAXVAL(sfx_bom) = ',MAXVAL(sfx_bom) 210 write(numout,*)'iceupdate: MINVAL(sfx_bom) = ',MINVAL(sfx_bom) 211 179 212 180 213 ! Storing the transmitted variables -
NEMO/branches/UKMO/NEMO_4.0_add_pond_lids_prints/src/ICE/icewri.F90
r12439 r12475 172 172 !------------------ 173 173 ! trends 174 IF( iom_use('dmithd') ) CALL iom_put( "dmithd", - wfx_bog - wfx_bom - wfx_sum - wfx_sni - wfx_opw - wfx_lam - wfx_res - wfx_pnd ) ! Sea-ice mass change from thermodynamics174 IF( iom_use('dmithd') ) CALL iom_put( "dmithd", - wfx_bog - wfx_bom - wfx_sum - wfx_sni - wfx_opw - wfx_lam - wfx_res - wfx_pnd - wfx_snp ) ! Sea-ice mass change from thermodynamics 175 175 IF( iom_use('dmidyn') ) CALL iom_put( "dmidyn", - wfx_dyn + rhoi * diag_trp_vi ) ! Sea-ice mass change from dynamics(kg/m2/s) 176 176 IF( iom_use('dmiopw') ) CALL iom_put( "dmiopw", - wfx_opw ) ! Sea-ice mass change through growth in open water 177 177 IF( iom_use('dmibog') ) CALL iom_put( "dmibog", - wfx_bog ) ! Sea-ice mass change through basal growth 178 178 IF( iom_use('dmisni') ) CALL iom_put( "dmisni", - wfx_sni ) ! Sea-ice mass change through snow-to-ice conversion 179 IF( iom_use('dmisnp') ) CALL iom_put( "dmisnp", - wfx_snp ) ! Sea-ice mass change through snow melt into ponds 179 180 IF( iom_use('dmisum') ) CALL iom_put( "dmisum", - wfx_sum ) ! Sea-ice mass change through surface melting 180 181 IF( iom_use('dmipnd') ) CALL iom_put( "dmipnd", - wfx_pnd ) ! Sea-ice mass change through meltponds overflowing to ocean
Note: See TracChangeset
for help on using the changeset viewer.