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 4332 for branches/2013/dev_r4028_CNRS_LIM3/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_lim.F90 – NEMO

Ignore:
Timestamp:
2013-12-11T15:38:42+01:00 (10 years ago)
Author:
clem
Message:

update LIM3 to fix remaining bugs. Now working in global and regional config.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2013/dev_r4028_CNRS_LIM3/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_lim.F90

    r4220 r4332  
    2727   USE iceini          ! LIM-3: ice initialisation 
    2828   USE dom_ice         ! LIM-3: ice domain 
     29   USE domvvl          ! domain: variable volume level(fse3t_m) 
    2930 
    3031   USE sbc_oce         ! Surface boundary condition: ocean fields 
     
    5859   USE in_out_manager  ! I/O manager 
    5960   USE prtctl          ! Print control 
     61   USE lib_fortran     !  
    6062 
    6163#if defined key_bdy  
     
    167169         ! 
    168170         IF( ln_nicep ) THEN      ! control print at a given point 
    169             jiindx = 6   ;   jjindx = 47 
    170             WRITE(numout,*) ' The debugging point is : jiindx : ',jiindx, ' jjindx : ',jjindx 
     171            jiindx = 177   ;   jjindx = 112 
     172            IF(lwp) WRITE(numout,*) ' The debugging point is : jiindx : ',jiindx, ' jjindx : ',jjindx 
    171173         ENDIF 
    172174      ENDIF 
     
    303305         fhbri  (:,:) = 0._wp   ;   fheat_mec(:,:) = 0._wp   ;   fheat_res(:,:) = 0._wp 
    304306         fhmec  (:,:) = 0._wp   ;    
    305          fmmec  (:,:) = 0._wp      
     307         fmmec  (:,:) = 0._wp 
     308         fmmflx (:,:) = 0._wp      
    306309         focea2D(:,:) = 0._wp 
    307310         fsup2D (:,:) = 0._wp 
     
    328331                          CALL lim_rst_opn( kt )     ! Open Ice restart file 
    329332         ! 
    330          IF( ln_nicep )   CALL lim_prt_state( jiindx, jjindx, 1, ' - Beginning the time step - ' )   ! control print 
    331          ! 
    332          IF( .NOT. lk_c1d ) THEN                     ! Ice dynamics & transport (except in 1D case) 
     333         IF( ln_nicep )   CALL lim_prt_state( kt, jiindx, jjindx, 1, ' - Beginning the time step - ' )   ! control print 
     334         ! ---------------------------------------------- 
     335         ! ice dynamics and transport (except in 1D case) 
     336         ! ---------------------------------------------- 
     337         IF( .NOT. lk_c1d ) THEN 
    333338                          CALL lim_dyn( kt )              ! Ice dynamics    ( rheology/dynamics ) 
    334339                          CALL lim_trp( kt )              ! Ice transport   ( Advection/diffusion ) 
    335340                          CALL lim_var_glo2eqv            ! equivalent variables, requested for rafting 
    336          IF( ln_nicep )   CALL lim_prt_state( jiindx, jjindx,-1, ' - ice dyn & trp - ' )   ! control print 
     341         IF( ln_nicep )   CALL lim_prt_state( kt, jiindx, jjindx,-1, ' - ice dyn & trp - ' )   ! control print 
    337342                          CALL lim_itd_me                 ! Mechanical redistribution ! (ridging/rafting) 
    338343                          CALL lim_var_agg( 1 )  
     344#if defined key_bdy 
     345                          ! bdy ice thermo  
     346                          CALL lim_var_glo2eqv            ! equivalent variables 
     347                          CALL bdy_ice_lim( kt ) 
     348                          CALL lim_itd_me_zapsmall 
     349                          CALL lim_var_agg(1) 
     350         IF( ln_nicep )   CALL lim_prt_state( kt, jiindx, jjindx, 1, ' - ice thermo bdy - ' )   ! control print 
     351#endif 
    339352                          CALL lim_update1 
    340353         ENDIF 
     
    349362                          old_oa_i(:,:,:)  = oa_i(:,:,:) 
    350363                          old_smv_i(:,:,:) = smv_i (:,:,:) 
    351          !                                           ! Ice thermodynamics  
     364  
     365         ! ---------------------------------------------- 
     366         ! ice thermodynamic 
     367         ! ---------------------------------------------- 
    352368                          CALL lim_var_glo2eqv            ! equivalent variables 
    353369                          CALL lim_var_agg(1)             ! aggregate ice categories 
     370                          ! previous lead fraction and ice volume for flux calculations 
     371                          pfrld(:,:)   = 1._wp - at_i(:,:) 
     372                          phicif(:,:)  = vt_i(:,:) 
     373                          ! 
    354374                          CALL lim_var_bv                 ! bulk brine volume (diag) 
    355375                          CALL lim_thd( kt )              ! Ice thermodynamics  
     
    357377                          oa_i(:,:,:) = oa_i(:,:,:) + a_i(:,:,:) * zcoef 
    358378                          CALL lim_var_glo2eqv            ! this CALL is maybe not necessary (Martin) 
    359          IF( ln_nicep )   CALL lim_prt_state( jiindx, jjindx, 1, ' - ice thermodyn. - ' )   ! control print 
     379         IF( ln_nicep )   CALL lim_prt_state( kt, jiindx, jjindx, 1, ' - ice thermodyn. - ' )   ! control print 
    360380                          CALL lim_itd_th( kt )           !  Remap ice categories, lateral accretion  ! 
    361          ! 
    362          !                                           ! Global variables update 
    363381                          CALL lim_var_agg( 1 )           ! requested by limupdate 
    364                           CALL lim_update2                 ! Global variables update 
    365 #if defined key_bdy 
    366                           CALL lim_var_glo2eqv            ! 
    367                           CALL bdy_ice_lim( kt )          ! clem modif: bdy ice 
    368 #endif 
     382                          CALL lim_update2                ! Global variables update 
     383 
    369384                          CALL lim_var_glo2eqv            ! equivalent variables (outputs) 
    370385                          CALL lim_var_agg(2)             ! aggregate ice thickness categories 
    371          IF( ln_nicep )   CALL lim_prt_state( jiindx, jjindx, 2, ' - Final state - ' )   ! control print 
     386         IF( ln_nicep )   CALL lim_prt_state( kt, jiindx, jjindx, 2, ' - Final state - ' )   ! control print 
    372387         ! 
    373388                          CALL lim_sbc_flx( kt )     ! Update surface ocean mass, heat and salt fluxes 
    374389         ! 
    375          IF( ln_nicep )   CALL lim_prt_state( jiindx, jjindx, 3, ' - Final state lim_sbc - ' )   ! control print 
     390         IF( ln_nicep )   CALL lim_prt_state( kt, jiindx, jjindx, 3, ' - Final state lim_sbc - ' )   ! control print 
    376391         ! 
    377392         !                                           ! Diagnostics and outputs  
     
    386401                          CALL lim_var_glo2eqv            ! ??? 
    387402         ! 
    388          IF( ln_nicep )   CALL lim_ctl               ! alerts in case of model crash 
     403         IF( ln_nicep )   CALL lim_ctl( kt )              ! alerts in case of model crash 
    389404         ! 
    390405      ENDIF                                    ! End sea-ice time step only 
     
    413428 
    414429 
    415    SUBROUTINE lim_ctl 
     430   SUBROUTINE lim_ctl( kt ) 
    416431      !!----------------------------------------------------------------------- 
    417432      !!                   ***  ROUTINE lim_ctl ***  
     
    419434      !! ** Purpose :   Alerts in case of model crash 
    420435      !!------------------------------------------------------------------- 
     436      INTEGER, INTENT(in) ::   kt      ! ocean time step 
    421437      INTEGER  ::   ji, jj, jk,  jl   ! dummy loop indices 
    422438      INTEGER  ::   inb_altests       ! number of alert tests (max 20) 
     
    438454            DO ji = 1, jpi 
    439455               IF(  v_i(ji,jj,jl) /= 0._wp   .AND.   a_i(ji,jj,jl) == 0._wp   ) THEN 
    440                   WRITE(numout,*) ' ALERTE 2 :   Incompatible volume and concentration ' 
    441                   WRITE(numout,*) ' at_i     ', at_i(ji,jj) 
    442                   WRITE(numout,*) ' Point - category', ji, jj, jl 
    443                   WRITE(numout,*) ' a_i *** a_i_old ', a_i      (ji,jj,jl), old_a_i  (ji,jj,jl) 
    444                   WRITE(numout,*) ' v_i *** v_i_old ', v_i      (ji,jj,jl), old_v_i  (ji,jj,jl) 
    445                   WRITE(numout,*) ' d_a_i_thd/trp   ', d_a_i_thd(ji,jj,jl), d_a_i_trp(ji,jj,jl) 
    446                   WRITE(numout,*) ' d_v_i_thd/trp   ', d_v_i_thd(ji,jj,jl), d_v_i_trp(ji,jj,jl) 
     456                  !WRITE(numout,*) ' ALERTE 2 :   Incompatible volume and concentration ' 
     457                  !WRITE(numout,*) ' at_i     ', at_i(ji,jj) 
     458                  !WRITE(numout,*) ' Point - category', ji, jj, jl 
     459                  !WRITE(numout,*) ' a_i *** a_i_old ', a_i      (ji,jj,jl), old_a_i  (ji,jj,jl) 
     460                  !WRITE(numout,*) ' v_i *** v_i_old ', v_i      (ji,jj,jl), old_v_i  (ji,jj,jl) 
     461                  !WRITE(numout,*) ' d_a_i_thd/trp   ', d_a_i_thd(ji,jj,jl), d_a_i_trp(ji,jj,jl) 
     462                  !WRITE(numout,*) ' d_v_i_thd/trp   ', d_v_i_thd(ji,jj,jl), d_v_i_trp(ji,jj,jl) 
    447463                  inb_alp(ialert_id) = inb_alp(ialert_id) + 1 
    448464               ENDIF 
     
    458474         DO ji = 1, jpi 
    459475            IF(   ht_i(ji,jj,jl)  >  50._wp   ) THEN 
    460                CALL lim_prt_state( ji, jj, 2, ' ALERTE 3 :   Very thick ice ' ) 
     476               !CALL lim_prt_state( kt, ji, jj, 2, ' ALERTE 3 :   Very thick ice ' ) 
    461477               inb_alp(ialert_id) = inb_alp(ialert_id) + 1 
    462478            ENDIF 
     
    469485      DO jj = 1, jpj 
    470486         DO ji = 1, jpi 
    471             IF(   MAX( ABS( u_ice(ji,jj) ), ABS( v_ice(ji,jj) ) ) > 0.5  .AND.  & 
     487            IF(   MAX( ABS( u_ice(ji,jj) ), ABS( v_ice(ji,jj) ) ) > 1.5  .AND.  & 
    472488               &  at_i(ji,jj) > 0._wp   ) THEN 
    473                CALL lim_prt_state( ji, jj, 1, ' ALERTE 4 :   Very fast ice ' ) 
    474                WRITE(numout,*) ' ice strength             : ', strength(ji,jj) 
    475                WRITE(numout,*) ' oceanic stress utau      : ', utau(ji,jj)  
    476                WRITE(numout,*) ' oceanic stress vtau      : ', vtau(ji,jj) 
    477                WRITE(numout,*) ' sea-ice stress utau_ice  : ', utau_ice(ji,jj)  
    478                WRITE(numout,*) ' sea-ice stress vtau_ice  : ', vtau_ice(ji,jj) 
    479                WRITE(numout,*) ' oceanic speed u          : ', u_oce(ji,jj) 
    480                WRITE(numout,*) ' oceanic speed v          : ', v_oce(ji,jj) 
    481                WRITE(numout,*) ' sst                      : ', sst_m(ji,jj) 
    482                WRITE(numout,*) ' sss                      : ', sss_m(ji,jj) 
    483                WRITE(numout,*)  
     489               !CALL lim_prt_state( kt, ji, jj, 1, ' ALERTE 4 :   Very fast ice ' ) 
     490               !WRITE(numout,*) ' ice strength             : ', strength(ji,jj) 
     491               !WRITE(numout,*) ' oceanic stress utau      : ', utau(ji,jj)  
     492               !WRITE(numout,*) ' oceanic stress vtau      : ', vtau(ji,jj) 
     493               !WRITE(numout,*) ' sea-ice stress utau_ice  : ', utau_ice(ji,jj)  
     494               !WRITE(numout,*) ' sea-ice stress vtau_ice  : ', vtau_ice(ji,jj) 
     495               !WRITE(numout,*) ' oceanic speed u          : ', u_oce(ji,jj) 
     496               !WRITE(numout,*) ' oceanic speed v          : ', v_oce(ji,jj) 
     497               !WRITE(numout,*) ' sst                      : ', sst_m(ji,jj) 
     498               !WRITE(numout,*) ' sss                      : ', sss_m(ji,jj) 
     499               !WRITE(numout,*)  
    484500               inb_alp(ialert_id) = inb_alp(ialert_id) + 1 
    485501            ENDIF 
     
    493509         DO ji = 1, jpi 
    494510            IF(   tms(ji,jj) <= 0._wp   .AND.   at_i(ji,jj) > 0._wp   ) THEN  
    495                CALL lim_prt_state( ji, jj, 1, ' ALERTE 6 :   Ice on continents ' ) 
    496                WRITE(numout,*) ' masks s, u, v        : ', tms(ji,jj), tmu(ji,jj), tmv(ji,jj)  
    497                WRITE(numout,*) ' sst                  : ', sst_m(ji,jj) 
    498                WRITE(numout,*) ' sss                  : ', sss_m(ji,jj) 
    499                WRITE(numout,*) ' at_i(ji,jj)          : ', at_i(ji,jj) 
    500                WRITE(numout,*) ' v_ice(ji,jj)         : ', v_ice(ji,jj) 
    501                WRITE(numout,*) ' v_ice(ji,jj-1)       : ', v_ice(ji,jj-1) 
    502                WRITE(numout,*) ' u_ice(ji-1,jj)       : ', u_ice(ji-1,jj) 
    503                WRITE(numout,*) ' u_ice(ji,jj)         : ', v_ice(ji,jj) 
     511               !CALL lim_prt_state( kt, ji, jj, 1, ' ALERTE 6 :   Ice on continents ' ) 
     512               !WRITE(numout,*) ' masks s, u, v        : ', tms(ji,jj), tmu(ji,jj), tmv(ji,jj)  
     513               !WRITE(numout,*) ' sst                  : ', sst_m(ji,jj) 
     514               !WRITE(numout,*) ' sss                  : ', sss_m(ji,jj) 
     515               !WRITE(numout,*) ' at_i(ji,jj)          : ', at_i(ji,jj) 
     516               !WRITE(numout,*) ' v_ice(ji,jj)         : ', v_ice(ji,jj) 
     517               !WRITE(numout,*) ' v_ice(ji,jj-1)       : ', v_ice(ji,jj-1) 
     518               !WRITE(numout,*) ' u_ice(ji-1,jj)       : ', u_ice(ji-1,jj) 
     519               !WRITE(numout,*) ' u_ice(ji,jj)         : ', v_ice(ji,jj) 
    504520               ! 
    505521               inb_alp(ialert_id) = inb_alp(ialert_id) + 1 
     
    515531         DO jj = 1, jpj 
    516532            DO ji = 1, jpi 
    517 !!gm  test twice sm_i ...  ????  bug? 
    518                IF( ( ( ABS( sm_i(ji,jj,jl) ) < 0.5 )   .OR.  & 
    519                      ( ABS( sm_i(ji,jj,jl) ) < 0.5 ) ) .AND. & 
    520                              ( a_i(ji,jj,jl) > 0._wp ) ) THEN 
    521 !                 CALL lim_prt_state(ji,jj,1, ' ALERTE 7 :   Very fresh ice ' ) 
     533               IF( sm_i(ji,jj,jl) < 0.1 .AND. a_i(ji,jj,jl) > 0._wp ) THEN 
     534!                 CALL lim_prt_state(kt,ji,jj,1, ' ALERTE 7 :   Very fresh ice ' ) 
    522535!                 WRITE(numout,*) ' sst                  : ', sst_m(ji,jj) 
    523536!                 WRITE(numout,*) ' sss                  : ', sss_m(ji,jj) 
     
    540553                      ( ABS( o_i(ji,jj,jl) ) < 0._wp) ) .AND. & 
    541554                             ( a_i(ji,jj,jl) > 0._wp ) ) THEN 
    542                   CALL lim_prt_state( ji, jj, 1, ' ALERTE 9 :   Wrong ice age ') 
     555                  !CALL lim_prt_state( kt, ji, jj, 1, ' ALERTE 9 :   Wrong ice age ') 
    543556                  inb_alp(ialert_id) = inb_alp(ialert_id) + 1 
    544557               ENDIF 
     
    552565      DO jj = 1, jpj 
    553566         DO ji = 1, jpi 
    554             IF( ABS( sfx (ji,jj) ) .GT. 1.0e-2 ) THEN 
    555                CALL lim_prt_state( ji, jj, 3, ' ALERTE 5 :   High salt flux ' ) 
    556                DO jl = 1, jpl 
    557                   WRITE(numout,*) ' Category no: ', jl 
    558                   WRITE(numout,*) ' a_i        : ', a_i      (ji,jj,jl) , ' old_a_i    : ', old_a_i  (ji,jj,jl)    
    559                   WRITE(numout,*) ' d_a_i_trp  : ', d_a_i_trp(ji,jj,jl) , ' d_a_i_thd  : ', d_a_i_thd(ji,jj,jl)  
    560                   WRITE(numout,*) ' v_i        : ', v_i      (ji,jj,jl) , ' old_v_i    : ', old_v_i  (ji,jj,jl)    
    561                   WRITE(numout,*) ' d_v_i_trp  : ', d_v_i_trp(ji,jj,jl) , ' d_v_i_thd  : ', d_v_i_thd(ji,jj,jl)  
    562                   WRITE(numout,*) ' ' 
    563                END DO 
     567            IF( ABS( sfx (ji,jj) ) .GT. 1.0e-2 ) THEN  ! = 1 psu/day for 1m ocean depth 
     568               !CALL lim_prt_state( kt, ji, jj, 3, ' ALERTE 5 :   High salt flux ' ) 
     569               !DO jl = 1, jpl 
     570                  !WRITE(numout,*) ' Category no: ', jl 
     571                  !WRITE(numout,*) ' a_i        : ', a_i      (ji,jj,jl) , ' old_a_i    : ', old_a_i  (ji,jj,jl)    
     572                  !WRITE(numout,*) ' d_a_i_trp  : ', d_a_i_trp(ji,jj,jl) , ' d_a_i_thd  : ', d_a_i_thd(ji,jj,jl)  
     573                  !WRITE(numout,*) ' v_i        : ', v_i      (ji,jj,jl) , ' old_v_i    : ', old_v_i  (ji,jj,jl)    
     574                  !WRITE(numout,*) ' d_v_i_trp  : ', d_v_i_trp(ji,jj,jl) , ' d_v_i_thd  : ', d_v_i_thd(ji,jj,jl)  
     575                  !WRITE(numout,*) ' ' 
     576               !END DO 
    564577               inb_alp(ialert_id) = inb_alp(ialert_id) + 1 
    565578            ENDIF 
     
    572585      DO jj = 1, jpj 
    573586         DO ji = 1, jpi 
    574             IF(   ABS( qns(ji,jj) ) > 1500._wp  .AND.  at_i(ji,jj) > 0._wp  ) THEN 
     587            IF( ABS( qns(ji,jj) ) > 1500._wp .AND. at_i(ji,jj) > 0._wp ) THEN 
    575588               ! 
    576                WRITE(numout,*) ' ALERTE 8 :   Very high non-solar heat flux' 
    577                WRITE(numout,*) ' ji, jj    : ', ji, jj 
    578                WRITE(numout,*) ' qns       : ', qns(ji,jj) 
    579                WRITE(numout,*) ' sst       : ', sst_m(ji,jj) 
    580                WRITE(numout,*) ' sss       : ', sss_m(ji,jj) 
    581                WRITE(numout,*) ' qcmif     : ', qcmif(ji,jj) 
    582                WRITE(numout,*) ' qldif     : ', qldif(ji,jj) 
    583                WRITE(numout,*) ' qcmif     : ', qcmif(ji,jj) / rdt_ice 
    584                WRITE(numout,*) ' qldif     : ', qldif(ji,jj) / rdt_ice 
    585                WRITE(numout,*) ' qfvbq     : ', qfvbq(ji,jj) 
    586                WRITE(numout,*) ' qdtcn     : ', qdtcn(ji,jj) 
    587                WRITE(numout,*) ' qfvbq / dt: ', qfvbq(ji,jj) / rdt_ice 
    588                WRITE(numout,*) ' qdtcn / dt: ', qdtcn(ji,jj) / rdt_ice 
    589                WRITE(numout,*) ' fdtcn     : ', fdtcn(ji,jj)  
    590                WRITE(numout,*) ' fhmec     : ', fhmec(ji,jj)  
    591                WRITE(numout,*) ' fheat_mec : ', fheat_mec(ji,jj)  
    592                WRITE(numout,*) ' fheat_res : ', fheat_res(ji,jj)  
    593                WRITE(numout,*) ' fhbri     : ', fhbri(ji,jj)  
     589               !WRITE(numout,*) ' ALERTE 8 :   Very high non-solar heat flux' 
     590               !WRITE(numout,*) ' ji, jj    : ', ji, jj 
     591               !WRITE(numout,*) ' qns       : ', qns(ji,jj) 
     592               !WRITE(numout,*) ' sst       : ', sst_m(ji,jj) 
     593               !WRITE(numout,*) ' sss       : ', sss_m(ji,jj) 
     594               !WRITE(numout,*) ' qcmif     : ', qcmif(ji,jj) 
     595               !WRITE(numout,*) ' qldif     : ', qldif(ji,jj) 
     596               !WRITE(numout,*) ' qcmif     : ', qcmif(ji,jj) / rdt_ice 
     597               !WRITE(numout,*) ' qldif     : ', qldif(ji,jj) / rdt_ice 
     598               !WRITE(numout,*) ' qfvbq     : ', qfvbq(ji,jj) 
     599               !WRITE(numout,*) ' qdtcn     : ', qdtcn(ji,jj) 
     600               !WRITE(numout,*) ' qfvbq / dt: ', qfvbq(ji,jj) / rdt_ice 
     601               !WRITE(numout,*) ' qdtcn / dt: ', qdtcn(ji,jj) / rdt_ice 
     602               !WRITE(numout,*) ' fdtcn     : ', fdtcn(ji,jj)  
     603               !WRITE(numout,*) ' fhmec     : ', fhmec(ji,jj)  
     604               !WRITE(numout,*) ' fheat_mec : ', fheat_mec(ji,jj)  
     605               !WRITE(numout,*) ' fheat_res : ', fheat_res(ji,jj)  
     606               !WRITE(numout,*) ' fhbri     : ', fhbri(ji,jj)  
    594607               ! 
    595                CALL lim_prt_state( ji, jj, 2, '   ') 
     608               !CALL lim_prt_state( kt, ji, jj, 2, '   ') 
    596609               inb_alp(ialert_id) = inb_alp(ialert_id) + 1 
    597610               ! 
     
    610623               DO ji = 1, jpi 
    611624                  ztmelts    =  -tmut * s_i(ji,jj,jk,jl) + rtt 
    612                   IF( t_i(ji,jj,jk,jl) >= ztmelts  .AND.  v_i(ji,jj,jl) > 1.e-6   & 
     625                  IF( t_i(ji,jj,jk,jl) >= ztmelts  .AND.  v_i(ji,jj,jl) > 1.e-10   & 
    613626                     &                             .AND.  a_i(ji,jj,jl) > 0._wp   ) THEN 
    614                      WRITE(numout,*) ' ALERTE 10 :   Very warm ice' 
    615                      WRITE(numout,*) ' ji, jj, jk, jl : ', ji, jj, jk, jl 
    616                      WRITE(numout,*) ' t_i : ', t_i(ji,jj,jk,jl) 
    617                      WRITE(numout,*) ' e_i : ', e_i(ji,jj,jk,jl) 
    618                      WRITE(numout,*) ' s_i : ', s_i(ji,jj,jk,jl) 
    619                      WRITE(numout,*) ' ztmelts : ', ztmelts 
     627                     !WRITE(numout,*) ' ALERTE 10 :   Very warm ice' 
     628                     !WRITE(numout,*) ' ji, jj, jk, jl : ', ji, jj, jk, jl 
     629                     !WRITE(numout,*) ' t_i : ', t_i(ji,jj,jk,jl) 
     630                     !WRITE(numout,*) ' e_i : ', e_i(ji,jj,jk,jl) 
     631                     !WRITE(numout,*) ' s_i : ', s_i(ji,jj,jk,jl) 
     632                     !WRITE(numout,*) ' ztmelts : ', ztmelts 
    620633                     inb_alp(ialert_id) = inb_alp(ialert_id) + 1 
    621634                  ENDIF 
     
    625638      END DO 
    626639 
    627       ialert_id = 1                                 ! reference number of this alert 
    628       cl_alname(ialert_id) = ' NO alerte 1      '   ! name of the alert 
    629       WRITE(numout,*) 
    630       WRITE(numout,*) ' All alerts at the end of ice model ' 
    631       DO ialert_id = 1, inb_altests 
    632          WRITE(numout,*) ialert_id, cl_alname(ialert_id)//' : ', inb_alp(ialert_id), ' times ! ' 
    633       END DO 
    634       ! 
     640      ! sum of the alerts on all processors 
     641      IF( lk_mpp ) THEN 
     642         DO ialert_id = 1, inb_altests 
     643            CALL mpp_sum(inb_alp(ialert_id)) 
     644         END DO 
     645      ENDIF 
     646 
     647      ! print alerts 
     648      IF( lwp ) THEN 
     649         ialert_id = 1                                 ! reference number of this alert 
     650         cl_alname(ialert_id) = ' NO alerte 1      '   ! name of the alert 
     651         WRITE(numout,*) ' time step ',kt 
     652         WRITE(numout,*) ' All alerts at the end of ice model ' 
     653         DO ialert_id = 1, inb_altests 
     654            WRITE(numout,*) ialert_id, cl_alname(ialert_id)//' : ', inb_alp(ialert_id), ' times ! ' 
     655         END DO 
     656      ENDIF 
     657     ! 
    635658   END SUBROUTINE lim_ctl 
    636659  
    637660    
    638    SUBROUTINE lim_prt_state( ki, kj, kn, cd1 ) 
     661   SUBROUTINE lim_prt_state( kt, ki, kj, kn, cd1 ) 
    639662      !!----------------------------------------------------------------------- 
    640663      !!                   ***  ROUTINE lim_prt_state ***  
     
    650673      !!                n : number of the option 
    651674      !!------------------------------------------------------------------- 
     675      INTEGER         , INTENT(in) ::   kt      ! ocean time step 
    652676      INTEGER         , INTENT(in) ::   ki, kj, kn    ! ocean gridpoint indices 
    653677      CHARACTER(len=*), INTENT(in) ::   cd1           ! 
    654678      !! 
    655       INTEGER :: jl 
     679      INTEGER :: jl, ji, jj 
    656680      !!------------------------------------------------------------------- 
    657681 
    658       WRITE(numout,*) cd1             ! print title 
    659  
    660       !---------------- 
    661       !  Simple state 
    662       !---------------- 
    663  
    664       IF ( kn == 1 .OR. kn == -1 ) THEN 
    665          WRITE(numout,*) ' lim_prt_state - Point : ',ki,kj 
    666          WRITE(numout,*) ' ~~~~~~~~~~~~~~ ' 
    667          WRITE(numout,*) ' Simple state ' 
    668          WRITE(numout,*) ' masks s,u,v   : ', tms(ki,kj), tmu(ki,kj), tmv(ki,kj) 
    669          WRITE(numout,*) ' lat - long    : ', gphit(ki,kj), glamt(ki,kj) 
    670          WRITE(numout,*) ' Time step     : ', numit 
    671          WRITE(numout,*) ' - Ice drift   ' 
    672          WRITE(numout,*) '   ~~~~~~~~~~~ ' 
    673          WRITE(numout,*) ' u_ice(i-1,j)  : ', u_ice(ki-1,kj) 
    674          WRITE(numout,*) ' u_ice(i  ,j)  : ', u_ice(ki,kj) 
    675          WRITE(numout,*) ' v_ice(i  ,j-1): ', v_ice(ki,kj-1) 
    676          WRITE(numout,*) ' v_ice(i  ,j)  : ', v_ice(ki,kj) 
    677          WRITE(numout,*) ' strength      : ', strength(ki,kj) 
    678          WRITE(numout,*) 
    679          WRITE(numout,*) ' - Cell values ' 
    680          WRITE(numout,*) '   ~~~~~~~~~~~ ' 
    681          WRITE(numout,*) ' cell area     : ', area(ki,kj) 
    682          WRITE(numout,*) ' at_i          : ', at_i(ki,kj)        
    683          WRITE(numout,*) ' vt_i          : ', vt_i(ki,kj)        
    684          WRITE(numout,*) ' vt_s          : ', vt_s(ki,kj)        
    685          DO jl = 1, jpl 
    686             WRITE(numout,*) ' - Category (', jl,')' 
    687             WRITE(numout,*) ' a_i           : ', a_i(ki,kj,jl) 
    688             WRITE(numout,*) ' ht_i          : ', ht_i(ki,kj,jl) 
    689             WRITE(numout,*) ' ht_s          : ', ht_s(ki,kj,jl) 
    690             WRITE(numout,*) ' v_i           : ', v_i(ki,kj,jl) 
    691             WRITE(numout,*) ' v_s           : ', v_s(ki,kj,jl) 
    692             WRITE(numout,*) ' e_s           : ', e_s(ki,kj,1,jl)/1.0e9 
    693             WRITE(numout,*) ' e_i           : ', e_i(ki,kj,1:nlay_i,jl)/1.0e9 
    694             WRITE(numout,*) ' t_su          : ', t_su(ki,kj,jl) 
    695             WRITE(numout,*) ' t_snow        : ', t_s(ki,kj,1,jl) 
    696             WRITE(numout,*) ' t_i           : ', t_i(ki,kj,1:nlay_i,jl) 
    697             WRITE(numout,*) ' sm_i          : ', sm_i(ki,kj,jl) 
    698             WRITE(numout,*) ' smv_i         : ', smv_i(ki,kj,jl) 
    699             WRITE(numout,*) 
    700             WRITE(numout,*) ' Pathological case : ', patho_case(ki,kj,jl) 
    701          END DO 
    702       ENDIF 
    703       IF( kn == -1 ) THEN 
    704          WRITE(numout,*) ' Mechanical Check ************** ' 
    705          WRITE(numout,*) ' Check what means ice divergence ' 
    706          WRITE(numout,*) ' Total ice concentration ', at_i (ki,kj) 
    707          WRITE(numout,*) ' Total lead fraction     ', ato_i(ki,kj) 
    708          WRITE(numout,*) ' Sum of both             ', ato_i(ki,kj) + at_i(ki,kj) 
    709          WRITE(numout,*) ' Sum of both minus 1     ', ato_i(ki,kj) + at_i(ki,kj) - 1.00 
    710       ENDIF 
    711  
    712  
    713       !-------------------- 
    714       !  Exhaustive state 
    715       !-------------------- 
    716  
    717       IF ( kn .EQ. 2 ) THEN 
    718          WRITE(numout,*) ' lim_prt_state - Point : ',ki,kj 
    719          WRITE(numout,*) ' ~~~~~~~~~~~~~~ ' 
    720          WRITE(numout,*) ' Exhaustive state ' 
    721          WRITE(numout,*) ' lat - long ', gphit(ki,kj), glamt(ki,kj) 
    722          WRITE(numout,*) ' Time step ', numit 
    723          WRITE(numout,*)  
    724          WRITE(numout,*) ' - Cell values ' 
    725          WRITE(numout,*) '   ~~~~~~~~~~~ ' 
    726          WRITE(numout,*) ' cell area     : ', area(ki,kj) 
    727          WRITE(numout,*) ' at_i          : ', at_i(ki,kj)        
    728          WRITE(numout,*) ' vt_i          : ', vt_i(ki,kj)        
    729          WRITE(numout,*) ' vt_s          : ', vt_s(ki,kj)        
    730          WRITE(numout,*) ' u_ice(i-1,j)  : ', u_ice(ki-1,kj) 
    731          WRITE(numout,*) ' u_ice(i  ,j)  : ', u_ice(ki,kj) 
    732          WRITE(numout,*) ' v_ice(i  ,j-1): ', v_ice(ki,kj-1) 
    733          WRITE(numout,*) ' v_ice(i  ,j)  : ', v_ice(ki,kj) 
    734          WRITE(numout,*) ' strength      : ', strength(ki,kj) 
    735          WRITE(numout,*) ' d_u_ice_dyn   : ', d_u_ice_dyn(ki,kj), ' d_v_ice_dyn   : ', d_v_ice_dyn(ki,kj) 
    736          WRITE(numout,*) ' old_u_ice     : ', old_u_ice(ki,kj)  , ' old_v_ice     : ', old_v_ice(ki,kj)   
    737          WRITE(numout,*) 
    738  
    739          DO jl = 1, jpl 
    740               WRITE(numout,*) ' - Category (',jl,')' 
    741               WRITE(numout,*) '   ~~~~~~~~         '  
    742               WRITE(numout,*) ' ht_i       : ', ht_i(ki,kj,jl)             , ' ht_s       : ', ht_s(ki,kj,jl) 
    743               WRITE(numout,*) ' t_i        : ', t_i(ki,kj,1:nlay_i,jl) 
    744               WRITE(numout,*) ' t_su       : ', t_su(ki,kj,jl)             , ' t_s        : ', t_s(ki,kj,1,jl) 
    745               WRITE(numout,*) ' sm_i       : ', sm_i(ki,kj,jl)             , ' o_i        : ', o_i(ki,kj,jl) 
    746               WRITE(numout,*) ' a_i        : ', a_i(ki,kj,jl)              , ' old_a_i    : ', old_a_i(ki,kj,jl)    
    747               WRITE(numout,*) ' d_a_i_trp  : ', d_a_i_trp(ki,kj,jl)        , ' d_a_i_thd  : ', d_a_i_thd(ki,kj,jl)  
    748               WRITE(numout,*) ' v_i        : ', v_i(ki,kj,jl)              , ' old_v_i    : ', old_v_i(ki,kj,jl)    
    749               WRITE(numout,*) ' d_v_i_trp  : ', d_v_i_trp(ki,kj,jl)        , ' d_v_i_thd  : ', d_v_i_thd(ki,kj,jl)  
    750               WRITE(numout,*) ' v_s        : ', v_s(ki,kj,jl)              , ' old_v_s    : ', old_v_s(ki,kj,jl)   
    751               WRITE(numout,*) ' d_v_s_trp  : ', d_v_s_trp(ki,kj,jl)        , ' d_v_s_thd  : ', d_v_s_thd(ki,kj,jl) 
    752               WRITE(numout,*) ' e_i1       : ', e_i(ki,kj,1,jl)/1.0e9      , ' old_ei1    : ', old_e_i(ki,kj,1,jl)/1.0e9  
    753               WRITE(numout,*) ' de_i1_trp  : ', d_e_i_trp(ki,kj,1,jl)/1.0e9, ' de_i1_thd  : ', d_e_i_thd(ki,kj,1,jl)/1.0e9 
    754               WRITE(numout,*) ' e_i2       : ', e_i(ki,kj,2,jl)/1.0e9      , ' old_ei2    : ', old_e_i(ki,kj,2,jl)/1.0e9   
    755               WRITE(numout,*) ' de_i2_trp  : ', d_e_i_trp(ki,kj,2,jl)/1.0e9, ' de_i2_thd  : ', d_e_i_thd(ki,kj,2,jl)/1.0e9 
    756               WRITE(numout,*) ' e_snow     : ', e_s(ki,kj,1,jl)            , ' old_e_snow : ', old_e_s(ki,kj,1,jl)  
    757               WRITE(numout,*) ' d_e_s_trp  : ', d_e_s_trp(ki,kj,1,jl)      , ' d_e_s_thd  : ', d_e_s_thd(ki,kj,1,jl) 
    758               WRITE(numout,*) ' smv_i      : ', smv_i(ki,kj,jl)            , ' old_smv_i  : ', old_smv_i(ki,kj,jl)    
    759               WRITE(numout,*) ' d_smv_i_trp: ', d_smv_i_trp(ki,kj,jl)      , ' d_smv_i_thd: ', d_smv_i_thd(ki,kj,jl)  
    760               WRITE(numout,*) ' oa_i       : ', oa_i(ki,kj,jl)             , ' old_oa_i   : ', old_oa_i(ki,kj,jl) 
    761               WRITE(numout,*) ' d_oa_i_trp : ', d_oa_i_trp(ki,kj,jl)       , ' d_oa_i_thd : ', d_oa_i_thd(ki,kj,jl) 
    762               WRITE(numout,*) ' Path. case : ', patho_case(ki,kj,jl) 
    763         END DO !jl 
    764  
    765         WRITE(numout,*) 
    766         WRITE(numout,*) ' - Heat / FW fluxes ' 
    767         WRITE(numout,*) '   ~~~~~~~~~~~~~~~~ ' 
    768 !       WRITE(numout,*) ' sfx_bri    : ', sfx_bri  (ki,kj) 
    769 !       WRITE(numout,*) ' sfx        : ', sfx      (ki,kj) 
    770 !       WRITE(numout,*) ' sfx_res  : ', sfx_res(ki,kj) 
    771         WRITE(numout,*) ' fmmec      : ', fmmec    (ki,kj) 
    772         WRITE(numout,*) ' fhmec      : ', fhmec    (ki,kj) 
    773         WRITE(numout,*) ' fhbri      : ', fhbri    (ki,kj) 
    774         WRITE(numout,*) ' fheat_mec  : ', fheat_mec(ki,kj) 
    775         WRITE(numout,*)  
    776         WRITE(numout,*) ' sst        : ', sst_m(ki,kj)   
    777         WRITE(numout,*) ' sss        : ', sss_m(ki,kj)   
    778         WRITE(numout,*)  
    779         WRITE(numout,*) ' - Stresses ' 
    780         WRITE(numout,*) '   ~~~~~~~~ ' 
    781         WRITE(numout,*) ' utau_ice   : ', utau_ice(ki,kj)  
    782         WRITE(numout,*) ' vtau_ice   : ', vtau_ice(ki,kj) 
    783         WRITE(numout,*) ' utau       : ', utau    (ki,kj)  
    784         WRITE(numout,*) ' vtau       : ', vtau    (ki,kj) 
    785         WRITE(numout,*) ' oc. vel. u : ', u_oce   (ki,kj) 
    786         WRITE(numout,*) ' oc. vel. v : ', v_oce   (ki,kj) 
    787      ENDIF 
    788  
    789      !--------------------- 
    790      ! Salt / heat fluxes 
    791      !--------------------- 
    792  
    793      IF ( kn .EQ. 3 ) THEN 
    794         WRITE(numout,*) ' lim_prt_state - Point : ',ki,kj 
    795         WRITE(numout,*) ' ~~~~~~~~~~~~~~ ' 
    796         WRITE(numout,*) ' - Salt / Heat Fluxes ' 
    797         WRITE(numout,*) '   ~~~~~~~~~~~~~~~~ ' 
    798         WRITE(numout,*) ' lat - long ', gphit(ki,kj), glamt(ki,kj) 
    799         WRITE(numout,*) ' Time step ', numit 
    800         WRITE(numout,*) 
    801         WRITE(numout,*) ' - Heat fluxes at bottom interface ***' 
    802         WRITE(numout,*) ' qsr       : ', qsr(ki,kj) 
    803         WRITE(numout,*) ' qns       : ', qns(ki,kj) 
    804         WRITE(numout,*) 
    805         WRITE(numout,*) ' - Salt fluxes at bottom interface ***' 
    806         WRITE(numout,*) ' emp       : ', emp    (ki,kj) 
    807         WRITE(numout,*) ' sfx_bri   : ', sfx_bri(ki,kj) 
    808         WRITE(numout,*) ' sfx       : ', sfx    (ki,kj) 
    809         WRITE(numout,*) ' sfx_res   : ', sfx_res(ki,kj) 
    810         WRITE(numout,*) ' sfx_mec   : ', sfx_mec(ki,kj) 
    811         WRITE(numout,*) ' - Heat fluxes at bottom interface ***' 
    812         WRITE(numout,*) ' fheat_res : ', fheat_res(ki,kj) 
    813         WRITE(numout,*) 
    814         WRITE(numout,*) ' - Momentum fluxes ' 
    815         WRITE(numout,*) ' utau      : ', utau(ki,kj)  
    816         WRITE(numout,*) ' vtau      : ', vtau(ki,kj) 
    817       ENDIF 
    818       WRITE(numout,*) ' ' 
    819       ! 
     682      DO ji = mi0(ki), mi1(ki) 
     683         DO jj = mj0(kj), mj1(kj) 
     684 
     685            WRITE(numout,*) ' time step ',kt,' ',cd1             ! print title 
     686 
     687            !---------------- 
     688            !  Simple state 
     689            !---------------- 
     690             
     691            IF ( kn == 1 .OR. kn == -1 ) THEN 
     692               WRITE(numout,*) ' lim_prt_state - Point : ',ji,jj 
     693               WRITE(numout,*) ' ~~~~~~~~~~~~~~ ' 
     694               WRITE(numout,*) ' Simple state ' 
     695               WRITE(numout,*) ' masks s,u,v   : ', tms(ji,jj), tmu(ji,jj), tmv(ji,jj) 
     696               WRITE(numout,*) ' lat - long    : ', gphit(ji,jj), glamt(ji,jj) 
     697               WRITE(numout,*) ' Time step     : ', numit 
     698               WRITE(numout,*) ' - Ice drift   ' 
     699               WRITE(numout,*) '   ~~~~~~~~~~~ ' 
     700               WRITE(numout,*) ' u_ice(i-1,j)  : ', u_ice(ji-1,jj) 
     701               WRITE(numout,*) ' u_ice(i  ,j)  : ', u_ice(ji,jj) 
     702               WRITE(numout,*) ' v_ice(i  ,j-1): ', v_ice(ji,jj-1) 
     703               WRITE(numout,*) ' v_ice(i  ,j)  : ', v_ice(ji,jj) 
     704               WRITE(numout,*) ' strength      : ', strength(ji,jj) 
     705               WRITE(numout,*) 
     706               WRITE(numout,*) ' - Cell values ' 
     707               WRITE(numout,*) '   ~~~~~~~~~~~ ' 
     708               WRITE(numout,*) ' cell area     : ', area(ji,jj) 
     709               WRITE(numout,*) ' at_i          : ', at_i(ji,jj)        
     710               WRITE(numout,*) ' vt_i          : ', vt_i(ji,jj)        
     711               WRITE(numout,*) ' vt_s          : ', vt_s(ji,jj)        
     712               DO jl = 1, jpl 
     713                  WRITE(numout,*) ' - Category (', jl,')' 
     714                  WRITE(numout,*) ' a_i           : ', a_i(ji,jj,jl) 
     715                  WRITE(numout,*) ' ht_i          : ', ht_i(ji,jj,jl) 
     716                  WRITE(numout,*) ' ht_s          : ', ht_s(ji,jj,jl) 
     717                  WRITE(numout,*) ' v_i           : ', v_i(ji,jj,jl) 
     718                  WRITE(numout,*) ' v_s           : ', v_s(ji,jj,jl) 
     719                  WRITE(numout,*) ' e_s           : ', e_s(ji,jj,1,jl)/1.0e9 
     720                  WRITE(numout,*) ' e_i           : ', e_i(ji,jj,1:nlay_i,jl)/1.0e9 
     721                  WRITE(numout,*) ' t_su          : ', t_su(ji,jj,jl) 
     722                  WRITE(numout,*) ' t_snow        : ', t_s(ji,jj,1,jl) 
     723                  WRITE(numout,*) ' t_i           : ', t_i(ji,jj,1:nlay_i,jl) 
     724                  WRITE(numout,*) ' sm_i          : ', sm_i(ji,jj,jl) 
     725                  WRITE(numout,*) ' smv_i         : ', smv_i(ji,jj,jl) 
     726                  WRITE(numout,*) 
     727               END DO 
     728            ENDIF 
     729            IF( kn == -1 ) THEN 
     730               WRITE(numout,*) ' Mechanical Check ************** ' 
     731               WRITE(numout,*) ' Check what means ice divergence ' 
     732               WRITE(numout,*) ' Total ice concentration ', at_i (ji,jj) 
     733               WRITE(numout,*) ' Total lead fraction     ', ato_i(ji,jj) 
     734               WRITE(numout,*) ' Sum of both             ', ato_i(ji,jj) + at_i(ji,jj) 
     735               WRITE(numout,*) ' Sum of both minus 1     ', ato_i(ji,jj) + at_i(ji,jj) - 1.00 
     736            ENDIF 
     737             
     738 
     739            !-------------------- 
     740            !  Exhaustive state 
     741            !-------------------- 
     742             
     743            IF ( kn .EQ. 2 ) THEN 
     744               WRITE(numout,*) ' lim_prt_state - Point : ',ji,jj 
     745               WRITE(numout,*) ' ~~~~~~~~~~~~~~ ' 
     746               WRITE(numout,*) ' Exhaustive state ' 
     747               WRITE(numout,*) ' lat - long ', gphit(ji,jj), glamt(ji,jj) 
     748               WRITE(numout,*) ' Time step ', numit 
     749               WRITE(numout,*)  
     750               WRITE(numout,*) ' - Cell values ' 
     751               WRITE(numout,*) '   ~~~~~~~~~~~ ' 
     752               WRITE(numout,*) ' cell area     : ', area(ji,jj) 
     753               WRITE(numout,*) ' at_i          : ', at_i(ji,jj)        
     754               WRITE(numout,*) ' vt_i          : ', vt_i(ji,jj)        
     755               WRITE(numout,*) ' vt_s          : ', vt_s(ji,jj)        
     756               WRITE(numout,*) ' u_ice(i-1,j)  : ', u_ice(ji-1,jj) 
     757               WRITE(numout,*) ' u_ice(i  ,j)  : ', u_ice(ji,jj) 
     758               WRITE(numout,*) ' v_ice(i  ,j-1): ', v_ice(ji,jj-1) 
     759               WRITE(numout,*) ' v_ice(i  ,j)  : ', v_ice(ji,jj) 
     760               WRITE(numout,*) ' strength      : ', strength(ji,jj) 
     761               WRITE(numout,*) ' d_u_ice_dyn   : ', d_u_ice_dyn(ji,jj), ' d_v_ice_dyn   : ', d_v_ice_dyn(ji,jj) 
     762               WRITE(numout,*) ' old_u_ice     : ', old_u_ice(ji,jj)  , ' old_v_ice     : ', old_v_ice(ji,jj)   
     763               WRITE(numout,*) 
     764                
     765               DO jl = 1, jpl 
     766                  WRITE(numout,*) ' - Category (',jl,')' 
     767                  WRITE(numout,*) '   ~~~~~~~~         '  
     768                  WRITE(numout,*) ' ht_i       : ', ht_i(ji,jj,jl)             , ' ht_s       : ', ht_s(ji,jj,jl) 
     769                  WRITE(numout,*) ' t_i        : ', t_i(ji,jj,1:nlay_i,jl) 
     770                  WRITE(numout,*) ' t_su       : ', t_su(ji,jj,jl)             , ' t_s        : ', t_s(ji,jj,1,jl) 
     771                  WRITE(numout,*) ' sm_i       : ', sm_i(ji,jj,jl)             , ' o_i        : ', o_i(ji,jj,jl) 
     772                  WRITE(numout,*) ' a_i        : ', a_i(ji,jj,jl)              , ' old_a_i    : ', old_a_i(ji,jj,jl)    
     773                  WRITE(numout,*) ' d_a_i_trp  : ', d_a_i_trp(ji,jj,jl)        , ' d_a_i_thd  : ', d_a_i_thd(ji,jj,jl)  
     774                  WRITE(numout,*) ' v_i        : ', v_i(ji,jj,jl)              , ' old_v_i    : ', old_v_i(ji,jj,jl)    
     775                  WRITE(numout,*) ' d_v_i_trp  : ', d_v_i_trp(ji,jj,jl)        , ' d_v_i_thd  : ', d_v_i_thd(ji,jj,jl)  
     776                  WRITE(numout,*) ' v_s        : ', v_s(ji,jj,jl)              , ' old_v_s    : ', old_v_s(ji,jj,jl)   
     777                  WRITE(numout,*) ' d_v_s_trp  : ', d_v_s_trp(ji,jj,jl)        , ' d_v_s_thd  : ', d_v_s_thd(ji,jj,jl) 
     778                  WRITE(numout,*) ' e_i1       : ', e_i(ji,jj,1,jl)/1.0e9      , ' old_ei1    : ', old_e_i(ji,jj,1,jl)/1.0e9  
     779                  WRITE(numout,*) ' de_i1_trp  : ', d_e_i_trp(ji,jj,1,jl)/1.0e9, ' de_i1_thd  : ', d_e_i_thd(ji,jj,1,jl)/1.0e9 
     780                  WRITE(numout,*) ' e_i2       : ', e_i(ji,jj,2,jl)/1.0e9      , ' old_ei2    : ', old_e_i(ji,jj,2,jl)/1.0e9   
     781                  WRITE(numout,*) ' de_i2_trp  : ', d_e_i_trp(ji,jj,2,jl)/1.0e9, ' de_i2_thd  : ', d_e_i_thd(ji,jj,2,jl)/1.0e9 
     782                  WRITE(numout,*) ' e_snow     : ', e_s(ji,jj,1,jl)            , ' old_e_snow : ', old_e_s(ji,jj,1,jl)  
     783                  WRITE(numout,*) ' d_e_s_trp  : ', d_e_s_trp(ji,jj,1,jl)      , ' d_e_s_thd  : ', d_e_s_thd(ji,jj,1,jl) 
     784                  WRITE(numout,*) ' smv_i      : ', smv_i(ji,jj,jl)            , ' old_smv_i  : ', old_smv_i(ji,jj,jl)    
     785                  WRITE(numout,*) ' d_smv_i_trp: ', d_smv_i_trp(ji,jj,jl)      , ' d_smv_i_thd: ', d_smv_i_thd(ji,jj,jl)  
     786                  WRITE(numout,*) ' oa_i       : ', oa_i(ji,jj,jl)             , ' old_oa_i   : ', old_oa_i(ji,jj,jl) 
     787                  WRITE(numout,*) ' d_oa_i_trp : ', d_oa_i_trp(ji,jj,jl)       , ' d_oa_i_thd : ', d_oa_i_thd(ji,jj,jl) 
     788               END DO !jl 
     789                
     790               WRITE(numout,*) 
     791               WRITE(numout,*) ' - Heat / FW fluxes ' 
     792               WRITE(numout,*) '   ~~~~~~~~~~~~~~~~ ' 
     793               WRITE(numout,*) ' emp        : ', emp      (ji,jj) 
     794               WRITE(numout,*) ' sfx        : ', sfx      (ji,jj) 
     795               WRITE(numout,*) ' sfx_thd    : ', sfx_thd(ji,jj) 
     796               WRITE(numout,*) ' sfx_bri    : ', sfx_bri  (ji,jj) 
     797               WRITE(numout,*) ' sfx_mec    : ', sfx_mec  (ji,jj) 
     798               WRITE(numout,*) ' sfx_res    : ', sfx_res(ji,jj) 
     799               WRITE(numout,*) ' fmmec      : ', fmmec    (ji,jj) 
     800               WRITE(numout,*) ' fhmec      : ', fhmec    (ji,jj) 
     801               WRITE(numout,*) ' fhbri      : ', fhbri    (ji,jj) 
     802               WRITE(numout,*) ' fheat_mec  : ', fheat_mec(ji,jj) 
     803               WRITE(numout,*)  
     804               WRITE(numout,*) ' sst        : ', sst_m(ji,jj)   
     805               WRITE(numout,*) ' sss        : ', sss_m(ji,jj)   
     806               WRITE(numout,*)  
     807               WRITE(numout,*) ' - Stresses ' 
     808               WRITE(numout,*) '   ~~~~~~~~ ' 
     809               WRITE(numout,*) ' utau_ice   : ', utau_ice(ji,jj)  
     810               WRITE(numout,*) ' vtau_ice   : ', vtau_ice(ji,jj) 
     811               WRITE(numout,*) ' utau       : ', utau    (ji,jj)  
     812               WRITE(numout,*) ' vtau       : ', vtau    (ji,jj) 
     813               WRITE(numout,*) ' oc. vel. u : ', u_oce   (ji,jj) 
     814               WRITE(numout,*) ' oc. vel. v : ', v_oce   (ji,jj) 
     815            ENDIF 
     816             
     817            !--------------------- 
     818            ! Salt / heat fluxes 
     819            !--------------------- 
     820             
     821            IF ( kn .EQ. 3 ) THEN 
     822               WRITE(numout,*) ' lim_prt_state - Point : ',ji,jj 
     823               WRITE(numout,*) ' ~~~~~~~~~~~~~~ ' 
     824               WRITE(numout,*) ' - Salt / Heat Fluxes ' 
     825               WRITE(numout,*) '   ~~~~~~~~~~~~~~~~ ' 
     826               WRITE(numout,*) ' lat - long ', gphit(ji,jj), glamt(ji,jj) 
     827               WRITE(numout,*) ' Time step ', numit 
     828               WRITE(numout,*) 
     829               WRITE(numout,*) ' - Heat fluxes at bottom interface ***' 
     830               WRITE(numout,*) ' qsr       : ', qsr(ji,jj) 
     831               WRITE(numout,*) ' qns       : ', qns(ji,jj) 
     832               WRITE(numout,*) ' fdtcn     : ', fdtcn(ji,jj) 
     833               WRITE(numout,*) ' qcmif     : ', qcmif(ji,jj) * r1_rdtice 
     834               WRITE(numout,*) ' qldif     : ', qldif(ji,jj) * r1_rdtice 
     835               WRITE(numout,*) 
     836               WRITE(numout,*) ' - Salt fluxes at bottom interface ***' 
     837               WRITE(numout,*) ' emp       : ', emp    (ji,jj) 
     838               WRITE(numout,*) ' sfx_bri   : ', sfx_bri(ji,jj) 
     839               WRITE(numout,*) ' sfx       : ', sfx    (ji,jj) 
     840               WRITE(numout,*) ' sfx_res   : ', sfx_res(ji,jj) 
     841               WRITE(numout,*) ' sfx_mec   : ', sfx_mec(ji,jj) 
     842               WRITE(numout,*) ' - Heat fluxes at bottom interface ***' 
     843               WRITE(numout,*) ' fheat_res : ', fheat_res(ji,jj) 
     844               WRITE(numout,*) 
     845               WRITE(numout,*) ' - Momentum fluxes ' 
     846               WRITE(numout,*) ' utau      : ', utau(ji,jj)  
     847               WRITE(numout,*) ' vtau      : ', vtau(ji,jj) 
     848            ENDIF 
     849            WRITE(numout,*) ' ' 
     850            ! 
     851         END DO 
     852      END DO 
     853 
    820854   END SUBROUTINE lim_prt_state 
    821855 
Note: See TracChangeset for help on using the changeset viewer.