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 12377 for NEMO/trunk/src/OCE/SBC/sbcmod.F90 – NEMO

Ignore:
Timestamp:
2020-02-12T15:39:06+01:00 (4 years ago)
Author:
acc
Message:

The big one. Merging all 2019 developments from the option 1 branch back onto the trunk.

This changeset reproduces 2019/dev_r11943_MERGE_2019 on the trunk using a 2-URL merge
onto a working copy of the trunk. I.e.:

svn merge --ignore-ancestry \

svn+ssh://acc@forge.ipsl.jussieu.fr/ipsl/forge/projets/nemo/svn/NEMO/trunk \
svn+ssh://acc@forge.ipsl.jussieu.fr/ipsl/forge/projets/nemo/svn/NEMO/branches/2019/dev_r11943_MERGE_2019 ./

The --ignore-ancestry flag avoids problems that may otherwise arise from the fact that
the merge history been trunk and branch may have been applied in a different order but
care has been taken before this step to ensure that all applicable fixes and updates
are present in the merge branch.

The trunk state just before this step has been branched to releases/release-4.0-HEAD
and that branch has been immediately tagged as releases/release-4.0.2. Any fixes
or additions in response to tickets on 4.0, 4.0.1 or 4.0.2 should be done on
releases/release-4.0-HEAD. From now on future 'point' releases (e.g. 4.0.2) will
remain unchanged with periodic releases as needs demand. Note release-4.0-HEAD is a
transitional naming convention. Future full releases, say 4.2, will have a release-4.2
branch which fulfills this role and the first point release (e.g. 4.2.0) will be made
immediately following the release branch creation.

2020 developments can be started from any trunk revision later than this one.

