- Timestamp:
- 2017-07-12T17:52:17+02:00 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/limthd_dh.F90
r8325 r8326 18 18 USE par_oce ! ocean parameters 19 19 USE phycst ! physical constants (OCE directory) 20 USE sbc_oce , ONLY : sst_m, sss_m21 20 USE ice ! LIM variables 22 21 USE thd_ice ! LIM thermodynamics … … 70 69 !! 71 70 INTEGER :: ji , jk ! dummy loop indices 72 INTEGER :: ii, ij ! 2D corresponding indices to ji73 71 INTEGER :: iter 74 72 … … 87 85 REAL(wp) :: zdE ! specific enthalpy difference (J/kg) 88 86 REAL(wp) :: zfmdt ! exchange mass flux x time step (J/m2), >0 towards the ocean 89 REAL(wp) :: zsstK ! SST (K)90 87 91 88 REAL(wp), POINTER, DIMENSION(:) :: zqprec ! energy of fallen snow (J.m-3) … … 403 400 ! remaining "potential" evap is sent to ocean 404 401 DO ji = kideb, kiut 405 ii = MOD( npb(ji) - 1, jpi ) + 1 ; ij = ( npb(ji) - 1 ) / jpi + 1 406 wfx_err_sub(ii,ij) = wfx_err_sub(ii,ij) - zevap_rema(ji) * a_i_1d(ji) * r1_rdtice ! <=0 (net evap for the ocean in kg.m-2.s-1) 402 wfx_err_sub_1d(ji) = wfx_err_sub_1d(ji) - zevap_rema(ji) * a_i_1d(ji) * r1_rdtice ! <=0 (net evap for the ocean in kg.m-2.s-1) 407 403 END DO 408 404 … … 445 441 & + zswi2 * 0.26 / ( 0.26 + 0.74 * EXP ( - 724300.0 * zgrr ) ) , 0.5 ) 446 442 447 ii = MOD( npb(ji) - 1, jpi ) + 1 ; ij = ( npb(ji) - 1 ) / jpi + 1 448 449 s_i_new(ji) = zswitch_sal * zfracs * sss_m(ii,ij) & ! New ice salinity 443 s_i_new(ji) = zswitch_sal * zfracs * sss_1d(ji) & ! New ice salinity 450 444 + ( 1. - zswitch_sal ) * sm_i_1d(ji) 451 445 ! New ice growth … … 611 605 wfx_snw_sum_1d(ji) = wfx_snw_sum_1d(ji) - rhosn * a_i_1d(ji) * zdeltah(ji,1) * r1_rdtice 612 606 ! 613 ii = MOD( npb(ji) - 1, jpi ) + 1 ; ij = ( npb(ji) - 1 ) / jpi + 1614 607 ! Remaining heat flux (W.m-2) is sent to the ocean heat budget 615 hfx_out (ii,ij) = hfx_out(ii,ij) + ( zq_rema(ji) * a_i_1d(ji) ) * r1_rdtice608 hfx_out_1d(ji) = hfx_out_1d(ji) + ( zq_rema(ji) * a_i_1d(ji) ) * r1_rdtice 616 609 617 610 IF( ln_limctl .AND. zq_rema(ji) < 0. .AND. lwp ) WRITE(numout,*) 'ALERTE zq_rema <0 = ', zq_rema(ji) … … 637 630 638 631 ! Contribution to energy flux to the ocean [J/m2], >0 (if sst<0) 639 ii = MOD( npb(ji) - 1, jpi ) + 1 ; ij = ( npb(ji) - 1 ) / jpi + 1640 632 zfmdt = ( rhosn - rhoic ) * dh_snowice(ji) ! <0 641 zsstK = sst_m(ii,ij) + rt0 642 zEw = rcp * ( zsstK - rt0 ) 633 zEw = rcp * sst_1d(ji) 643 634 zQm = zfmdt * zEw 644 635 … … 647 638 648 639 ! Contribution to salt flux 649 sfx_sni_1d(ji) = sfx_sni_1d(ji) + sss_ m(ii,ij) * a_i_1d(ji) * zfmdt * r1_rdtice640 sfx_sni_1d(ji) = sfx_sni_1d(ji) + sss_1d(ji) * a_i_1d(ji) * zfmdt * r1_rdtice 650 641 651 642 ! virtual salt flux to keep salinity constant 652 643 IF( nn_icesal == 1 .OR. nn_icesal == 3 ) THEN 653 sfx_bri_1d(ji) = sfx_bri_1d(ji) - sss_ m(ii,ij) * a_i_1d(ji) * zfmdt * r1_rdtice & ! put back sss_m into the ocean644 sfx_bri_1d(ji) = sfx_bri_1d(ji) - sss_1d (ji) * a_i_1d(ji) * zfmdt * r1_rdtice & ! put back sss_m into the ocean 654 645 & - sm_i_1d(ji) * a_i_1d(ji) * dh_snowice(ji) * rhoic * r1_rdtice ! and get rn_icesal from the ocean 655 646 ENDIF
Note: See TracChangeset
for help on using the changeset viewer.