Changeset 12919
- Timestamp:
- 2020-05-13T14:49:18+02:00 (4 years ago)
- Location:
- NEMO/branches/2020/r4.0-HEAD_r12713_clem_dan_fixcpl
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2020/r4.0-HEAD_r12713_clem_dan_fixcpl/cfgs/SHARED/field_def_nemo-ice.xml
r12916 r12919 308 308 309 309 <!-- heat diffusion convergence tests --> 310 <field id="tice_cvg" long_name="sea ice temperature convergence" standard_name="sea_ice_temperature_convergence" unit="K" /> 310 <field id="tice_cvgerr" long_name="sea ice temperature convergence error" standard_name="sea_ice_temperature_convergence_err" unit="K" /> 311 <field id="tice_cvgstp" long_name="sea ice temperature convergence iterations" standard_name="sea_ice_temperature_convergence_stp" unit="" /> 311 312 312 313 </field_group> <!-- SBC_3D --> -
NEMO/branches/2020/r4.0-HEAD_r12713_clem_dan_fixcpl/cfgs/SHARED/namelist_ice_ref
r12915 r12919 149 149 rn_kappa_smlt = 7.0 ! nn_qtrice = 1: radiation attenuation coefficient in melting snow [1/m] 150 150 rn_kappa_sdry = 10.0 ! radiation attenuation coefficient in dry snow [1/m] 151 ln_zdf_chkcvg = .false. ! check convergence of heat diffusion scheme (output variable: tice_cvg)151 ln_zdf_chkcvg = .false. ! check convergence of heat diffusion scheme (outputs: tice_cvgerr, tice_cvgstp) 152 152 / 153 153 !------------------------------------------------------------------------------ -
NEMO/branches/2020/r4.0-HEAD_r12713_clem_dan_fixcpl/src/ICE/ice.F90
r12915 r12919 417 417 ! 418 418 !!---------------------------------------------------------------------- 419 !! * Check convergence420 !!----------------------------------------------------------------------421 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: tice_cvg !: convergence of ice/snow temperature (dT in K)422 !423 !!----------------------------------------------------------------------424 419 !! NEMO/ICE 4.0 , NEMO Consortium (2018) 425 420 !! $Id$ … … 434 429 INTEGER :: ice_alloc 435 430 ! 436 INTEGER :: ierr(1 8), ii431 INTEGER :: ierr(17), ii 437 432 !!----------------------------------------------------------------- 438 433 ierr(:) = 0 … … 520 515 ALLOCATE( a_i_last_couple(jpi,jpj,jpl) , STAT=ierr(ii) ) 521 516 522 ! * Check convergence523 ii = ii + 1524 ALLOCATE( tice_cvg(jpi,jpj,jpl) , STAT=ierr(ii) )525 526 517 ice_alloc = MAXVAL( ierr(:) ) 527 518 IF( ice_alloc /= 0 ) CALL ctl_stop( 'STOP', 'ice_alloc: failed to allocate arrays.' ) -
NEMO/branches/2020/r4.0-HEAD_r12713_clem_dan_fixcpl/src/ICE/ice1d.F90
r12915 r12919 147 147 148 148 ! convergence check 149 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: tice_cvg_1d !: convergence of ice/snow temperature (dT) [K] 149 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: tice_cvgerr_1d !: convergence of ice/snow temp (dT) [K] 150 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: tice_cvgstp_1d !: convergence of ice/snow temp (subtimestep) [-] 150 151 ! 151 152 !!---------------------- … … 227 228 ! 228 229 ii = ii + 1 229 ALLOCATE( tice_cvg _1d(jpij) , STAT=ierr(ii) )230 ALLOCATE( tice_cvgerr_1d(jpij) , tice_cvgstp_1d(jpij) , STAT=ierr(ii) ) 230 231 ! 231 232 ii = ii + 1 -
NEMO/branches/2020/r4.0-HEAD_r12713_clem_dan_fixcpl/src/ICE/icestp.F90
r12915 r12919 435 435 diag_trp_ei(:,:) = 0._wp ; diag_trp_es(:,:) = 0._wp 436 436 diag_trp_sv(:,:) = 0._wp 437 438 ! for convergence check439 IF( ln_zdf_chkcvg ) tice_cvg(:,:,:) = 0._wp440 437 441 438 END SUBROUTINE diag_set0 -
NEMO/branches/2020/r4.0-HEAD_r12713_clem_dan_fixcpl/src/ICE/icethd.F90
r12915 r12919 54 54 LOGICAL :: ln_leadhfx ! heat in the leads is used to melt sea-ice before warming the ocean 55 55 56 !! for convergence tests 57 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: ztice_cvgerr, ztice_cvgstp 58 56 59 !! * Substitutions 57 60 # include "vectopt_loop_substitute.h90" … … 104 107 WRITE(numout,*) '~~~~~~~' 105 108 ENDIF 109 110 ! convergence tests 111 IF( ln_zdf_chkcvg ) THEN 112 ALLOCATE( ztice_cvgerr(jpi,jpj,jpl) , ztice_cvgstp(jpi,jpj,jpl) ) 113 ztice_cvgerr = 0._wp ; ztice_cvgstp = 0._wp 114 ENDIF 106 115 107 116 !---------------------------------------------! … … 220 229 ! ! --- & Change units of e_i, e_s from J/m2 to J/m3 --- ! 221 230 ! 222 s_i_new (1:npti) = 0._wp ; dh_s_tot(1:npti) = 0._wp ! --- some init --- ! (important to have them here)231 s_i_new (1:npti) = 0._wp ; dh_s_tot(1:npti) = 0._wp ! --- some init --- ! (important to have them here) 223 232 dh_i_sum (1:npti) = 0._wp ; dh_i_bom(1:npti) = 0._wp ; dh_i_itm (1:npti) = 0._wp 224 233 dh_i_sub (1:npti) = 0._wp ; dh_i_bog(1:npti) = 0._wp … … 254 263 IF( ln_icedO ) CALL ice_thd_do ! --- Frazil ice growth in leads --- ! 255 264 ! 265 ! convergence tests 266 IF( ln_zdf_chkcvg ) THEN 267 CALL iom_put( 'tice_cvgerr', ztice_cvgerr ) ; DEALLOCATE( ztice_cvgerr ) 268 CALL iom_put( 'tice_cvgstp', ztice_cvgstp ) ; DEALLOCATE( ztice_cvgstp ) 269 ENDIF 270 ! 256 271 ! controls 257 IF( ln_zdf_chkcvg .AND. iom_use('tice_cvg') ) CALL iom_put( 'tice_cvg', tice_cvg ) ! convergence of zdf scheme258 272 IF( ln_icectl ) CALL ice_prt (kt, iiceprt, jiceprt, 1, ' - ice thermodyn. - ') ! prints 259 273 IF( ln_ctl ) CALL ice_prt3D ('icethd') ! prints … … 523 537 ! check convergence of heat diffusion scheme 524 538 IF( ln_zdf_chkcvg ) THEN 525 CALL tab_1d_2d( npti, nptidx(1:npti), tice_cvg_1d(1:npti), tice_cvg(:,:,kl) ) 539 CALL tab_1d_2d( npti, nptidx(1:npti), tice_cvgerr_1d(1:npti), ztice_cvgerr(:,:,kl) ) 540 CALL tab_1d_2d( npti, nptidx(1:npti), tice_cvgstp_1d(1:npti), ztice_cvgstp(:,:,kl) ) 526 541 ENDIF 527 542 ! -
NEMO/branches/2020/r4.0-HEAD_r12713_clem_dan_fixcpl/src/ICE/icethd_zdf_bl99.F90
r12915 r12919 586 586 zdti_max = MAX( zdti_max, ABS( t_i_1d(ji,jk) - ztib(ji,jk) ) ) 587 587 END DO 588 589 IF ( zdti_max < zdti_bnd ) l_T_converged(ji) = .TRUE. 588 ! convergence test 589 IF( ln_zdf_chkcvg ) THEN 590 tice_cvgerr_1d(ji) = zdti_max 591 tice_cvgstp_1d(ji) = REAL(iconv) 592 ENDIF 593 594 IF( zdti_max < zdti_bnd ) l_T_converged(ji) = .TRUE. 590 595 591 596 ENDIF … … 761 766 zdti_max = MAX ( zdti_max, ABS( t_i_1d(ji,jk) - ztib(ji,jk) ) ) 762 767 END DO 763 764 IF ( zdti_max < zdti_bnd ) l_T_converged(ji) = .TRUE. 768 ! convergence test 769 IF( ln_zdf_chkcvg ) THEN 770 tice_cvgerr_1d(ji) = zdti_max 771 tice_cvgstp_1d(ji) = REAL(iconv) 772 ENDIF 773 774 IF( zdti_max < zdti_bnd ) l_T_converged(ji) = .TRUE. 765 775 766 776 ENDIF … … 769 779 770 780 ENDIF ! k_cnd 771 781 772 782 END DO ! End of the do while iterative procedure 773 !774 ! convergence tests (only for output)775 IF( ln_zdf_chkcvg ) THEN776 tice_cvg_1d(1:npti) = 0._wp777 DO jk = 1, nlay_s ! snow temperature778 DO ji = 1, npti779 tice_cvg_1d(ji) = MAX( tice_cvg_1d(ji), ABS( t_s_1d(ji,jk) - ztsb(ji,jk) ) )780 ENDDO781 ENDDO782 DO jk = 1, nlay_i ! ice temperature783 DO ji = 1, npti784 tice_cvg_1d(ji) = MAX( tice_cvg_1d(ji), ABS( t_i_1d(ji,jk) - ztib(ji,jk) ) )785 ENDDO786 ENDDO787 IF( k_cnd == np_cnd_OFF .OR. k_cnd == np_cnd_EMU ) THEN788 DO ji = 1, npti ! surface temperature789 tice_cvg_1d(ji) = MAX( tice_cvg_1d(ji), ABS( t_su_1d(ji) - ztsub(ji) ) )790 ENDDO791 ENDIF792 ENDIF793 783 ! 794 784 !-----------------------------
Note: See TracChangeset
for help on using the changeset viewer.