Location:
NEMO/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • NEMO/trunk

    • Property svn:externals
      •  

        old new  
        33^/utils/build/mk@HEAD         mk 
        44^/utils/tools@HEAD            tools 
        5 ^/vendors/AGRIF/dev@HEAD      ext/AGRIF 
         5^/vendors/AGRIF/dev_r11615_ENHANCE-04_namelists_as_internalfiles_agrif@HEAD      ext/AGRIF 
        66^/vendors/FCM@HEAD            ext/FCM 
        77^/vendors/IOIPSL@HEAD         ext/IOIPSL 
  • NEMO/trunk/src/OCE/SBC/sbcmod.F90

    r12276 r12377  
    1515   !!            3.6  ! 2014-11  (P. Mathiot, C. Harris) add ice shelves melting 
    1616   !!            4.0  ! 2016-06  (L. Brodeau) new general bulk formulation 
     17   !!            4.0  ! 2019-03  (F. Lemarié & G. Samson)  add ABL compatibility (ln_abl=TRUE) 
    1718   !!---------------------------------------------------------------------- 
    1819 
     
    2425   USE oce            ! ocean dynamics and tracers 
    2526   USE dom_oce        ! ocean space and time domain 
     27   USE closea         ! closed seas 
    2628   USE phycst         ! physical constants 
    2729   USE sbc_oce        ! Surface boundary condition: ocean fields 
     
    3234   USE sbcflx         ! surface boundary condition: flux formulation 
    3335   USE sbcblk         ! surface boundary condition: bulk formulation 
     36   USE sbcabl         ! atmospheric boundary layer 
    3437   USE sbcice_if      ! surface boundary condition: ice-if sea-ice model 
    3538#if defined key_si3 
     
    3740#endif 
    3841   USE sbcice_cice    ! surface boundary condition: CICE sea-ice model 
    39    USE sbcisf         ! surface boundary condition: ice-shelf 
    4042   USE sbccpl         ! surface boundary condition: coupled formulation 
    4143   USE cpl_oasis3     ! OASIS routines for coupling 
     44   USE sbcclo         ! surface boundary condition: closed sea correction 
    4245   USE sbcssr         ! surface boundary condition: sea surface restoring 
    4346   USE sbcrnf         ! surface boundary condition: runoffs 
    4447   USE sbcapr         ! surface boundary condition: atmo pressure  
    45    USE sbcisf         ! surface boundary condition: ice shelf 
    4648   USE sbcfwb         ! surface boundary condition: freshwater budget 
    4749   USE icbstp         ! Icebergs 
     
    5961   USE timing         ! Timing 
    6062   USE wet_dry 
    61    USE diurnal_bulk, ONLY:   ln_diurnal_only   ! diurnal SST diagnostic 
     63   USE diu_bulk, ONLY:   ln_diurnal_only   ! diurnal SST diagnostic 
    6264 
    6365   IMPLICIT NONE 
     
    7678CONTAINS 
    7779 
    78    SUBROUTINE sbc_init 
     80   SUBROUTINE sbc_init( Kbb, Kmm, Kaa ) 
    7981      !!--------------------------------------------------------------------- 
    8082      !!                    ***  ROUTINE sbc_init *** 
     
    8890      !!              - nsbc: type of sbc 
    8991      !!---------------------------------------------------------------------- 
     92      INTEGER, INTENT(in) ::   Kbb, Kmm, Kaa         ! ocean time level indices 
    9093      INTEGER ::   ios, icpt                         ! local integer 
    9194      LOGICAL ::   ll_purecpl, ll_opa, ll_not_nemo   ! local logical 
    9295      !! 
    9396      NAMELIST/namsbc/ nn_fsbc  ,                                                    & 
    94          &             ln_usr   , ln_flx   , ln_blk       ,                          & 
     97         &             ln_usr   , ln_flx   , ln_blk   , ln_abl,                      & 
    9598         &             ln_cpl   , ln_mixcpl, nn_components,                          & 
    9699         &             nn_ice   , ln_ice_embd,                                       & 
    97100         &             ln_traqsr, ln_dm2dc ,                                         & 
    98          &             ln_rnf   , nn_fwb   , ln_ssr   , ln_isf    , ln_apr_dyn ,     & 
    99          &             ln_wave  , ln_cdgw  , ln_sdw   , ln_tauwoc  , ln_stcor   ,     & 
     101         &             ln_rnf   , nn_fwb     , ln_ssr   , ln_apr_dyn,              & 
     102         &             ln_wave  , ln_cdgw  , ln_sdw   , ln_tauwoc  , ln_stcor  ,     & 
    100103         &             ln_tauw  , nn_lsm, nn_sdrift 
    101104      !!---------------------------------------------------------------------- 
     
    108111      ! 
    109112      !                       !**  read Surface Module namelist 
    110       REWIND( numnam_ref )          !* Namelist namsbc in reference namelist : Surface boundary 
    111113      READ  ( numnam_ref, namsbc, IOSTAT = ios, ERR = 901) 
    112114901   IF( ios /= 0 )   CALL ctl_nam ( ios , 'namsbc in reference namelist' ) 
    113       REWIND( numnam_cfg )          !* Namelist namsbc in configuration namelist : Parameters of the run 
    114115      READ  ( numnam_cfg, namsbc, IOSTAT = ios, ERR = 902 ) 
    115116902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namsbc in configuration namelist' ) 
     
    125126         IF( lk_cice )   nn_ice      = 3 
    126127      ENDIF 
    127 #else 
    128       IF( lk_si3  )   nn_ice      = 2 
    129       IF( lk_cice )   nn_ice      = 3 
     128!!GS: TBD 
     129!#else 
     130!      IF( lk_si3  )   nn_ice      = 2 
     131!      IF( lk_cice )   nn_ice      = 3 
    130132#endif 
    131133      ! 
     
    137139         WRITE(numout,*) '         flux         formulation                   ln_flx        = ', ln_flx 
    138140         WRITE(numout,*) '         bulk         formulation                   ln_blk        = ', ln_blk 
     141         WRITE(numout,*) '         ABL          formulation                   ln_abl        = ', ln_abl 
    139142         WRITE(numout,*) '      Type of coupling (Ocean/Ice/Atmosphere) : ' 
    140143         WRITE(numout,*) '         ocean-atmosphere coupled formulation       ln_cpl        = ', ln_cpl 
     
    153156         WRITE(numout,*) '         Patm gradient added in ocean & ice Eqs.    ln_apr_dyn    = ', ln_apr_dyn 
    154157         WRITE(numout,*) '         runoff / runoff mouths                     ln_rnf        = ', ln_rnf 
    155          WRITE(numout,*) '         iceshelf formulation                       ln_isf        = ', ln_isf 
    156158         WRITE(numout,*) '         nb of iterations if land-sea-mask applied  nn_lsm        = ', nn_lsm 
    157159         WRITE(numout,*) '         surface wave                               ln_wave       = ', ln_wave 
     
    225227      CASE( 1 )                        !- Ice-cover climatology ("Ice-if" model)   
    226228      CASE( 2 )                        !- SI3  ice model 
     229         IF( .NOT.( ln_blk .OR. ln_cpl .OR. ln_abl .OR. ln_usr ) )   & 
     230            &                   CALL ctl_stop( 'sbc_init : SI3 sea-ice model requires ln_blk or ln_cpl or ln_abl or ln_usr = T' ) 
    227231      CASE( 3 )                        !- CICE ice model 
    228          IF( .NOT.( ln_blk .OR. ln_cpl ) )   CALL ctl_stop( 'sbc_init : CICE sea-ice model requires ln_blk or ln_cpl = T' ) 
    229          IF( lk_agrif                    )   CALL ctl_stop( 'sbc_init : CICE sea-ice model not currently available with AGRIF' )  
     232         IF( .NOT.( ln_blk .OR. ln_cpl .OR. ln_abl .OR. ln_usr ) )   & 
     233            &                   CALL ctl_stop( 'sbc_init : CICE sea-ice model requires ln_blk or ln_cpl or ln_abl or ln_usr = T' ) 
     234         IF( lk_agrif                                )   & 
     235            &                   CALL ctl_stop( 'sbc_init : CICE sea-ice model not currently available with AGRIF' )  
    230236      CASE DEFAULT                     !- not supported 
    231237      END SELECT 
     238      IF( ln_diurnal .AND. .NOT. ln_blk  )   CALL ctl_stop( "sbc_init: diurnal flux processing only implemented for bulk forcing" ) 
    232239      ! 
    233240      !                       !**  allocate and set required variables 
     
    239246#endif 
    240247      ! 
    241       IF( .NOT.ln_isf ) THEN        !* No ice-shelf in the domain : allocate and set to zero 
    242          IF( sbc_isf_alloc() /= 0 )   CALL ctl_stop( 'STOP', 'sbc_init : unable to allocate sbc_isf arrays' ) 
    243          fwfisf  (:,:)   = 0._wp   ;   risf_tsc  (:,:,:) = 0._wp 
    244          fwfisf_b(:,:)   = 0._wp   ;   risf_tsc_b(:,:,:) = 0._wp 
    245       END IF 
    246248      ! 
    247249      IF( sbc_ssr_alloc() /= 0 )   CALL ctl_stop( 'STOP', 'sbc_init : unable to allocate sbc_ssr arrays' ) 
     
    262264 
    263265      !                          ! Choice of the Surface Boudary Condition (set nsbc) 
     266      nday_qsr = -1   ! allow initialization at the 1st call !LB: now warm-layer of COARE* calls "sbc_dcy_param" of sbcdcy.F90! 
    264267      IF( ln_dm2dc ) THEN           !* daily mean to diurnal cycle 
    265          nday_qsr = -1   ! allow initialization at the 1st call 
    266          IF( .NOT.( ln_flx .OR. ln_blk ) .AND. nn_components /= jp_iam_opa )   & 
    267             &   CALL ctl_stop( 'qsr diurnal cycle from daily values requires a flux or bulk formulation' ) 
     268         !LB:nday_qsr = -1   ! allow initialization at the 1st call 
     269         IF( .NOT.( ln_flx .OR. ln_blk .OR. ln_abl ) .AND. nn_components /= jp_iam_opa )   & 
     270            &   CALL ctl_stop( 'qsr diurnal cycle from daily values requires flux, bulk or abl formulation' ) 
    268271      ENDIF 
    269272      !                             !* Choice of the Surface Boudary Condition 
     
    278281      IF( ln_flx          ) THEN   ;   nsbc = jp_flx     ; icpt = icpt + 1   ;   ENDIF       ! flux                 formulation 
    279282      IF( ln_blk          ) THEN   ;   nsbc = jp_blk     ; icpt = icpt + 1   ;   ENDIF       ! bulk                 formulation 
     283      IF( ln_abl          ) THEN   ;   nsbc = jp_abl     ; icpt = icpt + 1   ;   ENDIF       ! ABL                  formulation 
    280284      IF( ll_purecpl      ) THEN   ;   nsbc = jp_purecpl ; icpt = icpt + 1   ;   ENDIF       ! Pure Coupled         formulation 
    281285      IF( ll_opa          ) THEN   ;   nsbc = jp_none    ; icpt = icpt + 1   ;   ENDIF       ! opa coupling via SAS module 
     
    289293         CASE( jp_flx     )   ;   WRITE(numout,*) '   ==>>>   flux formulation' 
    290294         CASE( jp_blk     )   ;   WRITE(numout,*) '   ==>>>   bulk formulation' 
     295         CASE( jp_abl     )   ;   WRITE(numout,*) '   ==>>>   ABL  formulation' 
    291296         CASE( jp_purecpl )   ;   WRITE(numout,*) '   ==>>>   pure coupled formulation' 
    292297!!gm abusive use of jp_none ??   ===>>> need to be check and changed by adding a jp_sas parameter 
     
    335340      !                       !**  associated modules : initialization 
    336341      ! 
    337                           CALL sbc_ssm_init            ! Sea-surface mean fields initialization 
     342                          CALL sbc_ssm_init ( Kbb, Kmm ) ! Sea-surface mean fields initialization 
     343      ! 
     344      IF( l_sbc_clo   )   CALL sbc_clo_init              ! closed sea surface initialisation 
    338345      ! 
    339346      IF( ln_blk      )   CALL sbc_blk_init            ! bulk formulae initialization 
    340347 
     348      IF( ln_abl      )   CALL sbc_abl_init            ! Atmospheric Boundary Layer (ABL) 
     349 
    341350      IF( ln_ssr      )   CALL sbc_ssr_init            ! Sea-Surface Restoring initialization 
    342351      ! 
    343       IF( ln_isf      )   CALL sbc_isf_init            ! Compute iceshelves 
    344       ! 
    345                           CALL sbc_rnf_init            ! Runof initialization 
    346       ! 
    347       IF( ln_apr_dyn )    CALL sbc_apr_init            ! Atmo Pressure Forcing initialization 
     352      ! 
     353                          CALL sbc_rnf_init( Kmm )       ! Runof initialization 
     354      ! 
     355      IF( ln_apr_dyn )    CALL sbc_apr_init              ! Atmo Pressure Forcing initialization 
    348356      ! 
    349357#if defined key_si3 
     
    351359                          IF( sbc_ice_alloc() /= 0 )   CALL ctl_stop('STOP', 'sbc_ice_alloc : unable to allocate arrays' ) 
    352360      ELSEIF( nn_ice == 2 ) THEN 
    353                           CALL ice_init                ! ICE initialization 
     361                          CALL ice_init( Kbb, Kmm, Kaa )         ! ICE initialization 
    354362      ENDIF 
    355363#endif 
    356       IF( nn_ice == 3 )   CALL cice_sbc_init( nsbc )   ! CICE initialization 
    357       ! 
    358       IF( ln_wave     )   CALL sbc_wave_init           ! surface wave initialisation 
     364      IF( nn_ice == 3 )   CALL cice_sbc_init( nsbc, Kbb, Kmm )   ! CICE initialization 
     365      ! 
     366      IF( ln_wave     )   CALL sbc_wave_init                     ! surface wave initialisation 
    359367      ! 
    360368      IF( lwxios ) THEN 
     
    371379 
    372380 
    373    SUBROUTINE sbc( kt ) 
     381   SUBROUTINE sbc( kt, Kbb, Kmm ) 
    374382      !!--------------------------------------------------------------------- 
    375383      !!                    ***  ROUTINE sbc  *** 
     
    388396      !!---------------------------------------------------------------------- 
    389397      INTEGER, INTENT(in) ::   kt   ! ocean time step 
     398      INTEGER, INTENT(in) ::   Kbb, Kmm   ! ocean time level indices 
    390399      ! 
    391400      LOGICAL ::   ll_sas, ll_opa   ! local logical 
     
    406415         emp_b (:,:) = emp (:,:) 
    407416         sfx_b (:,:) = sfx (:,:) 
    408          IF ( ln_rnf ) THEN 
     417         IF( ln_rnf ) THEN 
    409418            rnf_b    (:,:  ) = rnf    (:,:  ) 
    410419            rnf_tsc_b(:,:,:) = rnf_tsc(:,:,:) 
    411420         ENDIF 
    412          IF( ln_isf )  THEN 
    413             fwfisf_b  (:,:  ) = fwfisf  (:,:  )                
    414             risf_tsc_b(:,:,:) = risf_tsc(:,:,:)               
    415          ENDIF 
    416421        ! 
    417422      ENDIF 
     
    423428      ll_opa = nn_components == jp_iam_opa 
    424429      ! 
    425       IF( .NOT.ll_sas )   CALL sbc_ssm ( kt )            ! mean ocean sea surface variables (sst_m, sss_m, ssu_m, ssv_m) 
    426       IF( ln_wave     )   CALL sbc_wave( kt )            ! surface waves 
     430      IF( .NOT.ll_sas )   CALL sbc_ssm ( kt, Kbb, Kmm )  ! mean ocean sea surface variables (sst_m, sss_m, ssu_m, ssv_m) 
     431      IF( ln_wave     )   CALL sbc_wave( kt, Kmm )       ! surface waves 
    427432 
    428433      ! 
     
    431436      SELECT CASE( nsbc )                                ! Compute ocean surface boundary condition 
    432437      !                                                  ! (i.e. utau,vtau, qns, qsr, emp, sfx) 
    433       CASE( jp_usr   )     ;   CALL usrdef_sbc_oce( kt )                    ! user defined formulation  
    434       CASE( jp_flx     )   ;   CALL sbc_flx       ( kt )                    ! flux formulation 
     438      CASE( jp_usr   )     ;   CALL usrdef_sbc_oce( kt, Kbb )                        ! user defined formulation  
     439      CASE( jp_flx     )   ;   CALL sbc_flx       ( kt )                             ! flux formulation 
    435440      CASE( jp_blk     ) 
    436          IF( ll_sas    )       CALL sbc_cpl_rcv   ( kt, nn_fsbc, nn_ice )   ! OPA-SAS coupling: SAS receiving fields from OPA 
     441         IF( ll_sas    )       CALL sbc_cpl_rcv   ( kt, nn_fsbc, nn_ice, Kbb, Kmm )   ! OPA-SAS coupling: SAS receiving fields from OPA 
    437442                               CALL sbc_blk       ( kt )                    ! bulk formulation for the ocean 
    438443                               ! 
    439       CASE( jp_purecpl )   ;   CALL sbc_cpl_rcv   ( kt, nn_fsbc, nn_ice )   ! pure coupled formulation 
     444      CASE( jp_abl     ) 
     445         IF( ll_sas    )       CALL sbc_cpl_rcv   ( kt, nn_fsbc, nn_ice, Kbb, Kmm )   ! OPA-SAS coupling: SAS receiving fields from OPA 
     446                               CALL sbc_abl       ( kt )                    ! ABL  formulation for the ocean 
     447                               ! 
     448      CASE( jp_purecpl )   ;   CALL sbc_cpl_rcv   ( kt, nn_fsbc, nn_ice, Kbb, Kmm )   ! pure coupled formulation 
    440449      CASE( jp_none    ) 
    441          IF( ll_opa    )       CALL sbc_cpl_rcv   ( kt, nn_fsbc, nn_ice )   ! OPA-SAS coupling: OPA receiving fields from SAS 
     450         IF( ll_opa    )       CALL sbc_cpl_rcv   ( kt, nn_fsbc, nn_ice, Kbb, Kmm )  ! OPA-SAS coupling: OPA receiving fields from SAS 
    442451      END SELECT 
    443452      ! 
    444       IF( ln_mixcpl )          CALL sbc_cpl_rcv   ( kt, nn_fsbc, nn_ice )   ! forced-coupled mixed formulation after forcing 
    445       ! 
    446       IF ( ln_wave .AND. (ln_tauwoc .OR. ln_tauw) ) CALL sbc_wstress( )      ! Wind stress provided by waves  
     453      IF( ln_mixcpl )          CALL sbc_cpl_rcv   ( kt, nn_fsbc, nn_ice, Kbb, Kmm )  ! forced-coupled mixed formulation after forcing 
     454      ! 
     455      IF ( ln_wave .AND. (ln_tauwoc .OR. ln_tauw) ) CALL sbc_wstress( )              ! Wind stress provided by waves  
    447456      ! 
    448457      !                                            !==  Misc. Options  ==! 
    449458      ! 
    450459      SELECT CASE( nn_ice )                                       ! Update heat and freshwater fluxes over sea-ice areas 
    451       CASE(  1 )   ;         CALL sbc_ice_if   ( kt )             ! Ice-cover climatology ("Ice-if" model) 
     460      CASE(  1 )   ;         CALL sbc_ice_if   ( kt, Kbb, Kmm )   ! Ice-cover climatology ("Ice-if" model) 
    452461#if defined key_si3 
    453       CASE(  2 )   ;         CALL ice_stp  ( kt, nsbc )          ! SI3 ice model 
     462      CASE(  2 )   ;         CALL ice_stp  ( kt, Kbb, Kmm, nsbc ) ! SI3 ice model 
    454463#endif 
    455464      CASE(  3 )   ;         CALL sbc_ice_cice ( kt, nsbc )       ! CICE ice model 
     
    458467      IF( ln_icebergs    )   THEN 
    459468                                     CALL icb_stp( kt )           ! compute icebergs 
    460          ! icebergs may advect into haloes during the icb step and alter emp. 
    461          ! A lbc_lnk is necessary here to ensure restartability (#2113) 
     469         ! Icebergs do not melt over the haloes.  
     470         ! So emp values over the haloes are no more consistent with the inner domain values.  
     471         ! A lbc_lnk is therefore needed to ensure reproducibility and restartability. 
     472         ! see ticket #2113 for discussion about this lbc_lnk. 
    462473         IF( .NOT. ln_passive_mode ) CALL lbc_lnk( 'sbcmod', emp, 'T', 1. ) ! ensure restartability with icebergs 
    463474      ENDIF 
    464475 
    465       IF( ln_isf         )   CALL sbc_isf( kt )                   ! compute iceshelves 
    466  
    467476      IF( ln_rnf         )   CALL sbc_rnf( kt )                   ! add runoffs to fresh water fluxes 
    468477 
    469       IF( ln_ssr         )   CALL sbc_ssr( kt )                   ! add SST/SSS damping term 
    470  
    471       IF( nn_fwb    /= 0 )   CALL sbc_fwb( kt, nn_fwb, nn_fsbc )  ! control the freshwater budget 
     478      IF( ln_ssr         )   CALL sbc_ssr( kt )                        ! add SST/SSS damping term 
     479 
     480      IF( nn_fwb    /= 0 )   CALL sbc_fwb( kt, nn_fwb, nn_fsbc, Kmm )  ! control the freshwater budget 
    472481 
    473482      ! Special treatment of freshwater fluxes over closed seas in the model domain 
    474483      ! Should not be run if ln_diurnal_only 
    475       IF( l_sbc_clo .AND. (.NOT. ln_diurnal_only) )   CALL sbc_clo( kt )    
     484      IF( l_sbc_clo     )   CALL sbc_clo( kt )    
    476485 
    477486!!$!RBbug do not understand why see ticket 667 
    478487!!$!clem: it looks like it is necessary for the north fold (in certain circumstances). Don't know why. 
    479488!!$      CALL lbc_lnk( 'sbcmod', emp, 'T', 1. ) 
    480       IF ( ll_wd ) THEN     ! If near WAD point limit the flux for now 
     489      IF( ll_wd ) THEN     ! If near WAD point limit the flux for now 
    481490         zthscl = atanh(rn_wd_sbcfra)                     ! taper frac default is .999  
    482          zwdht(:,:) = sshn(:,:) + ht_0(:,:) - rn_wdmin1   ! do this calc of water 
     491         zwdht(:,:) = ssh(:,:,Kmm) + ht_0(:,:) - rn_wdmin1   ! do this calc of water 
    483492                                                     ! depth above wd limit once 
    484493         WHERE( zwdht(:,:) <= 0.0 ) 
     
    510519            CALL iom_get( numror, jpdom_autoglo, 'utau_b', utau_b, ldxios = lrxios )   ! before i-stress  (U-point) 
    511520            CALL iom_get( numror, jpdom_autoglo, 'vtau_b', vtau_b, ldxios = lrxios )   ! before j-stress  (V-point) 
    512             CALL iom_get( numror, jpdom_autoglo, 'qns_b' , qns_b, ldxios = lrxios )   ! before non solar heat flux (T-point) 
     521            CALL iom_get( numror, jpdom_autoglo,  'qns_b',  qns_b, ldxios = lrxios )   ! before non solar heat flux (T-point) 
    513522            ! The 3D heat content due to qsr forcing is treated in traqsr 
    514523            ! CALL iom_get( numror, jpdom_autoglo, 'qsr_b' , qsr_b, ldxios = lrxios  ) ! before     solar heat flux (T-point) 
     
    567576      CALL iom_put( "vtau", vtau )   ! j-wind stress 
    568577      ! 
    569       IF(ln_ctl) THEN         ! print mean trends (used for debugging) 
    570          CALL prt_ctl(tab2d_1=fr_i              , clinfo1=' fr_i    - : ', mask1=tmask ) 
    571          CALL prt_ctl(tab2d_1=(emp-rnf + fwfisf), clinfo1=' emp-rnf - : ', mask1=tmask ) 
    572          CALL prt_ctl(tab2d_1=(sfx-rnf + fwfisf), clinfo1=' sfx-rnf - : ', mask1=tmask ) 
     578      IF(sn_cfctl%l_prtctl) THEN     ! print mean trends (used for debugging) 
     579         CALL prt_ctl(tab2d_1=fr_i             , clinfo1=' fr_i     - : ', mask1=tmask ) 
     580         CALL prt_ctl(tab2d_1=(emp-rnf)        , clinfo1=' emp-rnf - : ', mask1=tmask ) 
     581         CALL prt_ctl(tab2d_1=(sfx-rnf)        , clinfo1=' sfx-rnf - : ', mask1=tmask ) 
    573582         CALL prt_ctl(tab2d_1=qns              , clinfo1=' qns      - : ', mask1=tmask ) 
    574583         CALL prt_ctl(tab2d_1=qsr              , clinfo1=' qsr      - : ', mask1=tmask ) 
    575584         CALL prt_ctl(tab3d_1=tmask            , clinfo1=' tmask    - : ', mask1=tmask, kdim=jpk ) 
    576          CALL prt_ctl(tab3d_1=tsn(:,:,:,jp_tem), clinfo1=' sst      - : ', mask1=tmask, kdim=1   ) 
    577          CALL prt_ctl(tab3d_1=tsn(:,:,:,jp_sal), clinfo1=' sss      - : ', mask1=tmask, kdim=1   ) 
    578          CALL prt_ctl(tab2d_1=utau             , clinfo1=' utau     - : ', mask1=umask,                      & 
    579             &         tab2d_2=vtau             , clinfo2=' vtau     - : ', mask2=vmask ) 
     585         CALL prt_ctl(tab3d_1=ts(:,:,:,jp_tem,Kmm), clinfo1=' sst      - : ', mask1=tmask, kdim=1   ) 
     586         CALL prt_ctl(tab3d_1=ts(:,:,:,jp_sal,Kmm), clinfo1=' sss      - : ', mask1=tmask, kdim=1   ) 
     587         CALL prt_ctl(tab2d_1=utau                , clinfo1=' utau     - : ', mask1=umask,                      & 
     588            &         tab2d_2=vtau                , clinfo2=' vtau     - : ', mask2=vmask ) 
    580589      ENDIF 
    581590 
Note: See TracChangeset for help on using the changeset viewer.