- Timestamp:
- 2014-07-25T10:28:42+02:00 (10 years ago)
- Location:
- branches/2014/dev_4728_CNRS04_coupled_interface/NEMOGCM/NEMO/OPA_SRC/SBC
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2014/dev_4728_CNRS04_coupled_interface/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_clio.F90
r4730 r4731 398 398 399 399 400 SUBROUTINE blk_ice_clio( pst , palb_cs, palb_os , palb&400 SUBROUTINE blk_ice_clio( pst , palb_cs, palb_os, palb, & 401 401 & p_taui, p_tauj, p_qns , p_qsr, & 402 402 & p_qla , p_dqns, p_dqla, & -
branches/2014/dev_4728_CNRS04_coupled_interface/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_lim.F90
r4730 r4731 69 69 70 70 PUBLIC sbc_ice_lim ! routine called by sbcmod.F90 71 PUBLIC lim_prt_state 71 72 72 73 !! * Substitutions … … 108 109 REAL(wp) :: zcoef ! local scalar 109 110 REAL(wp), POINTER, DIMENSION(:,:,:) :: zalb_os, zalb_cs ! ice albedo under overcast/clear sky 110 REAL(wp), POINTER, DIMENSION(:,:,:) :: zalb_ice ! mean ice albedo of ice(for coupled)111 REAL(wp), POINTER, DIMENSION(:,:,:) :: zalb_ice ! mean ice albedo (for coupled) 111 112 !!---------------------------------------------------------------------- 112 113 … … 121 122 ! 122 123 IF( ln_nicep ) THEN ! control print at a given point 123 jiindx = 1 77 ; jjindx = 112124 jiindx = 15 ; jjindx = 44 124 125 IF(lwp) WRITE(numout,*) ' The debugging point is : jiindx : ',jiindx, ' jjindx : ',jjindx 125 126 ENDIF … … 135 136 v_oce(:,:) = ssv_m(:,:) ! (C-grid dynamics : U- & V-points as the ocean) 136 137 ! 137 t_bo(:,:) = eos_fzp( sss_m ) + rt0! masked sea surface freezing temperature [Kelvin]138 ! ! (set to rt0 over land)138 ! masked sea surface freezing temperature [Kelvin] 139 t_bo(:,:) = ( tfreez( sss_m ) + rt0 ) * tmask(:,:,1) + rt0 * ( 1. - tmask(:,:,1) ) 139 140 140 141 ! ! Ice albedo … … 149 150 zalb_ice(:,:,:) = ( 1. - cldf_ice ) * zalb_cs(:,:,:) + cldf_ice * zalb_os(:,:,:) 150 151 ! In CLIO the cloud fraction is read in the climatology and the all-sky albedo 151 ! zalb_iceis computed within the bulk routine152 ! (zalb_ice) is computed within the bulk routine 152 153 153 154 END SELECT … … 168 169 SELECT CASE( kblk ) 169 170 CASE( 3 ) ! CLIO bulk formulation 170 CALL blk_ice_clio( t_su , zalb_cs , zalb_os, zalb_ice&171 CALL blk_ice_clio( t_su , zalb_cs , zalb_os , zalb_ice , & 171 172 & utau_ice , vtau_ice , qns_ice , qsr_ice , & 172 173 & qla_ice , dqns_ice , dqla_ice , & … … 178 179 179 180 CASE( 4 ) ! CORE bulk formulation 180 CALL blk_ice_core( t_su , u_ice , v_ice , zalb_ice ,&181 CALL blk_ice_core( t_su , u_ice , v_ice , zalb_ice , & 181 182 & utau_ice , vtau_ice , qns_ice , qsr_ice , & 182 183 & qla_ice , dqns_ice , dqla_ice , & … … 219 220 old_smv_i(:,:,:) = smv_i(:,:,:) ! salt content 220 221 old_oa_i (:,:,:) = oa_i (:,:,:) ! areal age content 221 !222 old_ u_ice(:,:) = u_ice(:,:)223 old_v_ice(:,:) = v_ice(:,:) 224 ! ! intialisation to zero!!gm is it truly necessary ???222 old_u_ice(:,:) = u_ice(:,:) 223 old_v_ice(:,:) = v_ice(:,:) 224 225 ! trends !!gm is it truly necessary ??? 225 226 d_a_i_thd (:,:,:) = 0._wp ; d_a_i_trp (:,:,:) = 0._wp 226 227 d_v_i_thd (:,:,:) = 0._wp ; d_v_i_trp (:,:,:) = 0._wp … … 230 231 d_smv_i_thd(:,:,:) = 0._wp ; d_smv_i_trp(:,:,:) = 0._wp 231 232 d_oa_i_thd (:,:,:) = 0._wp ; d_oa_i_trp (:,:,:) = 0._wp 232 ! 233 d_u_ice_dyn(:,:) = 0._wp 234 d_v_ice_dyn(:,:) = 0._wp 235 ! 236 sfx (:,:) = 0._wp ; sfx_thd (:,:) = 0._wp 237 sfx_bri(:,:) = 0._wp ; sfx_mec (:,:) = 0._wp ; sfx_res (:,:) = 0._wp 238 fhbri (:,:) = 0._wp ; fheat_mec(:,:) = 0._wp ; fheat_res(:,:) = 0._wp 239 fhmec (:,:) = 0._wp ; 240 fmmec (:,:) = 0._wp 241 fmmflx (:,:) = 0._wp 242 focea2D(:,:) = 0._wp 243 fsup2D (:,:) = 0._wp 244 245 ! used in limthd.F90 246 rdvosif(:,:) = 0._wp ! variation of ice volume at surface 247 rdvobif(:,:) = 0._wp ! variation of ice volume at bottom 248 fdvolif(:,:) = 0._wp ! total variation of ice volume 249 rdvonif(:,:) = 0._wp ! lateral variation of ice volume 250 fstric (:,:) = 0._wp ! part of solar radiation transmitted through the ice 251 ffltbif(:,:) = 0._wp ! linked with fstric 252 qfvbq (:,:) = 0._wp ! linked with fstric 253 rdm_snw(:,:) = 0._wp ! variation of snow mass per unit area 254 rdm_ice(:,:) = 0._wp ! variation of ice mass per unit area 255 hicifp (:,:) = 0._wp ! daily thermodynamic ice production. 256 ! 257 diag_sni_gr(:,:) = 0._wp ; diag_lat_gr(:,:) = 0._wp 258 diag_bot_gr(:,:) = 0._wp ; diag_dyn_gr(:,:) = 0._wp 259 diag_bot_me(:,:) = 0._wp ; diag_sur_me(:,:) = 0._wp 260 diag_res_pr(:,:) = 0._wp ; diag_trp_vi(:,:) = 0._wp 233 d_u_ice_dyn(:,:) = 0._wp ; d_v_ice_dyn(:,:) = 0._wp 234 235 ! salt, heat and mass fluxes 236 sfx (:,:) = 0._wp ; 237 sfx_bri(:,:) = 0._wp ; sfx_dyn(:,:) = 0._wp 238 sfx_sni(:,:) = 0._wp ; sfx_opw(:,:) = 0._wp 239 sfx_bog(:,:) = 0._wp ; sfx_dyn(:,:) = 0._wp 240 sfx_bom(:,:) = 0._wp ; sfx_sum(:,:) = 0._wp 241 sfx_res(:,:) = 0._wp 242 243 wfx_snw(:,:) = 0._wp ; wfx_ice(:,:) = 0._wp 244 wfx_sni(:,:) = 0._wp ; wfx_opw(:,:) = 0._wp 245 wfx_bog(:,:) = 0._wp ; wfx_dyn(:,:) = 0._wp 246 wfx_bom(:,:) = 0._wp ; wfx_sum(:,:) = 0._wp 247 wfx_res(:,:) = 0._wp ; wfx_sub(:,:) = 0._wp 248 wfx_spr(:,:) = 0._wp ; 249 250 hfx_in (:,:) = 0._wp ; hfx_out(:,:) = 0._wp 251 hfx_thd(:,:) = 0._wp ; 252 hfx_snw(:,:) = 0._wp ; hfx_opw(:,:) = 0._wp 253 hfx_bog(:,:) = 0._wp ; hfx_dyn(:,:) = 0._wp 254 hfx_bom(:,:) = 0._wp ; hfx_sum(:,:) = 0._wp 255 hfx_res(:,:) = 0._wp ; hfx_sub(:,:) = 0._wp 256 hfx_spr(:,:) = 0._wp ; hfx_dif(:,:) = 0._wp 257 hfx_err(:,:) = 0._wp ; hfx_err_rem(:,:) = 0._wp 258 259 ! 260 fhld (:,:) = 0._wp 261 fmmflx(:,:) = 0._wp 262 ! part of solar radiation transmitted through the ice 263 ftr_ice(:,:,:) = 0._wp 264 265 ! diags 266 diag_trp_vi (:,:) = 0._wp ; diag_trp_vs(:,:) = 0._wp ; diag_trp_ei(:,:) = 0._wp ; diag_trp_es(:,:) = 0._wp 267 diag_heat_dhc(:,:) = 0._wp 268 261 269 ! dynamical invariants 262 270 delta_i(:,:) = 0._wp ; divu_i(:,:) = 0._wp ; shear_i(:,:) = 0._wp … … 309 317 zcoef = rdt_ice /rday ! Ice natural aging 310 318 oa_i(:,:,:) = oa_i(:,:,:) + a_i(:,:,:) * zcoef 311 CALL lim_var_glo2eqv ! this CALL is maybe not necessary (Martin)312 319 IF( ln_nicep ) CALL lim_prt_state( kt, jiindx, jjindx, 1, ' - ice thermodyn. - ' ) ! control print 313 320 CALL lim_itd_th( kt ) ! Remap ice categories, lateral accretion ! … … 325 332 ! ! Diagnostics and outputs 326 333 IF (ln_limdiaout) CALL lim_diahsb 327 !clem # if ! defined key_iomput 334 328 335 CALL lim_wri( 1 ) ! Ice outputs 329 !clem # endif 336 330 337 IF( kt == nit000 .AND. ln_rstart ) & 331 338 & CALL iom_close( numrir ) ! clem: close input ice restart file … … 541 548 ! WRITE(numout,*) ' sst : ', sst_m(ji,jj) 542 549 ! WRITE(numout,*) ' sss : ', sss_m(ji,jj) 543 ! WRITE(numout,*) ' s_i_newice : ', s_i_newice(ji,jj,1:jpl)544 550 ! WRITE(numout,*) 545 551 inb_alp(ialert_id) = inb_alp(ialert_id) + 1 … … 598 604 !WRITE(numout,*) ' sst : ', sst_m(ji,jj) 599 605 !WRITE(numout,*) ' sss : ', sss_m(ji,jj) 600 !WRITE(numout,*) ' qcmif : ', qcmif(ji,jj)601 !WRITE(numout,*) ' qldif : ', qldif(ji,jj)602 !WRITE(numout,*) ' qcmif : ', qcmif(ji,jj) / rdt_ice603 !WRITE(numout,*) ' qldif : ', qldif(ji,jj) / rdt_ice604 !WRITE(numout,*) ' qfvbq : ', qfvbq(ji,jj)605 !WRITE(numout,*) ' qdtcn : ', qdtcn(ji,jj)606 !WRITE(numout,*) ' qfvbq / dt: ', qfvbq(ji,jj) / rdt_ice607 !WRITE(numout,*) ' qdtcn / dt: ', qdtcn(ji,jj) / rdt_ice608 !WRITE(numout,*) ' fdtcn : ', fdtcn(ji,jj)609 !WRITE(numout,*) ' fhmec : ', fhmec(ji,jj)610 !WRITE(numout,*) ' fheat_mec : ', fheat_mec(ji,jj)611 !WRITE(numout,*) ' fheat_res : ', fheat_res(ji,jj)612 !WRITE(numout,*) ' fhbri : ', fhbri(ji,jj)613 606 ! 614 607 !CALL lim_prt_state( kt, ji, jj, 2, ' ') … … 797 790 WRITE(numout,*) ' - Heat / FW fluxes ' 798 791 WRITE(numout,*) ' ~~~~~~~~~~~~~~~~ ' 799 WRITE(numout,*) ' emp : ', emp (ji,jj) 800 WRITE(numout,*) ' sfx : ', sfx (ji,jj) 801 WRITE(numout,*) ' sfx_thd : ', sfx_thd(ji,jj) 802 WRITE(numout,*) ' sfx_bri : ', sfx_bri (ji,jj) 803 WRITE(numout,*) ' sfx_mec : ', sfx_mec (ji,jj) 804 WRITE(numout,*) ' sfx_res : ', sfx_res(ji,jj) 805 WRITE(numout,*) ' fmmec : ', fmmec (ji,jj) 806 WRITE(numout,*) ' fhmec : ', fhmec (ji,jj) 807 WRITE(numout,*) ' fhbri : ', fhbri (ji,jj) 808 WRITE(numout,*) ' fheat_mec : ', fheat_mec(ji,jj) 792 WRITE(numout,*) ' - Heat fluxes in and out the ice ***' 793 WRITE(numout,*) ' qsr_ini : ', pfrld(ji,jj) * qsr(ji,jj) + SUM( old_a_i(ji,jj,:) * qsr_ice(ji,jj,:) ) 794 WRITE(numout,*) ' qns_ini : ', pfrld(ji,jj) * qns(ji,jj) + SUM( old_a_i(ji,jj,:) * qns_ice(ji,jj,:) ) 795 WRITE(numout,*) 809 796 WRITE(numout,*) 810 797 WRITE(numout,*) ' sst : ', sst_m(ji,jj) … … 836 823 WRITE(numout,*) ' qsr : ', qsr(ji,jj) 837 824 WRITE(numout,*) ' qns : ', qns(ji,jj) 838 WRITE(numout,*) ' fdtcn : ', fdtcn(ji,jj) 839 WRITE(numout,*) ' qcmif : ', qcmif(ji,jj) * r1_rdtice 840 WRITE(numout,*) ' qldif : ', qldif(ji,jj) * r1_rdtice 825 WRITE(numout,*) 826 WRITE(numout,*) ' hfx_mass : ', hfx_thd(ji,jj) + hfx_dyn(ji,jj) + hfx_snw(ji,jj) + hfx_res(ji,jj) 827 WRITE(numout,*) ' hfx_in : ', hfx_in(ji,jj) 828 WRITE(numout,*) ' hfx_out : ', hfx_out(ji,jj) 829 WRITE(numout,*) ' dhc : ', diag_heat_dhc(ji,jj) 830 WRITE(numout,*) 831 WRITE(numout,*) ' hfx_dyn : ', hfx_dyn(ji,jj) 832 WRITE(numout,*) ' hfx_thd : ', hfx_thd(ji,jj) 833 WRITE(numout,*) ' hfx_res : ', hfx_res(ji,jj) 834 WRITE(numout,*) ' fhtur : ', fhtur(ji,jj) 835 WRITE(numout,*) ' qlead : ', qlead(ji,jj) * r1_rdtice 841 836 WRITE(numout,*) 842 837 WRITE(numout,*) ' - Salt fluxes at bottom interface ***' 843 838 WRITE(numout,*) ' emp : ', emp (ji,jj) 844 WRITE(numout,*) ' sfx_bri : ', sfx_bri(ji,jj)845 839 WRITE(numout,*) ' sfx : ', sfx (ji,jj) 846 840 WRITE(numout,*) ' sfx_res : ', sfx_res(ji,jj) 847 WRITE(numout,*) ' sfx_mec : ', sfx_mec(ji,jj) 848 WRITE(numout,*) ' - Heat fluxes at bottom interface ***' 849 WRITE(numout,*) ' fheat_res : ', fheat_res(ji,jj) 841 WRITE(numout,*) ' sfx_bri : ', sfx_bri(ji,jj) 842 WRITE(numout,*) ' sfx_dyn : ', sfx_dyn(ji,jj) 850 843 WRITE(numout,*) 851 844 WRITE(numout,*) ' - Momentum fluxes ' 852 845 WRITE(numout,*) ' utau : ', utau(ji,jj) 853 846 WRITE(numout,*) ' vtau : ', vtau(ji,jj) 854 ENDIF 847 ENDIF 855 848 WRITE(numout,*) ' ' 856 849 ! 857 850 END DO 858 851 END DO 859 ! 852 860 853 END SUBROUTINE lim_prt_state 861 854
Note: See TracChangeset
for help on using the changeset viewer.