Changeset 8313 for branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/OPA_SRC
- Timestamp:
- 2017-07-10T20:24:21+02:00 (7 years ago)
- Location:
- branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/OPA_SRC
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/OPA_SRC/ASM/asmbkg.F90
r8306 r8313 146 146 CALL iom_rstput( kt, nitdin_r, inum, 'sshn' , sshn ) 147 147 #if defined key_lim3 148 IF( nn_ice == 2 .OR. nn_ice ==3 ) THEN149 IF( ALLOCATED( frld) ) THEN150 CALL iom_rstput( kt, nitdin_r, inum, 'iceconc', 1._wp - frld(:,:) )148 IF( nn_ice == 3 ) THEN 149 IF( ALLOCATED(at_i) ) THEN 150 CALL iom_rstput( kt, nitdin_r, inum, 'iceconc', at_i(:,:) ) 151 151 ELSE 152 CALL ctl_warn('Ice concentration not written to background as ice variable frldnot allocated on this timestep')152 CALL ctl_warn('Ice concentration not written to background as ice variable at_i not allocated on this timestep') 153 153 ENDIF 154 154 ENDIF -
branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/OPA_SRC/ASM/asminc.F90
r8306 r8313 36 36 USE lib_mpp ! MPP library 37 37 #if defined key_lim3 38 USE ice, ONLY: htm_i, at_i, pfrld, phicif38 USE ice, ONLY: htm_i, at_i, at_i_b 39 39 #endif 40 40 USE sbc_oce ! Surface boundary condition variables. … … 837 837 zohicif(:,:) = htm_i(:,:) 838 838 ! 839 at_i (:,:) = 1. - MIN( MAX( 1.-at_i(:,:) - seaice_bkginc(:,:) * zincwgt, 0.0_wp), 1.0_wp)840 pfrld = MIN( MAX( pfrld(:,:)- seaice_bkginc(:,:) * zincwgt, 0.0_wp), 1.0_wp)839 at_i (:,:) = 1. - MIN( MAX( 1.-at_i (:,:) - seaice_bkginc(:,:) * zincwgt, 0.0_wp), 1.0_wp) 840 at_i_b(:,:) = 1. - MIN( MAX( 1.-at_i_b(:,:) - seaice_bkginc(:,:) * zincwgt, 0.0_wp), 1.0_wp) 841 841 fr_i(:,:) = at_i(:,:) ! adjust ice fraction 842 842 ! … … 852 852 ! nudge ice depth 853 853 htm_i (:,:) = htm_i (:,:) + zhicifinc(:,:) 854 phicif(:,:) = phicif(:,:) + zhicifinc(:,:)855 854 ! 856 855 ! seaice salinity balancing (to add) … … 889 888 ! Initialize the now fields the background + increment 890 889 at_i(:,:) = 1. - MIN( MAX( 1.-at_i(:,:) - seaice_bkginc(:,:), 0.0_wp), 1.0_wp) 891 pfrld(:,:) = 1.-at_i(:,:)890 at_i_b(:,:) = at_i(:,:) 892 891 fr_i(:,:) = at_i(:,:) ! adjust ice fraction 893 892 ! … … 903 902 ! nudge ice depth 904 903 htm_i (:,:) = htm_i (:,:) + zhicifinc(:,:) 905 phicif(:,:) = phicif(:,:)906 904 ! 907 905 ! seaice salinity balancing (to add) -
branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg.F90
r7753 r8313 89 89 IF( ln_apr_dyn & ! atmos. pressure 90 90 .OR. ( .NOT.ln_dynspg_ts .AND. (ln_tide_pot .AND. ln_tide) ) & ! tide potential (no time slitting) 91 .OR. nn_ice_embd == 2 ) THEN! embedded sea-ice91 .OR. ln_ice_embd ) THEN ! embedded sea-ice 92 92 ! 93 93 DO jj = 2, jpjm1 … … 123 123 ENDIF 124 124 ! 125 IF( nn_ice_embd == 2) THEN !== embedded sea ice: Pressure gradient due to snow-ice mass ==!125 IF( ln_ice_embd ) THEN !== embedded sea ice: Pressure gradient due to snow-ice mass ==! 126 126 CALL wrk_alloc( jpi,jpj, zpice ) 127 127 ! -
branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/OPA_SRC/OBS/diaobs.F90
r8306 r8313 539 539 #if defined key_lim3 540 540 USE ice, ONLY : & ! LIM3 Ice model variables 541 & frld541 & at_i 542 542 #endif 543 543 IMPLICIT NONE … … 564 564 & zgphi2 ! Model latitudes for prof variable 2 565 565 #if ! defined key_lim3 566 REAL(wp), POINTER, DIMENSION(:,:) :: frld566 REAL(wp), POINTER, DIMENSION(:,:) :: at_i 567 567 #endif 568 568 LOGICAL :: llnightav ! Logical for calculating night-time average … … 579 579 CALL wrk_alloc( jpi, jpj, zgphi2 ) 580 580 #if ! defined key_lim3 581 CALL wrk_alloc(jpi,jpj, frld)581 CALL wrk_alloc(jpi,jpj,at_i) 582 582 #endif 583 583 … … 591 591 592 592 !----------------------------------------------------------------------- 593 ! No LIM => frld== 0.0_wp593 ! No LIM => at_i == 0.0_wp 594 594 !----------------------------------------------------------------------- 595 595 #if ! defined key_lim3 596 frld(:,:) = 0.0_wp596 at_i(:,:) = 0.0_wp 597 597 #endif 598 598 !----------------------------------------------------------------------- … … 674 674 CYCLE 675 675 ELSE 676 zsurfvar(:,:) = 1._wp - frld(:,:)676 zsurfvar(:,:) = at_i(:,:) 677 677 ENDIF 678 678 … … 699 699 CALL wrk_dealloc( jpi, jpj, zgphi2 ) 700 700 #if ! defined key_lim3 701 CALL wrk_dealloc(jpi,jpj, frld)701 CALL wrk_dealloc(jpi,jpj,at_i) 702 702 #endif 703 703 -
branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/OPA_SRC/SBC/sbc_oce.F90
r7788 r8313 47 47 LOGICAL , PUBLIC :: ln_apr_dyn !: Atmospheric pressure forcing used on dynamics (ocean & ice) 48 48 INTEGER , PUBLIC :: nn_ice !: flag for ice in the surface boundary condition (=0/1/2/3) 49 INTEGER , PUBLIC :: nn_ice_embd !: flag for levitating/embedding sea-ice in the ocean 50 ! !: =0 levitating ice (no mass exchange, concentration/dilution effect) 51 ! !: =1 levitating ice with mass and salt exchange but no presure effect 52 ! !: =2 embedded sea-ice (full salt and mass exchanges and pressure) 49 LOGICAL , PUBLIC :: ln_ice_embd !: flag for levitating/embedding sea-ice in the ocean 50 ! !: =F levitating ice with mass and salt exchange but no presure effect 51 ! !: =T embedded sea-ice (full salt and mass exchanges and pressure) 53 52 INTEGER , PUBLIC :: nn_components !: flag for sbc module (including sea-ice) coupling mode (see component definition below) 54 53 INTEGER , PUBLIC :: nn_limflx !: LIM3 Multi-category heat flux formulation -
branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk.F90
r8306 r8313 40 40 USE lib_fortran ! to use key_nosignedzero 41 41 #if defined key_lim3 42 USE ice , ONLY : u_ice, v_ice, jpl, pfrld,a_i_b, at_i_b42 USE ice , ONLY : u_ice, v_ice, jpl, a_i_b, at_i_b 43 43 USE limthd_dh ! for CALL lim_thd_snwblow 44 44 #endif … … 789 789 ! --- evaporation minus precipitation --- ! 790 790 zsnw(:,:) = 0._wp 791 CALL lim_thd_snwblow( pfrld, zsnw ) ! snow distribution over ice after wind blowing792 emp_oce(:,:) = pfrld(:,:) * zevap(:,:) - ( tprecip(:,:) - sprecip(:,:) ) - sprecip(:,:) * (1._wp - zsnw )791 CALL lim_thd_snwblow( (1.-at_i_b(:,:)), zsnw ) ! snow distribution over ice after wind blowing 792 emp_oce(:,:) = ( 1._wp - at_i_b(:,:) ) * zevap(:,:) - ( tprecip(:,:) - sprecip(:,:) ) - sprecip(:,:) * (1._wp - zsnw ) 793 793 emp_ice(:,:) = SUM( a_i_b(:,:,:) * evap_ice(:,:,:), dim=3 ) - sprecip(:,:) * zsnw 794 794 emp_tot(:,:) = emp_oce(:,:) + emp_ice(:,:) 795 795 796 796 ! --- heat flux associated with emp --- ! 797 qemp_oce(:,:) = - pfrld(:,:) * zevap(:,:) * sst_m(:,:) * rcp& ! evap at sst797 qemp_oce(:,:) = - ( 1._wp - at_i_b(:,:) ) * zevap(:,:) * sst_m(:,:) * rcp & ! evap at sst 798 798 & + ( tprecip(:,:) - sprecip(:,:) ) * ( sf(jp_tair)%fnow(:,:,1) - rt0 ) * rcp & ! liquid precip at Tair 799 799 & + sprecip(:,:) * ( 1._wp - zsnw ) * & ! solid precip at min(Tair,Tsnow) … … 803 803 804 804 ! --- total solar and non solar fluxes --- ! 805 qns_tot(:,:) = pfrld(:,:) * qns_oce(:,:) + SUM( a_i_b(:,:,:) * qns_ice(:,:,:), dim=3 ) + qemp_ice(:,:) + qemp_oce(:,:) 806 qsr_tot(:,:) = pfrld(:,:) * qsr_oce(:,:) + SUM( a_i_b(:,:,:) * qsr_ice(:,:,:), dim=3 ) 805 qns_tot(:,:) = ( 1._wp - at_i_b(:,:) ) * qns_oce(:,:) + SUM( a_i_b(:,:,:) * qns_ice(:,:,:), dim=3 ) & 806 & + qemp_ice(:,:) + qemp_oce(:,:) 807 qsr_tot(:,:) = ( 1._wp - at_i_b(:,:) ) * qsr_oce(:,:) + SUM( a_i_b(:,:,:) * qsr_ice(:,:,:), dim=3 ) 807 808 808 809 ! --- heat content of precip over ice in J/m3 (to be used in 1D-thermo) --- ! -
branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90
r8306 r8313 1557 1557 !! 1558 1558 !! ** Details 1559 !! qns_tot = pfrld * qns_oce + ( 1 - pfrld ) * qns_ice=> provided1559 !! qns_tot = (1-a) * qns_oce + a * qns_ice => provided 1560 1560 !! + qemp_oce + qemp_ice => recalculated and added up to qns 1561 1561 !! 1562 !! qsr_tot = pfrld * qsr_oce + ( 1 - pfrld ) * qsr_ice=> provided1562 !! qsr_tot = (1-a) * qsr_oce + a * qsr_ice => provided 1563 1563 !! 1564 1564 !! emp_tot = emp_oce + emp_ice => calving is provided and added to emp_tot (and emp_oce). -
branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_cice.F90
r7646 r8313 230 230 CALL lbc_lnk ( fr_iv , 'V', 1. ) 231 231 232 ! ! embedded sea ice 233 IF( nn_ice_embd /= 0 ) THEN ! mass exchanges between ice and ocean (case 1 or 2) set the snow+ice mass 234 CALL cice2nemo(vsno(:,:,:),ztmp1,'T', 1. ) 235 CALL cice2nemo(vice(:,:,:),ztmp2,'T', 1. ) 236 snwice_mass (:,:) = ( rhosn * ztmp1(:,:) + rhoic * ztmp2(:,:) ) 237 snwice_mass_b(:,:) = snwice_mass(:,:) 238 ELSE 239 snwice_mass (:,:) = 0.0_wp ! no mass exchanges 240 snwice_mass_b(:,:) = 0.0_wp ! no mass exchanges 241 ENDIF 232 ! set the snow+ice mass 233 CALL cice2nemo(vsno(:,:,:),ztmp1,'T', 1. ) 234 CALL cice2nemo(vice(:,:,:),ztmp2,'T', 1. ) 235 snwice_mass (:,:) = ( rhosn * ztmp1(:,:) + rhoic * ztmp2(:,:) ) 236 snwice_mass_b(:,:) = snwice_mass(:,:) 237 242 238 IF( .NOT.ln_rstart ) THEN 243 IF( nn_ice_embd == 2 ) THEN ! full embedment (case 2)deplete the initial ssh below sea-ice area239 IF( ln_ice_embd ) THEN ! embedded sea-ice: deplete the initial ssh below sea-ice area 244 240 sshn(:,:) = sshn(:,:) - snwice_mass(:,:) * r1_rau0 245 241 sshb(:,:) = sshb(:,:) - snwice_mass(:,:) * r1_rau0 … … 473 469 CALL nemo2cice(ztmp,vocn,'F', -1. ) 474 470 475 IF( nn_ice_embd == 2) THEN !== embedded sea ice: compute representative ice top surface ==!471 IF( ln_ice_embd ) THEN !== embedded sea ice: compute representative ice top surface ==! 476 472 ! 477 473 ! average interpolation coeff as used in dynspg = (1/nn_fsbc) * {SUM[n/nn_fsbc], n=0,nn_fsbc-1} … … 676 672 CALL lbc_lnk ( fr_iv , 'V', 1. ) 677 673 678 ! ! embedded sea ice 679 IF( nn_ice_embd /= 0 ) THEN ! mass exchanges between ice and ocean (case 1 or 2) set the snow+ice mass 680 CALL cice2nemo(vsno(:,:,:),ztmp1,'T', 1. ) 681 CALL cice2nemo(vice(:,:,:),ztmp2,'T', 1. ) 682 snwice_mass (:,:) = ( rhosn * ztmp1(:,:) + rhoic * ztmp2(:,:) ) 683 snwice_mass_b(:,:) = snwice_mass(:,:) 684 snwice_fmass (:,:) = ( snwice_mass(:,:) - snwice_mass_b(:,:) ) / dt 685 ENDIF 674 ! set the snow+ice mass 675 CALL cice2nemo(vsno(:,:,:),ztmp1,'T', 1. ) 676 CALL cice2nemo(vice(:,:,:),ztmp2,'T', 1. ) 677 snwice_mass (:,:) = ( rhosn * ztmp1(:,:) + rhoic * ztmp2(:,:) ) 678 snwice_mass_b(:,:) = snwice_mass(:,:) 679 snwice_fmass (:,:) = ( snwice_mass(:,:) - snwice_mass_b(:,:) ) / dt 686 680 687 681 ! Release work space -
branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_lim.F90
r8312 r8313 196 196 CALL sbc_lim_bef 197 197 CALL lim_var_glo2eqv ! ht_i and ht_s for ice albedo calculation 198 CALL lim_var_agg(1) ! at_i for coupling (via pfrld) 199 ! 200 pfrld(:,:) = 1._wp - at_i(:,:) 201 phicif(:,:) = vt_i(:,:) 198 CALL lim_var_agg(1) ! at_i for coupling 202 199 203 200 !------------------------------------------------------! … … 221 218 alb_ice(:,:,:) = ( 1. - cldf_ice ) * zalb_cs(:,:,:) + cldf_ice * zalb_os(:,:,:) 222 219 CALL blk_ice_flx( t_su, alb_ice ) 223 IF( ln_mixcpl ) CALL sbc_cpl_ice_flx( p_frld= pfrld, palbi=alb_ice, psst=sst_m, pist=t_su )220 IF( ln_mixcpl ) CALL sbc_cpl_ice_flx( p_frld=(1.-at_i_b), palbi=alb_ice, psst=sst_m, pist=t_su ) 224 221 IF( nn_limflx /= 2 ) CALL ice_lim_flx( t_su, alb_ice, qns_ice, qsr_ice, dqns_ice, evap_ice, devap_ice, nn_limflx ) 225 222 CASE ( jp_purecpl ) 226 223 ! albedo depends on cloud fraction because of non-linear spectral effects 227 224 alb_ice(:,:,:) = ( 1. - cldf_ice ) * zalb_cs(:,:,:) + cldf_ice * zalb_os(:,:,:) 228 CALL sbc_cpl_ice_flx( p_frld= pfrld, palbi=alb_ice, psst=sst_m, pist=t_su )225 CALL sbc_cpl_ice_flx( p_frld=(1.-at_i_b), palbi=alb_ice, psst=sst_m, pist=t_su ) 229 226 IF( nn_limflx == 2 ) CALL ice_lim_flx( t_su, alb_ice, qns_ice, qsr_ice, dqns_ice, evap_ice, devap_ice, nn_limflx ) 230 227 END SELECT … … 374 371 !!------------------------------------------------------------------- 375 372 INTEGER :: ios ! Local integer output status for namelist read 376 NAMELIST/namicerun/ jpl, nlay_i, nlay_s, rn_amax_n, rn_amax_s, cn_icerst_in, cn_icerst_indir, &373 NAMELIST/namicerun/ jpl, nlay_i, nlay_s, nn_monocat, rn_amax_n, rn_amax_s, cn_icerst_in, cn_icerst_indir, & 377 374 & cn_icerst_out, cn_icerst_outdir, ln_limthd, ln_limdyn, nn_limdyn, rn_uice, rn_vice 378 375 NAMELIST/namicediag/ ln_limdiachk, ln_limdiahsb, ln_limctl, iiceprt, jiceprt … … 401 398 WRITE(numout,*) 'lim_run_init : ice share parameters for dynamics/advection/thermo of sea-ice' 402 399 WRITE(numout,*) ' ~~~~~~' 403 WRITE(numout,*) ' number of ice categories = ', jpl 404 WRITE(numout,*) ' number of ice layers = ', nlay_i 405 WRITE(numout,*) ' number of snow layers = ', nlay_s 406 WRITE(numout,*) ' maximum ice concentration for NH = ', rn_amax_n 407 WRITE(numout,*) ' maximum ice concentration for SH = ', rn_amax_s 408 WRITE(numout,*) ' Ice thermodynamics (T) or not (F) ln_limthd = ', ln_limthd 409 WRITE(numout,*) ' Ice dynamics (T) or not (F) ln_limdyn = ', ln_limdyn 410 WRITE(numout,*) ' (ln_limdyn=T) Ice dynamics switch nn_limdyn = ', nn_limdyn 400 WRITE(numout,*) ' number of ice categories jpl = ', jpl 401 WRITE(numout,*) ' number of ice layers nlay_i = ', nlay_i 402 WRITE(numout,*) ' number of snow layers nlay_s = ', nlay_s 403 WRITE(numout,*) ' virtual ITD mono-category param (1-4) or not (0) nn_monocat = ', nn_monocat 404 WRITE(numout,*) ' maximum ice concentration for NH = ', rn_amax_n 405 WRITE(numout,*) ' maximum ice concentration for SH = ', rn_amax_s 406 WRITE(numout,*) ' Ice thermodynamics (T) or not (F) ln_limthd = ', ln_limthd 407 WRITE(numout,*) ' Ice dynamics (T) or not (F) ln_limdyn = ', ln_limdyn 408 WRITE(numout,*) ' (ln_limdyn=T) Ice dynamics switch nn_limdyn = ', nn_limdyn 411 409 WRITE(numout,*) ' 2: total' 412 410 WRITE(numout,*) ' 1: advection only (no diffusion, no ridging/rafting)' 413 411 WRITE(numout,*) ' 0: advection only (as 1 + prescribed velocity, bypass rheology)' 414 WRITE(numout,*) ' (ln_limdyn=T) prescribed u-vel (case nn_limdyn=0) = ', rn_uice415 WRITE(numout,*) ' (ln_limdyn=T) prescribed v-vel (case nn_limdyn=0) = ', rn_vice412 WRITE(numout,*) ' (ln_limdyn=T) prescribed u-vel (case nn_limdyn=0) = ', rn_uice 413 WRITE(numout,*) ' (ln_limdyn=T) prescribed v-vel (case nn_limdyn=0) = ', rn_vice 416 414 WRITE(numout,*) 417 415 WRITE(numout,*) '...and ice diagnostics' … … 424 422 ENDIF 425 423 ! 424 IF ( ( jpl > 1 ) .AND. ( nn_monocat == 1 ) ) THEN 425 nn_monocat = 0 426 IF(lwp) WRITE(numout,*) 427 IF(lwp) WRITE(numout,*) ' nn_monocat forced to 0 as jpl>1, i.e. multi-category case is chosen' 428 ENDIF 429 IF ( ( jpl == 1 ) .AND. ( nn_monocat == 0 ) ) THEN 430 CALL ctl_stop( 'STOP', 'lim_run_init : if jpl=1 then nn_monocat should be between 1 and 4' ) 431 ENDIF 432 ! 426 433 ! sea-ice timestep and inverse 427 434 rdt_ice = REAL(nn_fsbc) * rdt … … 449 456 !!------------------------------------------------------------------- 450 457 INTEGER :: ios ! Local integer output status for namelist read 451 NAMELIST/namiceitd/ nn_catbnd,rn_himean458 NAMELIST/namiceitd/ rn_himean 452 459 ! 453 460 INTEGER :: jl ! dummy loop index … … 469 476 WRITE(numout,*) 'lim_itd_init : Initialization of ice cat distribution ' 470 477 WRITE(numout,*) '~~~~~~~~~~~~' 471 WRITE(numout,*) ' shape of ice categories distribution nn_catbnd = ', nn_catbnd 472 WRITE(numout,*) ' mean ice thickness in the domain (only active if nn_catbnd=2) rn_himean = ', rn_himean 478 WRITE(numout,*) ' mean ice thickness in the domain rn_himean = ', rn_himean 473 479 ENDIF 474 480 ! … … 479 485 hi_max(:) = 0._wp 480 486 ! 481 SELECT CASE ( nn_catbnd ) ! type of ice categories distribution 482 ! 483 CASE (1) !== tanh function (CICE) ==! 484 zc1 = 3._wp / REAL( jpl, wp ) 485 zc2 = 10._wp * zc1 486 zc3 = 3._wp 487 DO jl = 1, jpl 488 zx1 = REAL( jl-1, wp ) / REAL( jpl, wp ) 489 hi_max(jl) = hi_max(jl-1) + zc1 + zc2 * (1._wp + TANH( zc3 * (zx1 - 1._wp ) ) ) 490 END DO 491 ! 492 CASE (2) !== h^(-alpha) function ==! 493 zalpha = 0.05_wp 494 zhmax = 3._wp * rn_himean 495 DO jl = 1, jpl 496 znum = jpl * ( zhmax+1 )**zalpha 497 zden = REAL( jpl-jl , wp ) * ( zhmax + 1._wp )**zalpha + REAL( jl , wp ) 498 hi_max(jl) = ( znum / zden )**(1./zalpha) - 1 499 END DO 500 ! 501 END SELECT 487 !== h^(-alpha) function ==! 488 zalpha = 0.05_wp 489 zhmax = 3._wp * rn_himean 490 DO jl = 1, jpl 491 znum = jpl * ( zhmax+1 )**zalpha 492 zden = REAL( jpl-jl , wp ) * ( zhmax + 1._wp )**zalpha + REAL( jl , wp ) 493 hi_max(jl) = ( znum / zden )**(1./zalpha) - 1 494 END DO 495 ! 502 496 ! 503 497 DO jl = 1, jpl ! mean thickness by category -
branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/OPA_SRC/SBC/sbcmod.F90
r8306 r8313 90 90 & ln_usr , ln_flx , ln_blk , & 91 91 & ln_cpl , ln_mixcpl, nn_components, nn_limflx, & 92 & nn_ice , nn_ice_embd, &92 & nn_ice , ln_ice_embd, & 93 93 & ln_traqsr, ln_dm2dc , & 94 94 & ln_rnf , nn_fwb , ln_ssr , ln_isf , ln_apr_dyn , & … … 139 139 WRITE(numout,*) ' Multicategory heat flux formulation (LIM3) nn_limflx = ', nn_limflx 140 140 WRITE(numout,*) ' Sea-ice : ' 141 WRITE(numout,*) ' ice management in the sbc (=0/1/ 2/3) nn_ice = ', nn_ice142 WRITE(numout,*) ' ice -ocean embedded/levitating (=0/1/2) nn_ice_embd = ', nn_ice_embd141 WRITE(numout,*) ' ice management in the sbc (=0/1/3/4) nn_ice = ', nn_ice 142 WRITE(numout,*) ' ice embedded into ocean ln_ice_embd = ', ln_ice_embd 143 143 WRITE(numout,*) ' Misc. options of sbc : ' 144 144 WRITE(numout,*) ' Light penetration in temperature Eq. ln_traqsr = ', ln_traqsr … … 199 199 CASE( 1 ) !- Ice-cover climatology ("Ice-if" model) 200 200 CASE( 3 ) !- LIM3 ice model 201 IF( nn_ice_embd == 0 ) CALL ctl_stop( 'sbc_init : LIM3 sea-ice models require nn_ice_embd = 1 or 2' )202 201 CASE( 4 ) !- CICE ice model 203 202 IF( .NOT.( ln_blk .OR. ln_cpl ) ) CALL ctl_stop( 'sbc_init : CICE sea-ice model requires ln_blk or ln_cpl = T' ) 204 IF( nn_ice_embd == 0 ) CALL ctl_stop( 'sbc_init : CICE sea-ice models require nn_ice_embd = 1 or 2' )205 203 IF( lk_agrif ) CALL ctl_stop( 'sbc_init : CICE sea-ice model not currently available with AGRIF' ) 206 204 CASE DEFAULT !- not supported -
branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/OPA_SRC/TRA/traqsr.F90
r7753 r8313 48 48 LOGICAL , PUBLIC :: ln_qsr_2bd !: 2 band light absorption flag 49 49 LOGICAL , PUBLIC :: ln_qsr_bio !: bio-model light absorption flag 50 LOGICAL , PUBLIC :: ln_qsr_ice !: light penetration for ice-model LIM3 (clem)50 LOGICAL , PUBLIC :: ln_qsr_ice !: light penetration for ice-model 51 51 INTEGER , PUBLIC :: nn_chldta !: use Chlorophyll data (=1) or not (=0) 52 52 REAL(wp), PUBLIC :: rn_abs !: fraction absorbed in the very near surface (RGB & 2 bands)
Note: See TracChangeset
for help on using the changeset viewer.