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 8342 for branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/limthd.F90 – NEMO

Ignore:
Timestamp:
2017-07-15T17:27:14+02:00 (7 years ago)
Author:
clem
Message:

simplify the code

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/limthd.F90

    r8341 r8342  
    8383      ! 
    8484      INTEGER  :: ji, jj, jk, jl   ! dummy loop indices 
    85       INTEGER  :: nidx             ! nb of icy pts for vertical thermo calculations 
    8685      REAL(wp) :: zfric_u, zqld, zqfr, zqfr_neg 
    8786      REAL(wp) :: zvi_b, zsmv_b, zei_b, zfs_b, zfw_b, zft_b  
     
    242241            dh_snowice(:) = 0._wp ; dh_i_sub (:) = 0._wp 
    243242 
    244                               CALL lim_thd_1d2d( nidx, jl, 1 )               ! --- Move to 1D arrays --- ! 
     243                              CALL lim_thd_1d2d( jl, 1 )               ! --- Move to 1D arrays --- ! 
    245244            ! 
    246245            DO jk = 1, nlay_i                                                ! --- Change units from J/m2 to J/m3 --- ! 
     
    251250            ENDDO 
    252251            ! 
    253             IF( ln_limdH )    CALL lim_thd_dif( 1, nidx )                    ! --- Ice/Snow Temperature profile --- ! 
    254             ! 
    255             IF( ln_limdH )    CALL lim_thd_dh( 1, nidx )                     ! --- Ice/Snow thickness --- !     
    256             ! 
    257             IF( ln_limdH )    CALL lim_thd_ent( 1, nidx, e_i_1d(1:nidx,:) )  ! --- Ice enthalpy remapping --- ! 
    258             ! 
    259                               CALL lim_thd_sal( 1, nidx )                    ! --- Ice salinity --- !     
    260             ! 
    261                               CALL lim_thd_temp( 1, nidx )                   ! --- temperature update --- ! 
     252            IF( ln_limdH )    CALL lim_thd_dif                    ! --- Ice/Snow Temperature profile --- ! 
     253            ! 
     254            IF( ln_limdH )    CALL lim_thd_dh                     ! --- Ice/Snow thickness --- !     
     255            ! 
     256            IF( ln_limdH )    CALL lim_thd_ent( e_i_1d(1:nidx,:) )  ! --- Ice enthalpy remapping --- ! 
     257            ! 
     258                              CALL lim_thd_sal                    ! --- Ice salinity --- !     
     259            ! 
     260                              CALL lim_thd_temp                   ! --- temperature update --- ! 
    262261            ! 
    263262            IF( ln_limdH ) THEN 
    264263               IF ( ( nn_monocat == 1 .OR. nn_monocat == 4 ) .AND. jpl == 1 ) THEN 
    265                               CALL lim_thd_lam( 1, nidx )                    ! --- extra lateral melting if monocat --- ! 
     264                              CALL lim_thd_lam                    ! --- extra lateral melting if monocat --- ! 
    266265               END IF 
    267266            END IF 
     
    274273            ENDDO 
    275274            ! 
    276                               CALL lim_thd_1d2d( nidx, jl, 2 )               ! --- Move to 2D arrays --- ! 
     275                              CALL lim_thd_1d2d( jl, 2 )               ! --- Move to 2D arrays --- ! 
    277276            ! 
    278277            IF( lk_mpp )      CALL mpp_comm_free( ncomm_ice ) !RB necessary ?? 
     
    344343 
    345344  
    346    SUBROUTINE lim_thd_temp( kideb, kiut ) 
     345   SUBROUTINE lim_thd_temp 
    347346      !!----------------------------------------------------------------------- 
    348347      !!                   ***  ROUTINE lim_thd_temp ***  
     
    352351      !! ** Method  :   Formula (Bitz and Lipscomb, 1999) 
    353352      !!------------------------------------------------------------------- 
    354       INTEGER, INTENT(in) ::   kideb, kiut   ! bounds for the spatial loop 
    355       ! 
    356353      INTEGER  ::   ji, jk   ! dummy loop indices 
    357354      REAL(wp) ::   ztmelts, zaaa, zbbb, zccc, zdiscrim  ! local scalar  
     
    359356      ! Recover ice temperature 
    360357      DO jk = 1, nlay_i 
    361          DO ji = kideb, kiut 
     358         DO ji = 1, nidx 
    362359            ztmelts       =  -tmut * s_i_1d(ji,jk) + rt0 
    363360            ! Conversion q(S,T) -> T (second order equation) 
     
    377374 
    378375 
    379    SUBROUTINE lim_thd_lam( kideb, kiut ) 
     376   SUBROUTINE lim_thd_lam 
    380377      !!----------------------------------------------------------------------- 
    381378      !!                   ***  ROUTINE lim_thd_lam ***  
     
    384381      !!                          ( dA = A/2h dh ) 
    385382      !!----------------------------------------------------------------------- 
    386       INTEGER, INTENT(in) ::   kideb, kiut        ! bounds for the spatial loop 
    387       ! 
    388383      INTEGER  ::   ji                 ! dummy loop indices 
    389384      REAL(wp) ::   zhi_bef            ! ice thickness before thermo 
     
    392387      !!----------------------------------------------------------------------- 
    393388      ! 
    394       DO ji = kideb, kiut 
     389      DO ji = 1, nidx 
    395390         zdh_mel = MIN( 0._wp, dh_i_surf(ji) + dh_i_bott(ji) + dh_snowice(ji) + dh_i_sub(ji) ) 
    396391         IF( zdh_mel < 0._wp .AND. a_i_1d(ji) > 0._wp )  THEN 
     
    413408 
    414409 
    415    SUBROUTINE lim_thd_1d2d( nidx, jl, kn ) 
     410   SUBROUTINE lim_thd_1d2d( jl, kn ) 
    416411      !!----------------------------------------------------------------------- 
    417412      !!                   ***  ROUTINE lim_thd_1d2d ***  
     
    419414      !! ** Purpose :   move arrays from 1d to 2d and the reverse 
    420415      !!----------------------------------------------------------------------- 
     416      INTEGER, INTENT(in) ::   jl       ! ice cat 
    421417      INTEGER, INTENT(in) ::   kn       ! 1= from 2D to 1D   ;   2= from 1D to 2D 
    422       INTEGER, INTENT(in) ::   nidx     ! size of 1D arrays 
    423       INTEGER, INTENT(in) ::   jl       ! ice cat 
    424418      ! 
    425419      INTEGER             ::   jk       ! dummy loop indices 
     
    430424      CASE( 1 )            ! from 2D to 1D 
    431425         ! 
    432          CALL tab_2d_1d( nidx, at_i_1d     (1:nidx), at_i            , jpi, jpj, idxice(1:nidx) ) 
    433          CALL tab_2d_1d( nidx, a_i_1d      (1:nidx), a_i(:,:,jl)     , jpi, jpj, idxice(1:nidx) ) 
    434          CALL tab_2d_1d( nidx, ht_i_1d     (1:nidx), ht_i(:,:,jl)    , jpi, jpj, idxice(1:nidx) ) 
    435          CALL tab_2d_1d( nidx, ht_s_1d     (1:nidx), ht_s(:,:,jl)    , jpi, jpj, idxice(1:nidx) ) 
    436          ! 
    437          CALL tab_2d_1d( nidx, t_su_1d     (1:nidx), t_su(:,:,jl)    , jpi, jpj, idxice(1:nidx) ) 
    438          CALL tab_2d_1d( nidx, sm_i_1d     (1:nidx), sm_i(:,:,jl)    , jpi, jpj, idxice(1:nidx) ) 
     426         CALL tab_2d_1d( nidx, idxice(1:nidx), at_i_1d(1:nidx), at_i             ) 
     427         CALL tab_2d_1d( nidx, idxice(1:nidx), a_i_1d (1:nidx), a_i(:,:,jl)      ) 
     428         CALL tab_2d_1d( nidx, idxice(1:nidx), ht_i_1d(1:nidx), ht_i(:,:,jl)     ) 
     429         CALL tab_2d_1d( nidx, idxice(1:nidx), ht_s_1d(1:nidx), ht_s(:,:,jl)     ) 
     430         CALL tab_2d_1d( nidx, idxice(1:nidx), t_su_1d(1:nidx), t_su(:,:,jl)     ) 
     431         CALL tab_2d_1d( nidx, idxice(1:nidx), sm_i_1d(1:nidx), sm_i(:,:,jl)     ) 
    439432         DO jk = 1, nlay_s 
    440             CALL tab_2d_1d( nidx, t_s_1d(1:nidx,jk), t_s(:,:,jk,jl)  , jpi, jpj, idxice(1:nidx) ) 
    441             CALL tab_2d_1d( nidx, e_s_1d(1:nidx,jk), e_s(:,:,jk,jl)  , jpi, jpj, idxice(1:nidx) ) 
     433            CALL tab_2d_1d( nidx, idxice(1:nidx), t_s_1d(1:nidx,jk), t_s(:,:,jk,jl)  ) 
     434            CALL tab_2d_1d( nidx, idxice(1:nidx), e_s_1d(1:nidx,jk), e_s(:,:,jk,jl)  ) 
    442435         END DO 
    443436         DO jk = 1, nlay_i 
    444             CALL tab_2d_1d( nidx, t_i_1d(1:nidx,jk), t_i(:,:,jk,jl)  , jpi, jpj, idxice(1:nidx) ) 
    445             CALL tab_2d_1d( nidx, e_i_1d(1:nidx,jk), e_i(:,:,jk,jl)  , jpi, jpj, idxice(1:nidx) ) 
    446             CALL tab_2d_1d( nidx, s_i_1d(1:nidx,jk), s_i(:,:,jk,jl)  , jpi, jpj, idxice(1:nidx) ) 
    447          END DO 
    448          ! 
    449          CALL tab_2d_1d( nidx, qprec_ice_1d(1:nidx), qprec_ice(:,:) , jpi, jpj, idxice(1:nidx) ) 
    450          CALL tab_2d_1d( nidx, qevap_ice_1d(1:nidx), qevap_ice(:,:,jl) , jpi, jpj, idxice(1:nidx) ) 
    451          CALL tab_2d_1d( nidx, qsr_ice_1d (1:nidx), qsr_ice(:,:,jl) , jpi, jpj, idxice(1:nidx) ) 
    452          CALL tab_2d_1d( nidx, fr1_i0_1d  (1:nidx), fr1_i0          , jpi, jpj, idxice(1:nidx) ) 
    453          CALL tab_2d_1d( nidx, fr2_i0_1d  (1:nidx), fr2_i0          , jpi, jpj, idxice(1:nidx) ) 
    454          CALL tab_2d_1d( nidx, qns_ice_1d (1:nidx), qns_ice(:,:,jl) , jpi, jpj, idxice(1:nidx) ) 
    455          CALL tab_2d_1d( nidx, ftr_ice_1d (1:nidx), ftr_ice(:,:,jl) , jpi, jpj, idxice(1:nidx) ) 
    456          CALL tab_2d_1d( nidx, evap_ice_1d (1:nidx), evap_ice(:,:,jl), jpi, jpj, idxice(1:nidx) ) 
    457          CALL tab_2d_1d( nidx, dqns_ice_1d(1:nidx), dqns_ice(:,:,jl), jpi, jpj, idxice(1:nidx) ) 
    458          CALL tab_2d_1d( nidx, t_bo_1d     (1:nidx), t_bo            , jpi, jpj, idxice(1:nidx) ) 
    459          CALL tab_2d_1d( nidx, sprecip_1d (1:nidx), sprecip         , jpi, jpj, idxice(1:nidx) )  
    460          CALL tab_2d_1d( nidx, fhtur_1d   (1:nidx), fhtur           , jpi, jpj, idxice(1:nidx) ) 
    461          CALL tab_2d_1d( nidx, fhld_1d    (1:nidx), fhld            , jpi, jpj, idxice(1:nidx) ) 
    462          ! 
    463          CALL tab_2d_1d( nidx, wfx_snw_sni_1d(1:nidx), wfx_snw_sni  , jpi, jpj, idxice(1:nidx) ) 
    464          CALL tab_2d_1d( nidx, wfx_snw_sum_1d(1:nidx), wfx_snw_sum  , jpi, jpj, idxice(1:nidx) ) 
    465          CALL tab_2d_1d( nidx, wfx_sub_1d (1:nidx), wfx_sub         , jpi, jpj, idxice(1:nidx) ) 
    466          CALL tab_2d_1d( nidx, wfx_snw_sub_1d(1:nidx), wfx_snw_sub  , jpi, jpj, idxice(1:nidx) ) 
    467          CALL tab_2d_1d( nidx, wfx_ice_sub_1d(1:nidx), wfx_ice_sub  , jpi, jpj, idxice(1:nidx) ) 
    468          CALL tab_2d_1d( nidx, wfx_err_sub_1d(1:nidx), wfx_err_sub  , jpi, jpj, idxice(1:nidx) ) 
    469          ! 
    470          CALL tab_2d_1d( nidx, wfx_bog_1d (1:nidx), wfx_bog         , jpi, jpj, idxice(1:nidx) ) 
    471          CALL tab_2d_1d( nidx, wfx_bom_1d (1:nidx), wfx_bom         , jpi, jpj, idxice(1:nidx) ) 
    472          CALL tab_2d_1d( nidx, wfx_sum_1d (1:nidx), wfx_sum         , jpi, jpj, idxice(1:nidx) ) 
    473          CALL tab_2d_1d( nidx, wfx_sni_1d (1:nidx), wfx_sni         , jpi, jpj, idxice(1:nidx) ) 
    474          CALL tab_2d_1d( nidx, wfx_res_1d (1:nidx), wfx_res         , jpi, jpj, idxice(1:nidx) ) 
    475          CALL tab_2d_1d( nidx, wfx_spr_1d (1:nidx), wfx_spr         , jpi, jpj, idxice(1:nidx) ) 
    476          ! 
    477          CALL tab_2d_1d( nidx, sfx_bog_1d (1:nidx), sfx_bog         , jpi, jpj, idxice(1:nidx) ) 
    478          CALL tab_2d_1d( nidx, sfx_bom_1d (1:nidx), sfx_bom         , jpi, jpj, idxice(1:nidx) ) 
    479          CALL tab_2d_1d( nidx, sfx_sum_1d (1:nidx), sfx_sum         , jpi, jpj, idxice(1:nidx) ) 
    480          CALL tab_2d_1d( nidx, sfx_sni_1d (1:nidx), sfx_sni         , jpi, jpj, idxice(1:nidx) ) 
    481          CALL tab_2d_1d( nidx, sfx_bri_1d (1:nidx), sfx_bri         , jpi, jpj, idxice(1:nidx) ) 
    482          CALL tab_2d_1d( nidx, sfx_res_1d (1:nidx), sfx_res         , jpi, jpj, idxice(1:nidx) ) 
    483          CALL tab_2d_1d( nidx, sfx_sub_1d (1:nidx), sfx_sub         , jpi, jpj,idxice(1:nidx) ) 
    484          ! 
    485          CALL tab_2d_1d( nidx, hfx_thd_1d (1:nidx), hfx_thd         , jpi, jpj, idxice(1:nidx) ) 
    486          CALL tab_2d_1d( nidx, hfx_spr_1d (1:nidx), hfx_spr         , jpi, jpj, idxice(1:nidx) ) 
    487          CALL tab_2d_1d( nidx, hfx_sum_1d (1:nidx), hfx_sum         , jpi, jpj, idxice(1:nidx) ) 
    488          CALL tab_2d_1d( nidx, hfx_bom_1d (1:nidx), hfx_bom         , jpi, jpj, idxice(1:nidx) ) 
    489          CALL tab_2d_1d( nidx, hfx_bog_1d (1:nidx), hfx_bog         , jpi, jpj, idxice(1:nidx) ) 
    490          CALL tab_2d_1d( nidx, hfx_dif_1d (1:nidx), hfx_dif         , jpi, jpj, idxice(1:nidx) ) 
    491          CALL tab_2d_1d( nidx, hfx_opw_1d (1:nidx), hfx_opw         , jpi, jpj, idxice(1:nidx) ) 
    492          CALL tab_2d_1d( nidx, hfx_snw_1d (1:nidx), hfx_snw         , jpi, jpj, idxice(1:nidx) ) 
    493          CALL tab_2d_1d( nidx, hfx_sub_1d (1:nidx), hfx_sub         , jpi, jpj, idxice(1:nidx) ) 
    494          CALL tab_2d_1d( nidx, hfx_err_1d (1:nidx), hfx_err         , jpi, jpj, idxice(1:nidx) ) 
    495          CALL tab_2d_1d( nidx, hfx_res_1d (1:nidx), hfx_res         , jpi, jpj, idxice(1:nidx) ) 
    496          CALL tab_2d_1d( nidx, hfx_err_dif_1d (1:nidx), hfx_err_dif , jpi, jpj, idxice(1:nidx) ) 
    497          CALL tab_2d_1d( nidx, hfx_err_rem_1d (1:nidx), hfx_err_rem , jpi, jpj, idxice(1:nidx) ) 
    498          CALL tab_2d_1d( nidx, hfx_out_1d (1:nidx), hfx_out         , jpi, jpj, idxice(1:nidx) ) 
     437            CALL tab_2d_1d( nidx, idxice(1:nidx), t_i_1d(1:nidx,jk), t_i(:,:,jk,jl)  ) 
     438            CALL tab_2d_1d( nidx, idxice(1:nidx), e_i_1d(1:nidx,jk), e_i(:,:,jk,jl)  ) 
     439            CALL tab_2d_1d( nidx, idxice(1:nidx), s_i_1d(1:nidx,jk), s_i(:,:,jk,jl)  ) 
     440         END DO 
     441         ! 
     442         CALL tab_2d_1d( nidx, idxice(1:nidx), qprec_ice_1d(1:nidx), qprec_ice        ) 
     443         CALL tab_2d_1d( nidx, idxice(1:nidx), qevap_ice_1d(1:nidx), qevap_ice(:,:,jl) ) 
     444         CALL tab_2d_1d( nidx, idxice(1:nidx), qsr_ice_1d  (1:nidx), qsr_ice(:,:,jl) ) 
     445         CALL tab_2d_1d( nidx, idxice(1:nidx), fr1_i0_1d   (1:nidx), fr1_i0          ) 
     446         CALL tab_2d_1d( nidx, idxice(1:nidx), fr2_i0_1d   (1:nidx), fr2_i0          ) 
     447         CALL tab_2d_1d( nidx, idxice(1:nidx), qns_ice_1d  (1:nidx), qns_ice(:,:,jl) ) 
     448         CALL tab_2d_1d( nidx, idxice(1:nidx), ftr_ice_1d  (1:nidx), ftr_ice(:,:,jl) ) 
     449         CALL tab_2d_1d( nidx, idxice(1:nidx), evap_ice_1d (1:nidx), evap_ice(:,:,jl) ) 
     450         CALL tab_2d_1d( nidx, idxice(1:nidx), dqns_ice_1d (1:nidx), dqns_ice(:,:,jl) ) 
     451         CALL tab_2d_1d( nidx, idxice(1:nidx), t_bo_1d     (1:nidx), t_bo            ) 
     452         CALL tab_2d_1d( nidx, idxice(1:nidx), sprecip_1d  (1:nidx), sprecip          )  
     453         CALL tab_2d_1d( nidx, idxice(1:nidx), fhtur_1d    (1:nidx), fhtur            ) 
     454         CALL tab_2d_1d( nidx, idxice(1:nidx), fhld_1d     (1:nidx), fhld            ) 
     455         ! 
     456         CALL tab_2d_1d( nidx, idxice(1:nidx), wfx_snw_sni_1d(1:nidx), wfx_snw_sni  ) 
     457         CALL tab_2d_1d( nidx, idxice(1:nidx), wfx_snw_sum_1d(1:nidx), wfx_snw_sum  ) 
     458         CALL tab_2d_1d( nidx, idxice(1:nidx), wfx_sub_1d    (1:nidx), wfx_sub      ) 
     459         CALL tab_2d_1d( nidx, idxice(1:nidx), wfx_snw_sub_1d(1:nidx), wfx_snw_sub  ) 
     460         CALL tab_2d_1d( nidx, idxice(1:nidx), wfx_ice_sub_1d(1:nidx), wfx_ice_sub  ) 
     461         CALL tab_2d_1d( nidx, idxice(1:nidx), wfx_err_sub_1d(1:nidx), wfx_err_sub  ) 
     462         ! 
     463         CALL tab_2d_1d( nidx, idxice(1:nidx), wfx_bog_1d (1:nidx), wfx_bog          ) 
     464         CALL tab_2d_1d( nidx, idxice(1:nidx), wfx_bom_1d (1:nidx), wfx_bom          ) 
     465         CALL tab_2d_1d( nidx, idxice(1:nidx), wfx_sum_1d (1:nidx), wfx_sum          ) 
     466         CALL tab_2d_1d( nidx, idxice(1:nidx), wfx_sni_1d (1:nidx), wfx_sni          ) 
     467         CALL tab_2d_1d( nidx, idxice(1:nidx), wfx_res_1d (1:nidx), wfx_res          ) 
     468         CALL tab_2d_1d( nidx, idxice(1:nidx), wfx_spr_1d (1:nidx), wfx_spr          ) 
     469         ! 
     470         CALL tab_2d_1d( nidx, idxice(1:nidx), sfx_bog_1d (1:nidx), sfx_bog          ) 
     471         CALL tab_2d_1d( nidx, idxice(1:nidx), sfx_bom_1d (1:nidx), sfx_bom          ) 
     472         CALL tab_2d_1d( nidx, idxice(1:nidx), sfx_sum_1d (1:nidx), sfx_sum          ) 
     473         CALL tab_2d_1d( nidx, idxice(1:nidx), sfx_sni_1d (1:nidx), sfx_sni          ) 
     474         CALL tab_2d_1d( nidx, idxice(1:nidx), sfx_bri_1d (1:nidx), sfx_bri          ) 
     475         CALL tab_2d_1d( nidx, idxice(1:nidx), sfx_res_1d (1:nidx), sfx_res          ) 
     476         CALL tab_2d_1d( nidx, idxice(1:nidx), sfx_sub_1d (1:nidx), sfx_sub          ) 
     477         ! 
     478         CALL tab_2d_1d( nidx, idxice(1:nidx), hfx_thd_1d (1:nidx), hfx_thd          ) 
     479         CALL tab_2d_1d( nidx, idxice(1:nidx), hfx_spr_1d (1:nidx), hfx_spr          ) 
     480         CALL tab_2d_1d( nidx, idxice(1:nidx), hfx_sum_1d (1:nidx), hfx_sum          ) 
     481         CALL tab_2d_1d( nidx, idxice(1:nidx), hfx_bom_1d (1:nidx), hfx_bom          ) 
     482         CALL tab_2d_1d( nidx, idxice(1:nidx), hfx_bog_1d (1:nidx), hfx_bog          ) 
     483         CALL tab_2d_1d( nidx, idxice(1:nidx), hfx_dif_1d (1:nidx), hfx_dif          ) 
     484         CALL tab_2d_1d( nidx, idxice(1:nidx), hfx_opw_1d (1:nidx), hfx_opw          ) 
     485         CALL tab_2d_1d( nidx, idxice(1:nidx), hfx_snw_1d (1:nidx), hfx_snw          ) 
     486         CALL tab_2d_1d( nidx, idxice(1:nidx), hfx_sub_1d (1:nidx), hfx_sub          ) 
     487         CALL tab_2d_1d( nidx, idxice(1:nidx), hfx_err_1d (1:nidx), hfx_err          ) 
     488         CALL tab_2d_1d( nidx, idxice(1:nidx), hfx_res_1d (1:nidx), hfx_res          ) 
     489         CALL tab_2d_1d( nidx, idxice(1:nidx), hfx_err_dif_1d(1:nidx), hfx_err_dif  ) 
     490         CALL tab_2d_1d( nidx, idxice(1:nidx), hfx_err_rem_1d(1:nidx), hfx_err_rem  ) 
     491         CALL tab_2d_1d( nidx, idxice(1:nidx), hfx_out_1d (1:nidx), hfx_out          ) 
    499492         ! 
    500493         ! SIMIP diagnostics 
    501          CALL tab_2d_1d( nidx, diag_fc_bo_1d   (1:nidx), diag_fc_bo  , jpi, jpj, idxice(1:nidx) ) 
    502          CALL tab_2d_1d( nidx, diag_fc_su_1d   (1:nidx), diag_fc_su  , jpi, jpj, idxice(1:nidx) ) 
     494         CALL tab_2d_1d( nidx, idxice(1:nidx), diag_fc_bo_1d(1:nidx), diag_fc_bo  ) 
     495         CALL tab_2d_1d( nidx, idxice(1:nidx), diag_fc_su_1d(1:nidx), diag_fc_su  ) 
    503496         ! ocean surface fields 
    504          CALL tab_2d_1d( nidx, sst_1d(1:nidx), sst_m, jpi, jpj, idxice(1:nidx) ) 
    505          CALL tab_2d_1d( nidx, sss_1d(1:nidx), sss_m, jpi, jpj, idxice(1:nidx) ) 
     497         CALL tab_2d_1d( nidx, idxice(1:nidx), sst_1d(1:nidx), sst_m ) 
     498         CALL tab_2d_1d( nidx, idxice(1:nidx), sss_1d(1:nidx), sss_m ) 
    506499         ! 
    507500      CASE( 2 )            ! from 1D to 2D 
    508501         ! 
    509          CALL tab_1d_2d( nidx, at_i          , idxice, at_i_1d    (1:nidx)   , jpi, jpj ) 
    510          CALL tab_1d_2d( nidx, ht_i(:,:,jl)  , idxice, ht_i_1d    (1:nidx)   , jpi, jpj ) 
    511          CALL tab_1d_2d( nidx, ht_s(:,:,jl)  , idxice, ht_s_1d    (1:nidx)   , jpi, jpj ) 
    512          CALL tab_1d_2d( nidx, a_i (:,:,jl)  , idxice, a_i_1d     (1:nidx)   , jpi, jpj ) 
    513          CALL tab_1d_2d( nidx, t_su(:,:,jl)  , idxice, t_su_1d    (1:nidx)   , jpi, jpj ) 
    514          CALL tab_1d_2d( nidx, sm_i(:,:,jl)  , idxice, sm_i_1d    (1:nidx)   , jpi, jpj ) 
     502         CALL tab_1d_2d( nidx, idxice(1:nidx), at_i_1d(1:nidx), at_i            ) 
     503         CALL tab_1d_2d( nidx, idxice(1:nidx), a_i_1d (1:nidx), a_i(:,:,jl)      ) 
     504         CALL tab_1d_2d( nidx, idxice(1:nidx), ht_i_1d(1:nidx), ht_i(:,:,jl)    ) 
     505         CALL tab_1d_2d( nidx, idxice(1:nidx), ht_s_1d(1:nidx), ht_s(:,:,jl)    ) 
     506         CALL tab_1d_2d( nidx, idxice(1:nidx), t_su_1d(1:nidx), t_su(:,:,jl)    ) 
     507         CALL tab_1d_2d( nidx, idxice(1:nidx), sm_i_1d(1:nidx), sm_i(:,:,jl)    ) 
    515508         DO jk = 1, nlay_s 
    516             CALL tab_1d_2d( nidx, t_s(:,:,jk,jl), idxice, t_s_1d     (1:nidx,jk), jpi, jpj) 
    517             CALL tab_1d_2d( nidx, e_s(:,:,jk,jl), idxice, e_s_1d     (1:nidx,jk), jpi, jpj) 
     509            CALL tab_1d_2d( nidx, idxice(1:nidx), t_s_1d(1:nidx,jk), t_s(:,:,jk,jl)   ) 
     510            CALL tab_1d_2d( nidx, idxice(1:nidx), e_s_1d(1:nidx,jk), e_s(:,:,jk,jl)   ) 
    518511         END DO 
    519512         DO jk = 1, nlay_i 
    520             CALL tab_1d_2d( nidx, t_i(:,:,jk,jl), idxice, t_i_1d     (1:nidx,jk), jpi, jpj) 
    521             CALL tab_1d_2d( nidx, e_i(:,:,jk,jl), idxice, e_i_1d     (1:nidx,jk), jpi, jpj) 
    522             CALL tab_1d_2d( nidx, s_i(:,:,jk,jl), idxice, s_i_1d     (1:nidx,jk), jpi, jpj) 
    523          END DO 
    524          ! 
    525          CALL tab_1d_2d( nidx, wfx_snw_sni   , idxice, wfx_snw_sni_1d(1:nidx), jpi, jpj ) 
    526          CALL tab_1d_2d( nidx, wfx_snw_sum   , idxice, wfx_snw_sum_1d(1:nidx),jpi, jpj ) 
    527          CALL tab_1d_2d( nidx, wfx_sub       , idxice, wfx_sub_1d(1:nidx)   , jpi, jpj ) 
    528          CALL tab_1d_2d( nidx, wfx_snw_sub   , idxice, wfx_snw_sub_1d(1:nidx), jpi, jpj ) 
    529          CALL tab_1d_2d( nidx, wfx_ice_sub   , idxice, wfx_ice_sub_1d(1:nidx), jpi, jpj ) 
    530          CALL tab_1d_2d( nidx, wfx_err_sub   , idxice, wfx_err_sub_1d(1:nidx), jpi, jpj ) 
    531          ! 
    532          CALL tab_1d_2d( nidx, wfx_bog       , idxice, wfx_bog_1d(1:nidx)   , jpi, jpj ) 
    533          CALL tab_1d_2d( nidx, wfx_bom       , idxice, wfx_bom_1d(1:nidx)   , jpi, jpj ) 
    534          CALL tab_1d_2d( nidx, wfx_sum       , idxice, wfx_sum_1d(1:nidx)   , jpi, jpj ) 
    535          CALL tab_1d_2d( nidx, wfx_sni       , idxice, wfx_sni_1d(1:nidx)   , jpi, jpj ) 
    536          CALL tab_1d_2d( nidx, wfx_res       , idxice, wfx_res_1d(1:nidx)   , jpi, jpj ) 
    537          CALL tab_1d_2d( nidx, wfx_spr       , idxice, wfx_spr_1d(1:nidx)   , jpi, jpj ) 
    538          ! 
    539          CALL tab_1d_2d( nidx, sfx_bog       , idxice, sfx_bog_1d(1:nidx)   , jpi, jpj ) 
    540          CALL tab_1d_2d( nidx, sfx_bom       , idxice, sfx_bom_1d(1:nidx)   , jpi, jpj ) 
    541          CALL tab_1d_2d( nidx, sfx_sum       , idxice, sfx_sum_1d(1:nidx)   , jpi, jpj ) 
    542          CALL tab_1d_2d( nidx, sfx_sni       , idxice, sfx_sni_1d(1:nidx)   , jpi, jpj ) 
    543          CALL tab_1d_2d( nidx, sfx_res       , idxice, sfx_res_1d(1:nidx)   , jpi, jpj ) 
    544          CALL tab_1d_2d( nidx, sfx_bri       , idxice, sfx_bri_1d(1:nidx)   , jpi, jpj ) 
    545          CALL tab_1d_2d( nidx, sfx_sub       , idxice, sfx_sub_1d(1:nidx)   , jpi, jpj )         
    546          ! 
    547          CALL tab_1d_2d( nidx, hfx_thd       , idxice, hfx_thd_1d(1:nidx)   , jpi, jpj ) 
    548          CALL tab_1d_2d( nidx, hfx_spr       , idxice, hfx_spr_1d(1:nidx)   , jpi, jpj ) 
    549          CALL tab_1d_2d( nidx, hfx_sum       , idxice, hfx_sum_1d(1:nidx)   , jpi, jpj ) 
    550          CALL tab_1d_2d( nidx, hfx_bom       , idxice, hfx_bom_1d(1:nidx)   , jpi, jpj ) 
    551          CALL tab_1d_2d( nidx, hfx_bog       , idxice, hfx_bog_1d(1:nidx)   , jpi, jpj ) 
    552          CALL tab_1d_2d( nidx, hfx_dif       , idxice, hfx_dif_1d(1:nidx)   , jpi, jpj ) 
    553          CALL tab_1d_2d( nidx, hfx_opw       , idxice, hfx_opw_1d(1:nidx)   , jpi, jpj ) 
    554          CALL tab_1d_2d( nidx, hfx_snw       , idxice, hfx_snw_1d(1:nidx)   , jpi, jpj ) 
    555          CALL tab_1d_2d( nidx, hfx_sub       , idxice, hfx_sub_1d(1:nidx)   , jpi, jpj ) 
    556          CALL tab_1d_2d( nidx, hfx_err       , idxice, hfx_err_1d(1:nidx)   , jpi, jpj ) 
    557          CALL tab_1d_2d( nidx, hfx_res       , idxice, hfx_res_1d(1:nidx)   , jpi, jpj ) 
    558          CALL tab_1d_2d( nidx, hfx_err_rem   , idxice, hfx_err_rem_1d(1:nidx), jpi, jpj ) 
    559          CALL tab_1d_2d( nidx, hfx_err_dif   , idxice, hfx_err_dif_1d(1:nidx), jpi, jpj ) 
    560          CALL tab_1d_2d( nidx, hfx_out       , idxice, hfx_out_1d(1:nidx)   , jpi, jpj ) 
    561          ! 
    562          CALL tab_1d_2d( nidx, qns_ice(:,:,jl), idxice, qns_ice_1d(1:nidx) , jpi, jpj) 
    563          CALL tab_1d_2d( nidx, ftr_ice(:,:,jl), idxice, ftr_ice_1d(1:nidx) , jpi, jpj ) 
     513            CALL tab_1d_2d( nidx, idxice(1:nidx), t_i_1d(1:nidx,jk), t_i(:,:,jk,jl)   ) 
     514            CALL tab_1d_2d( nidx, idxice(1:nidx), e_i_1d(1:nidx,jk), e_i(:,:,jk,jl)   ) 
     515            CALL tab_1d_2d( nidx, idxice(1:nidx), s_i_1d(1:nidx,jk), s_i(:,:,jk,jl)   ) 
     516         END DO 
     517         ! 
     518         CALL tab_1d_2d( nidx, idxice(1:nidx), wfx_snw_sni_1d(1:nidx), wfx_snw_sni   ) 
     519         CALL tab_1d_2d( nidx, idxice(1:nidx), wfx_snw_sum_1d(1:nidx), wfx_snw_sum   ) 
     520         CALL tab_1d_2d( nidx, idxice(1:nidx), wfx_sub_1d    (1:nidx), wfx_sub       ) 
     521         CALL tab_1d_2d( nidx, idxice(1:nidx), wfx_snw_sub_1d(1:nidx), wfx_snw_sub   ) 
     522         CALL tab_1d_2d( nidx, idxice(1:nidx), wfx_ice_sub_1d(1:nidx), wfx_ice_sub   ) 
     523         CALL tab_1d_2d( nidx, idxice(1:nidx), wfx_err_sub_1d(1:nidx), wfx_err_sub   ) 
     524         ! 
     525         CALL tab_1d_2d( nidx, idxice(1:nidx), wfx_bog_1d (1:nidx), wfx_bog          ) 
     526         CALL tab_1d_2d( nidx, idxice(1:nidx), wfx_bom_1d (1:nidx), wfx_bom          ) 
     527         CALL tab_1d_2d( nidx, idxice(1:nidx), wfx_sum_1d (1:nidx), wfx_sum          ) 
     528         CALL tab_1d_2d( nidx, idxice(1:nidx), wfx_sni_1d (1:nidx), wfx_sni          ) 
     529         CALL tab_1d_2d( nidx, idxice(1:nidx), wfx_res_1d (1:nidx), wfx_res          ) 
     530         CALL tab_1d_2d( nidx, idxice(1:nidx), wfx_spr_1d (1:nidx), wfx_spr          ) 
     531         ! 
     532         CALL tab_1d_2d( nidx, idxice(1:nidx), sfx_bog_1d (1:nidx), sfx_bog          ) 
     533         CALL tab_1d_2d( nidx, idxice(1:nidx), sfx_bom_1d (1:nidx), sfx_bom          ) 
     534         CALL tab_1d_2d( nidx, idxice(1:nidx), sfx_sum_1d (1:nidx), sfx_sum          ) 
     535         CALL tab_1d_2d( nidx, idxice(1:nidx), sfx_sni_1d (1:nidx), sfx_sni          ) 
     536         CALL tab_1d_2d( nidx, idxice(1:nidx), sfx_bri_1d (1:nidx), sfx_bri          ) 
     537         CALL tab_1d_2d( nidx, idxice(1:nidx), sfx_res_1d (1:nidx), sfx_res          ) 
     538         CALL tab_1d_2d( nidx, idxice(1:nidx), sfx_sub_1d (1:nidx), sfx_sub          ) 
     539 
     540         CALL tab_1d_2d( nidx, idxice(1:nidx), hfx_thd_1d (1:nidx), hfx_thd          ) 
     541         CALL tab_1d_2d( nidx, idxice(1:nidx), hfx_spr_1d (1:nidx), hfx_spr          ) 
     542         CALL tab_1d_2d( nidx, idxice(1:nidx), hfx_sum_1d (1:nidx), hfx_sum          ) 
     543         CALL tab_1d_2d( nidx, idxice(1:nidx), hfx_bom_1d (1:nidx), hfx_bom          ) 
     544         CALL tab_1d_2d( nidx, idxice(1:nidx), hfx_bog_1d (1:nidx), hfx_bog          ) 
     545         CALL tab_1d_2d( nidx, idxice(1:nidx), hfx_dif_1d (1:nidx), hfx_dif          ) 
     546         CALL tab_1d_2d( nidx, idxice(1:nidx), hfx_opw_1d (1:nidx), hfx_opw          ) 
     547         CALL tab_1d_2d( nidx, idxice(1:nidx), hfx_snw_1d (1:nidx), hfx_snw          ) 
     548         CALL tab_1d_2d( nidx, idxice(1:nidx), hfx_sub_1d (1:nidx), hfx_sub          ) 
     549         CALL tab_1d_2d( nidx, idxice(1:nidx), hfx_err_1d (1:nidx), hfx_err          ) 
     550         CALL tab_1d_2d( nidx, idxice(1:nidx), hfx_res_1d (1:nidx), hfx_res          ) 
     551         CALL tab_1d_2d( nidx, idxice(1:nidx), hfx_err_dif_1d(1:nidx), hfx_err_dif   ) 
     552         CALL tab_1d_2d( nidx, idxice(1:nidx), hfx_err_rem_1d(1:nidx), hfx_err_rem   ) 
     553         CALL tab_1d_2d( nidx, idxice(1:nidx), hfx_out_1d (1:nidx), hfx_out          ) 
     554 
     555         CALL tab_1d_2d( nidx, idxice(1:nidx), qns_ice_1d  (1:nidx), qns_ice(:,:,jl)  ) 
     556         CALL tab_1d_2d( nidx, idxice(1:nidx), ftr_ice_1d  (1:nidx), ftr_ice(:,:,jl)  ) 
     557         ! 
    564558         ! 
    565559         ! SIMIP diagnostics          
    566          CALL tab_1d_2d( nidx, t_si(:,:,jl)   , idxice, t_si_1d    (1:nidx)     , jpi, jpj ) 
    567          CALL tab_1d_2d( nidx, diag_fc_bo     , idxice, diag_fc_bo_1d(1:nidx)   , jpi, jpj ) 
    568          CALL tab_1d_2d( nidx, diag_fc_su     , idxice, diag_fc_su_1d(1:nidx)   , jpi, jpj ) 
     560         CALL tab_1d_2d( nidx, idxice(1:nidx), t_si_1d      (1:nidx), t_si(:,:,jl)      ) 
     561         CALL tab_1d_2d( nidx, idxice(1:nidx), diag_fc_bo_1d(1:nidx), diag_fc_bo        ) 
     562         CALL tab_1d_2d( nidx, idxice(1:nidx), diag_fc_su_1d(1:nidx), diag_fc_su        ) 
    569563      END SELECT 
    570564      ! 
Note: See TracChangeset for help on using the changeset viewer.