New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 4072 – NEMO

Changeset 4072


Ignore:
Timestamp:
2013-10-17T15:10:59+02:00 (11 years ago)
Author:
clem
Message:

few rewritings

Location:
branches/2013/dev_r4028_CNRS_LIM3/NEMOGCM/NEMO
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • branches/2013/dev_r4028_CNRS_LIM3/NEMOGCM/NEMO/LIM_SRC_3/limcat_1D.F90

    r4045 r4072  
    4040      !! Local variables 
    4141      INTEGER  :: ji, jk, jl             ! dummy loop indices 
    42       INTEGER  :: zjpi, i_fill, jl0, ztest_1, ztest_2, ztest_3, ztest_4, ztests   
     42      INTEGER  :: ijpij, i_fill, jl0, ztest_1, ztest_2, ztest_3, ztest_4, ztests   
    4343      REAL(wp) :: zarg, zV, zconv 
    4444      REAL(wp), DIMENSION(:),   INTENT(in)    ::   zhti, zhts, zai    ! input ice/snow variables 
     
    5050      ! initialisation of variables 
    5151      !-------------------------------------------------------------------- 
    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 
    6356 
    6457      !------------------------------------------------------------------------------------ 
     
    7366      !         fulfills ice volume concervation between input and output (ztests=4)  
    7467      !-------------------------------------------------------------------------------------- 
    75       IF(lwp) THEN 
    76          !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=',zjpi 
    81       END IF 
    8268  
    8369      ! ---------------------------------------- 
    8470      ! distribution over the jpl ice categories 
    8571      ! ---------------------------------------- 
    86       DO ji = 1, zjpi 
     72      DO ji = 1, ijpij 
    8773        ! snow thickness in each category  
    8874         zht_s(ji,1:jpl) = zhts(ji) 
     
    181167      END DO ! i loop 
    182168 
    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) 
    187169      IF( nn_timing == 1 )  CALL timing_stop('limcat_1D') 
    188170      
  • branches/2013/dev_r4028_CNRS_LIM3/NEMOGCM/NEMO/LIM_SRC_3/limcat_2D.F90

    r4045 r4072  
    3939      !! Local variables 
    4040      INTEGER  :: ji, jj, jk, jl             ! dummy loop indices 
    41       INTEGER  :: zjpi, zjpj, i_fill, jl0, ztest_1, ztest_2, ztest_3, ztest_4, ztests   
     41      INTEGER  :: ijpi, ijpj, i_fill, jl0, ztest_1, ztest_2, ztest_3, ztest_4, ztests   
    4242      REAL(wp) :: zarg, zV, zconv 
    4343      REAL(wp), DIMENSION(:,:),   INTENT(in)  ::   zhti, zhts, zai    ! input ice/snow variables 
     
    4848      ! initialisation of variables 
    4949      !-------------------------------------------------------------------- 
    50       zjpi = SIZE(zhti,1) 
    51       zjpj = SIZE(zhti,2) 
    52       zht_i(1:zjpi,1:zjpj,1:jpl) = 0.d0 
    53       zht_s(1:zjpi,1:zjpj,1:jpl) = 0.d0 
    54       za_i (1:zjpi,1:zjpj,1:jpl) = 0.d0 
     50      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 
    5555 
    5656      !------------------------------------------------------------------------------------ 
     
    6565      !         fulfills ice volume concervation between input and output (ztests=4)  
    6666      !-------------------------------------------------------------------------------------- 
    67       IF(lwp) THEN 
    68          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 IF 
    73       !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 ) 
    7567  
    7668      ! ---------------------------------------- 
    7769      ! distribution over the jpl ice categories 
    7870      ! ---------------------------------------- 
    79       DO jj = 1, zjpj 
    80          DO ji = 1, zjpi 
     71      DO jj = 1, ijpj 
     72         DO ji = 1, ijpi 
    8173 
    8274            ! snow thickness in each category  
  • branches/2013/dev_r4028_CNRS_LIM3/NEMOGCM/NEMO/LIM_SRC_3/limdyn.F90

    r4045 r4072  
    2929   USE prtctl           ! Print control 
    3030   USE lib_fortran      ! glob_sum 
     31   USE timing          ! Timing 
    3132 
    3233   IMPLICIT NONE 
     
    6869      REAL(wp) :: zchk_vmin, zchk_amin, zchk_amax ! Check errors (C Rousset) 
    6970     !!--------------------------------------------------------------------- 
     71 
     72      IF( nn_timing == 1 )  CALL timing_start('limdyn') 
    7073 
    7174      CALL wrk_alloc( jpi, jpj, zu_io, zv_io ) 
     
    249252      CALL wrk_dealloc( jpj, zind, zmsk ) 
    250253      ! 
     254      IF( nn_timing == 1 )  CALL timing_stop('limdyn') 
     255 
    251256   END SUBROUTINE lim_dyn 
    252257 
  • branches/2013/dev_r4028_CNRS_LIM3/NEMOGCM/NEMO/LIM_SRC_3/limitd_me.F90

    r4045 r4072  
    3232   USE lib_fortran     ! glob_sum 
    3333   USE limdiahsb 
     34   USE timing          ! Timing 
    3435 
    3536   IMPLICIT NONE 
     
    149150      REAL(wp), POINTER, DIMENSION(:,:,:) ::   zviold, zvsold, zsmvold   ! old ice volume... 
    150151      !!----------------------------------------------------------------------------- 
     152      IF( nn_timing == 1 )  CALL timing_start('limitd_me') 
    151153 
    152154      CALL wrk_alloc( jpi, jpj, closing_net, divu_adv, opning, closing_gross, msnow_mlt, esnow_mlt, vt_i_init, vt_i_final ) 
     
    555557      CALL wrk_dealloc( jpi, jpj, jpl, zviold, zvsold, zsmvold )   ! clem 
    556558      ! 
     559      IF( nn_timing == 1 )  CALL timing_stop('limitd_me') 
    557560   END SUBROUTINE lim_itd_me 
    558561 
  • branches/2013/dev_r4028_CNRS_LIM3/NEMOGCM/NEMO/LIM_SRC_3/limitd_th.F90

    r4045 r4072  
    3434   USE wrk_nemo         ! work arrays 
    3535   USE lib_fortran      ! to use key_nosignedzero 
     36   USE timing          ! Timing 
    3637 
    3738   IMPLICIT NONE 
     
    6970      REAL(wp) :: zchk_vmin, zchk_amin, zchk_amax ! Check errors (C Rousset) 
    7071      !!------------------------------------------------------------------ 
     72      IF( nn_timing == 1 )  CALL timing_start('limitd_th') 
     73 
    7174      ! ------------------------------- 
    7275      !- check conservation (C Rousset) 
     
    189192      IF( num_sal == 2 )   smv_i(:,:,:) = old_smv_i(:,:,:) 
    190193      ! 
     194      IF( nn_timing == 1 )  CALL timing_stop('limitd_th') 
    191195   END SUBROUTINE lim_itd_th 
    192196   ! 
  • branches/2013/dev_r4028_CNRS_LIM3/NEMOGCM/NEMO/LIM_SRC_3/limthd.F90

    r4045 r4072  
    4141   USE prtctl         ! Print control 
    4242   USE lib_fortran    ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined)   
     43   USE timing         ! Timing 
    4344 
    4445   IMPLICIT NONE 
     
    9697      REAL(wp) :: zchk_vmin, zchk_amin, zchk_amax ! Check errors (C Rousset) 
    9798      !!------------------------------------------------------------------- 
     99      IF( nn_timing == 1 )  CALL timing_start('limthd') 
    98100 
    99101      CALL wrk_alloc( jpi, jpj, zqlbsbq ) 
     
    488490      CALL wrk_dealloc( jpi, jpj, zqlbsbq ) 
    489491      ! 
     492      IF( nn_timing == 1 )  CALL timing_stop('limthd') 
    490493   END SUBROUTINE lim_thd 
    491494 
  • branches/2013/dev_r4028_CNRS_LIM3/NEMOGCM/NEMO/LIM_SRC_3/limthd_ent.F90

    r4045 r4072  
    412412               ii                 = MOD( npb(ji) - 1, jpi ) + 1 
    413413               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 
    416415               WRITE(numout,*) ' ji, jj   : ', ii, ij 
    417416               WRITE(numout,*) ' ht_s_b   : ', ht_s_b(ji) 
     
    622621      END DO 
    623622      ! 
    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 
    641642 
    642643      !---------------------- 
  • branches/2013/dev_r4028_CNRS_LIM3/NEMOGCM/NEMO/LIM_SRC_3/limtrp.F90

    r4045 r4072  
    2929   USE lib_fortran    ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined)   
    3030   USE limvar          ! clem for ice thickness correction 
     31   USE timing          ! Timing 
    3132 
    3233   IMPLICIT NONE 
     
    8788      REAL(wp) :: zdv, zda, zvi, zvs, zsmv 
    8889      !!--------------------------------------------------------------------- 
     90      IF( nn_timing == 1 )  CALL timing_start('limtrp') 
    8991 
    9092      CALL wrk_alloc( jpi, jpj, zui_u, zvi_v, zsm, zs0at, zs0ow ) 
     
    569571      CALL wrk_dealloc( jpi,jpj,jpl,zaiold, zhimax )   ! clem 
    570572      ! 
     573      IF( nn_timing == 1 )  CALL timing_stop('limtrp') 
    571574   END SUBROUTINE lim_trp 
    572575 
  • branches/2013/dev_r4028_CNRS_LIM3/NEMOGCM/NEMO/LIM_SRC_3/limupdate1.F90

    r4045 r4072  
    4242   USE iom              ! I/O manager 
    4343   USE lib_mpp          ! MPP library 
     44   USE timing          ! Timing 
    4445 
    4546   IMPLICIT NONE 
     
    9899      REAL(wp), POINTER, DIMENSION(:,:,:) ::   zviold, zvsold, zsmvold   ! old ice volume... 
    99100      !!------------------------------------------------------------------- 
     101      IF( nn_timing == 1 )  CALL timing_start('limupdate1') 
    100102 
    101103      CALL wrk_alloc( jkmax, zthick0, zqm0 ) 
     
    538540      CALL wrk_dealloc( jpi,jpj,jpl,zviold, zvsold, zsmvold )   ! clem 
    539541 
     542      IF( nn_timing == 1 )  CALL timing_stop('limupdate1') 
    540543   END SUBROUTINE lim_update1 
    541544#else 
  • branches/2013/dev_r4028_CNRS_LIM3/NEMOGCM/NEMO/LIM_SRC_3/limupdate2.F90

    r4045 r4072  
    3939   USE wrk_nemo         ! work arrays 
    4040   USE lib_fortran     ! glob_sum 
     41   USE timing          ! Timing 
    4142 
    4243   IMPLICIT NONE 
     
    9596      REAL(wp), POINTER, DIMENSION(:,:,:) ::   zviold, zvsold, zsmvold   ! old ice volume... 
    9697      !!------------------------------------------------------------------- 
     98      IF( nn_timing == 1 )  CALL timing_start('limupdate2') 
    9799 
    98100      CALL wrk_alloc( jpi,jpj,jpl, internal_melt )   ! integer 
     
    558560      !------------ 
    559561      DO jj = 2, jpjm1 
    560          DO ji = fs_2, fs_jpim1 
     562         DO ji = 2, jpim1 
    561563            IF ( at_i(ji,jj) .EQ. 0.0 ) THEN ! what to do if there is no ice 
    562564               IF ( at_i(ji+1,jj) .EQ. 0.0 ) u_ice(ji,jj)   = 0.0 ! right side 
     
    567569         END DO 
    568570      END DO 
     571      !lateral boundary conditions 
     572      CALL lbc_lnk( u_ice(:,:), 'U', -1. ) 
     573      CALL lbc_lnk( v_ice(:,:), 'V', -1. ) 
    569574      !mask velocities 
    570575      u_ice(:,:) = u_ice(:,:) * tmu(:,:) 
    571576      v_ice(:,:) = v_ice(:,:) * tmv(:,:) 
    572       !lateral boundary conditions 
    573       CALL lbc_lnk( u_ice(:,:), 'U', -1. ) 
    574       CALL lbc_lnk( v_ice(:,:), 'V', -1. ) 
    575577  
    576578      !-------------------------------- 
     
    687689      CALL wrk_dealloc( jpi,jpj,jpl,zviold, zvsold, zsmvold )   ! clem 
    688690 
     691      IF( nn_timing == 1 )  CALL timing_stop('limupdate2') 
    689692   END SUBROUTINE lim_update2 
    690693#else 
  • branches/2013/dev_r4028_CNRS_LIM3/NEMOGCM/NEMO/OPA_SRC/DIA/diahsb.F90

    r4045 r4072  
    242242         ! 2 - Time independant variables and file opening ! 
    243243         ! ----------------------------------------------- ! 
    244          WRITE(numout,*) "dia_hsb: heat salt volume budgets activated" 
     244         IF(lwp) WRITE(numout,*) "dia_hsb: heat salt volume budgets activated" 
    245245         IF( lk_obc .or. lk_bdy ) THEN 
    246246            CALL ctl_warn( 'dia_hsb does not take open boundary fluxes into account' )          
Note: See TracChangeset for help on using the changeset viewer.