Changeset 4072 for branches/2013/dev_r4028_CNRS_LIM3/NEMOGCM/NEMO/LIM_SRC_3
- Timestamp:
- 2013-10-17T15:10:59+02:00 (11 years ago)
- Location:
- branches/2013/dev_r4028_CNRS_LIM3/NEMOGCM/NEMO/LIM_SRC_3
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2013/dev_r4028_CNRS_LIM3/NEMOGCM/NEMO/LIM_SRC_3/limcat_1D.F90
r4045 r4072 40 40 !! Local variables 41 41 INTEGER :: ji, jk, jl ! dummy loop indices 42 INTEGER :: zjpi, i_fill, jl0, ztest_1, ztest_2, ztest_3, ztest_4, ztests42 INTEGER :: ijpij, i_fill, jl0, ztest_1, ztest_2, ztest_3, ztest_4, ztests 43 43 REAL(wp) :: zarg, zV, zconv 44 44 REAL(wp), DIMENSION(:), INTENT(in) :: zhti, zhts, zai ! input ice/snow variables … … 50 50 ! initialisation of variables 51 51 !-------------------------------------------------------------------- 52 !WRITE(numout,*) 'size(zht_i)=',SIZE(zht_i) 53 !WRITE(numout,*) 'size(zht_s)=',SIZE(zht_s) 54 !WRITE(numout,*) 'size(za_i)=',SIZE(za_i) 55 !WRITE(numout,*) 'size(zhti)=',SIZE(zhti) 56 !WRITE(numout,*) 'size(zhts)=',SIZE(zhts) 57 !WRITE(numout,*) 'size(zai)=',SIZE(zai) 58 59 zjpi = SIZE(zhti,1) 60 zht_i(1:zjpi,1:jpl) = 0.d0 61 zht_s(1:zjpi,1:jpl) = 0.d0 62 za_i (1:zjpi,1:jpl) = 0.d0 52 ijpij = SIZE(zhti,1) 53 zht_i(1:ijpij,1:jpl) = 0.d0 54 zht_s(1:ijpij,1:jpl) = 0.d0 55 za_i (1:ijpij,1:jpl) = 0.d0 63 56 64 57 !------------------------------------------------------------------------------------ … … 73 66 ! fulfills ice volume concervation between input and output (ztests=4) 74 67 !-------------------------------------------------------------------------------------- 75 IF(lwp) THEN76 !WRITE(numout,*) '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ '77 !WRITE(numout,*) 'lim_cat_1D : Distribute ice categories '78 !WRITE(numout,*) ' of thick. = ', ( hi_max(jl), jl = 0, jpl )79 !WRITE(numout,*) '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ '80 !WRITE(numout,*) 'zjpi=',zjpi81 END IF82 68 83 69 ! ---------------------------------------- 84 70 ! distribution over the jpl ice categories 85 71 ! ---------------------------------------- 86 DO ji = 1, zjpi72 DO ji = 1, ijpij 87 73 ! snow thickness in each category 88 74 zht_s(ji,1:jpl) = zhts(ji) … … 181 167 END DO ! i loop 182 168 183 !WRITE(numout,*) 'clem zai=',MAXVAL(zai)184 !WRITE(numout,*) 'clem za_i(:,jpl)=',(MAXVAL(za_i(:,jl)),jl=1,jpl)185 !WRITE(numout,*) 'clem zhti=',MAXVAL(zhti)186 !WRITE(numout,*) 'clem zht_i(:,jpl)=',(MAXVAL(zht_i(:,jl)),jl=1,jpl)187 169 IF( nn_timing == 1 ) CALL timing_stop('limcat_1D') 188 170 -
branches/2013/dev_r4028_CNRS_LIM3/NEMOGCM/NEMO/LIM_SRC_3/limcat_2D.F90
r4045 r4072 39 39 !! Local variables 40 40 INTEGER :: ji, jj, jk, jl ! dummy loop indices 41 INTEGER :: zjpi, zjpj, i_fill, jl0, ztest_1, ztest_2, ztest_3, ztest_4, ztests41 INTEGER :: ijpi, ijpj, i_fill, jl0, ztest_1, ztest_2, ztest_3, ztest_4, ztests 42 42 REAL(wp) :: zarg, zV, zconv 43 43 REAL(wp), DIMENSION(:,:), INTENT(in) :: zhti, zhts, zai ! input ice/snow variables … … 48 48 ! initialisation of variables 49 49 !-------------------------------------------------------------------- 50 zjpi = SIZE(zhti,1)51 zjpj = SIZE(zhti,2)52 zht_i(1: zjpi,1:zjpj,1:jpl) = 0.d053 zht_s(1: zjpi,1:zjpj,1:jpl) = 0.d054 za_i (1: zjpi,1:zjpj,1:jpl) = 0.d050 ijpi = SIZE(zhti,1) 51 ijpj = SIZE(zhti,2) 52 zht_i(1:ijpi,1:ijpj,1:jpl) = 0.d0 53 zht_s(1:ijpi,1:ijpj,1:jpl) = 0.d0 54 za_i (1:ijpi,1:ijpj,1:jpl) = 0.d0 55 55 56 56 !------------------------------------------------------------------------------------ … … 65 65 ! fulfills ice volume concervation between input and output (ztests=4) 66 66 !-------------------------------------------------------------------------------------- 67 IF(lwp) THEN68 WRITE(numout,*) '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ '69 WRITE(numout,*) 'lim_cat_2D : Distribute ice categories '70 WRITE(numout,*) ' of thick. = ', ( hi_max(jl), jl = 0, jpl )71 WRITE(numout,*) '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ '72 END IF73 !WRITE(numout,*) ' * zht_i_ini : ', ( zht_i_ini(1,1,jl), jl = 1, jpl )74 !WRITE(numout,*) ' * za_i_ini : ', ( za_i_ini(1,1,jl), jl = 1, jpl )75 67 76 68 ! ---------------------------------------- 77 69 ! distribution over the jpl ice categories 78 70 ! ---------------------------------------- 79 DO jj = 1, zjpj80 DO ji = 1, zjpi71 DO jj = 1, ijpj 72 DO ji = 1, ijpi 81 73 82 74 ! snow thickness in each category -
branches/2013/dev_r4028_CNRS_LIM3/NEMOGCM/NEMO/LIM_SRC_3/limdyn.F90
r4045 r4072 29 29 USE prtctl ! Print control 30 30 USE lib_fortran ! glob_sum 31 USE timing ! Timing 31 32 32 33 IMPLICIT NONE … … 68 69 REAL(wp) :: zchk_vmin, zchk_amin, zchk_amax ! Check errors (C Rousset) 69 70 !!--------------------------------------------------------------------- 71 72 IF( nn_timing == 1 ) CALL timing_start('limdyn') 70 73 71 74 CALL wrk_alloc( jpi, jpj, zu_io, zv_io ) … … 249 252 CALL wrk_dealloc( jpj, zind, zmsk ) 250 253 ! 254 IF( nn_timing == 1 ) CALL timing_stop('limdyn') 255 251 256 END SUBROUTINE lim_dyn 252 257 -
branches/2013/dev_r4028_CNRS_LIM3/NEMOGCM/NEMO/LIM_SRC_3/limitd_me.F90
r4045 r4072 32 32 USE lib_fortran ! glob_sum 33 33 USE limdiahsb 34 USE timing ! Timing 34 35 35 36 IMPLICIT NONE … … 149 150 REAL(wp), POINTER, DIMENSION(:,:,:) :: zviold, zvsold, zsmvold ! old ice volume... 150 151 !!----------------------------------------------------------------------------- 152 IF( nn_timing == 1 ) CALL timing_start('limitd_me') 151 153 152 154 CALL wrk_alloc( jpi, jpj, closing_net, divu_adv, opning, closing_gross, msnow_mlt, esnow_mlt, vt_i_init, vt_i_final ) … … 555 557 CALL wrk_dealloc( jpi, jpj, jpl, zviold, zvsold, zsmvold ) ! clem 556 558 ! 559 IF( nn_timing == 1 ) CALL timing_stop('limitd_me') 557 560 END SUBROUTINE lim_itd_me 558 561 -
branches/2013/dev_r4028_CNRS_LIM3/NEMOGCM/NEMO/LIM_SRC_3/limitd_th.F90
r4045 r4072 34 34 USE wrk_nemo ! work arrays 35 35 USE lib_fortran ! to use key_nosignedzero 36 USE timing ! Timing 36 37 37 38 IMPLICIT NONE … … 69 70 REAL(wp) :: zchk_vmin, zchk_amin, zchk_amax ! Check errors (C Rousset) 70 71 !!------------------------------------------------------------------ 72 IF( nn_timing == 1 ) CALL timing_start('limitd_th') 73 71 74 ! ------------------------------- 72 75 !- check conservation (C Rousset) … … 189 192 IF( num_sal == 2 ) smv_i(:,:,:) = old_smv_i(:,:,:) 190 193 ! 194 IF( nn_timing == 1 ) CALL timing_stop('limitd_th') 191 195 END SUBROUTINE lim_itd_th 192 196 ! -
branches/2013/dev_r4028_CNRS_LIM3/NEMOGCM/NEMO/LIM_SRC_3/limthd.F90
r4045 r4072 41 41 USE prtctl ! Print control 42 42 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 43 USE timing ! Timing 43 44 44 45 IMPLICIT NONE … … 96 97 REAL(wp) :: zchk_vmin, zchk_amin, zchk_amax ! Check errors (C Rousset) 97 98 !!------------------------------------------------------------------- 99 IF( nn_timing == 1 ) CALL timing_start('limthd') 98 100 99 101 CALL wrk_alloc( jpi, jpj, zqlbsbq ) … … 488 490 CALL wrk_dealloc( jpi, jpj, zqlbsbq ) 489 491 ! 492 IF( nn_timing == 1 ) CALL timing_stop('limthd') 490 493 END SUBROUTINE lim_thd 491 494 -
branches/2013/dev_r4028_CNRS_LIM3/NEMOGCM/NEMO/LIM_SRC_3/limthd_ent.F90
r4045 r4072 412 412 ii = MOD( npb(ji) - 1, jpi ) + 1 413 413 ij = ( npb(ji) - 1 ) / jpi + 1 414 WRITE(numout,*) ' violation of heat conservation : ', & 415 ABS ( zqts_in(ji) - zqts_fin(ji) ) * r1_rdtice 414 WRITE(numout,*) ' violation of heat conservation : ', ABS ( zqts_in(ji) - zqts_fin(ji) ) * r1_rdtice 416 415 WRITE(numout,*) ' ji, jj : ', ii, ij 417 416 WRITE(numout,*) ' ht_s_b : ', ht_s_b(ji) … … 622 621 END DO 623 622 ! 624 DO ji = kideb, kiut 625 IF ( ABS ( zqti_in(ji) - zqti_fin(ji) ) * r1_rdtice > 1.0e-6 ) THEN 626 ii = MOD( npb(ji) - 1, jpi ) + 1 627 ij = ( npb(ji) - 1 ) / jpi + 1 628 WRITE(numout,*) ' violation of heat conservation : ', ABS ( zqti_in(ji) - zqti_fin(ji) ) * r1_rdtice 629 WRITE(numout,*) ' ji, jj : ', ii, ij 630 WRITE(numout,*) ' ht_i_b : ', ht_i_b(ji) 631 WRITE(numout,*) ' zqti_in : ', zqti_in (ji) * r1_rdtice 632 WRITE(numout,*) ' zqti_fin : ', zqti_fin(ji) * r1_rdtice 633 WRITE(numout,*) ' dh_i_bott: ', dh_i_bott(ji) 634 WRITE(numout,*) ' dh_i_surf: ', dh_i_surf(ji) 635 WRITE(numout,*) ' dh_snowice:', dh_snowice(ji) 636 WRITE(numout,*) ' icsuswi : ', icsuswi(ji) 637 WRITE(numout,*) ' icboswi : ', icboswi(ji) 638 WRITE(numout,*) ' snicswi : ', snicswi(ji) 639 ENDIF 640 END DO 623 IF ( con_i ) THEN 624 DO ji = kideb, kiut 625 IF ( ABS ( zqti_in(ji) - zqti_fin(ji) ) * r1_rdtice > 1.0e-6 ) THEN 626 ii = MOD( npb(ji) - 1, jpi ) + 1 627 ij = ( npb(ji) - 1 ) / jpi + 1 628 WRITE(numout,*) ' violation of heat conservation : ', ABS ( zqti_in(ji) - zqti_fin(ji) ) * r1_rdtice 629 WRITE(numout,*) ' ji, jj : ', ii, ij 630 WRITE(numout,*) ' ht_i_b : ', ht_i_b(ji) 631 WRITE(numout,*) ' zqti_in : ', zqti_in (ji) * r1_rdtice 632 WRITE(numout,*) ' zqti_fin : ', zqti_fin(ji) * r1_rdtice 633 WRITE(numout,*) ' dh_i_bott: ', dh_i_bott(ji) 634 WRITE(numout,*) ' dh_i_surf: ', dh_i_surf(ji) 635 WRITE(numout,*) ' dh_snowice:', dh_snowice(ji) 636 WRITE(numout,*) ' icsuswi : ', icsuswi(ji) 637 WRITE(numout,*) ' icboswi : ', icboswi(ji) 638 WRITE(numout,*) ' snicswi : ', snicswi(ji) 639 ENDIF 640 END DO 641 ENDIF 641 642 642 643 !---------------------- -
branches/2013/dev_r4028_CNRS_LIM3/NEMOGCM/NEMO/LIM_SRC_3/limtrp.F90
r4045 r4072 29 29 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 30 30 USE limvar ! clem for ice thickness correction 31 USE timing ! Timing 31 32 32 33 IMPLICIT NONE … … 87 88 REAL(wp) :: zdv, zda, zvi, zvs, zsmv 88 89 !!--------------------------------------------------------------------- 90 IF( nn_timing == 1 ) CALL timing_start('limtrp') 89 91 90 92 CALL wrk_alloc( jpi, jpj, zui_u, zvi_v, zsm, zs0at, zs0ow ) … … 569 571 CALL wrk_dealloc( jpi,jpj,jpl,zaiold, zhimax ) ! clem 570 572 ! 573 IF( nn_timing == 1 ) CALL timing_stop('limtrp') 571 574 END SUBROUTINE lim_trp 572 575 -
branches/2013/dev_r4028_CNRS_LIM3/NEMOGCM/NEMO/LIM_SRC_3/limupdate1.F90
r4045 r4072 42 42 USE iom ! I/O manager 43 43 USE lib_mpp ! MPP library 44 USE timing ! Timing 44 45 45 46 IMPLICIT NONE … … 98 99 REAL(wp), POINTER, DIMENSION(:,:,:) :: zviold, zvsold, zsmvold ! old ice volume... 99 100 !!------------------------------------------------------------------- 101 IF( nn_timing == 1 ) CALL timing_start('limupdate1') 100 102 101 103 CALL wrk_alloc( jkmax, zthick0, zqm0 ) … … 538 540 CALL wrk_dealloc( jpi,jpj,jpl,zviold, zvsold, zsmvold ) ! clem 539 541 542 IF( nn_timing == 1 ) CALL timing_stop('limupdate1') 540 543 END SUBROUTINE lim_update1 541 544 #else -
branches/2013/dev_r4028_CNRS_LIM3/NEMOGCM/NEMO/LIM_SRC_3/limupdate2.F90
r4045 r4072 39 39 USE wrk_nemo ! work arrays 40 40 USE lib_fortran ! glob_sum 41 USE timing ! Timing 41 42 42 43 IMPLICIT NONE … … 95 96 REAL(wp), POINTER, DIMENSION(:,:,:) :: zviold, zvsold, zsmvold ! old ice volume... 96 97 !!------------------------------------------------------------------- 98 IF( nn_timing == 1 ) CALL timing_start('limupdate2') 97 99 98 100 CALL wrk_alloc( jpi,jpj,jpl, internal_melt ) ! integer … … 558 560 !------------ 559 561 DO jj = 2, jpjm1 560 DO ji = fs_2, fs_jpim1562 DO ji = 2, jpim1 561 563 IF ( at_i(ji,jj) .EQ. 0.0 ) THEN ! what to do if there is no ice 562 564 IF ( at_i(ji+1,jj) .EQ. 0.0 ) u_ice(ji,jj) = 0.0 ! right side … … 567 569 END DO 568 570 END DO 571 !lateral boundary conditions 572 CALL lbc_lnk( u_ice(:,:), 'U', -1. ) 573 CALL lbc_lnk( v_ice(:,:), 'V', -1. ) 569 574 !mask velocities 570 575 u_ice(:,:) = u_ice(:,:) * tmu(:,:) 571 576 v_ice(:,:) = v_ice(:,:) * tmv(:,:) 572 !lateral boundary conditions573 CALL lbc_lnk( u_ice(:,:), 'U', -1. )574 CALL lbc_lnk( v_ice(:,:), 'V', -1. )575 577 576 578 !-------------------------------- … … 687 689 CALL wrk_dealloc( jpi,jpj,jpl,zviold, zvsold, zsmvold ) ! clem 688 690 691 IF( nn_timing == 1 ) CALL timing_stop('limupdate2') 689 692 END SUBROUTINE lim_update2 690 693 #else
Note: See TracChangeset
for help on using the changeset viewer.