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 2091 – NEMO

Changeset 2091


Ignore:
Timestamp:
2010-09-14T22:29:38+02:00 (14 years ago)
Author:
mlelod
Message:

ticket: #663 cosmetic changes

Location:
branches/DEV_r1837_MLF/NEMO/OPA_SRC
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • branches/DEV_r1837_MLF/NEMO/OPA_SRC/SBC/sbc_oce.F90

    r2068 r2091  
    5353   REAL(wp), PUBLIC, DIMENSION(jpi,jpj) ::   emp_tot           !: total E-P-R over ocean and ice               [Kg/m2/s] 
    5454   ! - ML - begin 
    55    REAL(wp), PUBLIC, DIMENSION(jpi,jpj) ::   sbc_trd_hc_n      !: sbc heat content trend now                   [K/m/s] 
    56    REAL(wp), PUBLIC, DIMENSION(jpi,jpj) ::   sbc_trd_hc_b      !:  "   "      "      "   before                   " 
    57    REAL(wp), PUBLIC, DIMENSION(jpi,jpj) ::   sbc_trd_sc_n      !: sbc salt content trend now                   [psu/m/s] 
    58    REAL(wp), PUBLIC, DIMENSION(jpi,jpj) ::   sbc_trd_sc_b      !:  "   "      "      "   before                   " 
    59    REAL(wp), PUBLIC, DIMENSION(jpi,jpj,jpk) ::   qsr_trd_hc_n  !: heat content trend due to qsr flux now       [K/m/s] 
    60    REAL(wp), PUBLIC, DIMENSION(jpi,jpj,jpk) ::   qsr_trd_hc_b  !:  "      "      "    "  "   "   "   before       " 
     55   REAL(wp), PUBLIC, DIMENSION(jpi,jpj) ::   sbc_hc_n          !: sbc heat content trend now                   [K/m/s] 
     56   REAL(wp), PUBLIC, DIMENSION(jpi,jpj) ::   sbc_hc_b          !:  "   "      "      "   before                   " 
     57   REAL(wp), PUBLIC, DIMENSION(jpi,jpj) ::   sbc_sc_n          !: sbc salt content trend now                   [psu/m/s] 
     58   REAL(wp), PUBLIC, DIMENSION(jpi,jpj) ::   sbc_sc_b          !:  "   "      "      "   before                   " 
     59   REAL(wp), PUBLIC, DIMENSION(jpi,jpj,jpk) ::   qsr_hc_n      !: heat content trend due to qsr flux now       [K/m/s] 
     60   REAL(wp), PUBLIC, DIMENSION(jpi,jpj,jpk) ::   qsr_hc_b      !:  "      "      "    "  "   "   "   before       " 
    6161   ! - ML - end 
    6262   REAL(wp), PUBLIC, DIMENSION(jpi,jpj) ::   tprecip           !: total precipitation                          [Kg/m2/s] 
  • branches/DEV_r1837_MLF/NEMO/OPA_SRC/SBC/sbcmod.F90

    r2068 r2091  
    198198         emp_b (:,:) = emp (:,:) 
    199199         emps_b(:,:) = emps(:,:) 
    200          ! - ML - 
    201          ! sbc_trd_hc_b(:,:) = sbc_trd_hc_n(:,:) 
    202          ! qsr_trd_hc_b(:,:,:) = qsr_trd_hc_n(:,:,:) 
    203          ! IF ( .NOT. lk_vvl )  sbc_trd_sc_b(:,:) = sbc_trd_sc_n(:,:) 
    204200          
    205201      ENDIF 
     
    266262            CALL iom_get( numror, jpdom_autoglo, 'emp_b' , emp_b  )   ! before     freshwater flux (T-point) 
    267263            CALL iom_get( numror, jpdom_autoglo, 'emps_b', emps_b )   ! before C/D freshwater flux (T-point) 
    268             ! - ML - 
    269             ! CALL iom_get( numror, jpdom_autoglo, 'sbc_trd_hc_b', sbc_trd_hc_b )   ! before heat content sbc trend 
    270             ! CALL iom_get( numror, jpdom_autoglo, 'qsr_trd_hc_b', qsr_trd_hc_b )   ! before heat content trend due to Qsr flux 
    271             ! IF ( .NOT. lk_vvl ) THEN 
    272             !    CALL iom_get( numror, jpdom_autoglo, 'sbc_trd_sc_b', sbc_trd_sc_b )   ! before salt content sbc trend 
    273             ! ENDIF 
    274             ! 
    275264         ELSE                                                   !* no restart: set from nit000 values 
    276265            IF(lwp) WRITE(numout,*) '          nit000-1 surface forcing fields set to nit000' 
     
    291280            &                    'at it= ', kt,' date= ', ndastp 
    292281         IF(lwp) WRITE(numout,*) '~~~~' 
    293          CALL iom_rstput( kt, nitrst, numrow, 'utau_b' , utau )    !  
     282         CALL iom_rstput( kt, nitrst, numrow, 'utau_b' , utau ) 
    294283         CALL iom_rstput( kt, nitrst, numrow, 'vtau_b' , vtau ) 
    295284         CALL iom_rstput( kt, nitrst, numrow, 'qns_b'  , qns  ) 
     
    297286         CALL iom_rstput( kt, nitrst, numrow, 'emp_b'  , emp  ) 
    298287         CALL iom_rstput( kt, nitrst, numrow, 'emps_b' , emps ) 
    299          ! - ML - 
    300          ! CALL iom_rstput( kt, nitrst, numrow, 'sbc_trd_hc_b', sbc_trd_hc_n ) 
    301          ! CALL iom_rstput( kt, nitrst, numrow, 'qsr_trd_hc_b', qsr_trd_hc_n ) 
    302          ! IF ( .NOT. lk_vvl ) THEN 
    303          !    CALL iom_rstput( kt, nitrst, numrow, 'sbc_trd_sc_b', sbc_trd_sc_n ) 
    304          ! ENDIF 
    305          ! 
    306288      ENDIF 
    307289 
  • branches/DEV_r1837_MLF/NEMO/OPA_SRC/TRA/tranxt.F90

    r2068 r2091  
    298298                  !                                         ! Filter correction 
    299299                  IF( jk == 1 ) THEN 
    300                      ! WRITE(numout,*) 'filter correction: sbc_trd_hc_n' 
    301                      ze3t_f = ze3t_f - zfact2 * ( emp_b       (ji,jj) - emp         (ji,jj) ) 
    302                      ztc_f  = ztc_f  - zfact1 * ( sbc_trd_hc_n(ji,jj) - sbc_trd_hc_b(ji,jj) ) 
     300                     ze3t_f = ze3t_f - zfact2 * ( emp_b   (ji,jj) - emp     (ji,jj) ) 
     301                     ztc_f  = ztc_f  - zfact1 * ( sbc_hc_n(ji,jj) - sbc_hc_b(ji,jj) ) 
     302                     zsc_f  = zsc_f  - zfact1 * ( sbc_sc_n(ji,jj) - sbc_sc_b(ji,jj) ) 
    303303                  ENDIF 
    304304                  IF( ln_traqsr .AND. ( jk .LE. nksr ) ) THEN 
    305                      ! WRITE(numout,*) 'jk =', jk 
    306                      ! WRITE(numout,*) 'filter correction: qsr_trd_hc_n' 
    307                      ztc_f  = ztc_f  - zfact1 * ( qsr_trd_hc_n(ji,jj,jk) - qsr_trd_hc_b(ji,jj,jk) ) 
     305                     ztc_f  = ztc_f  - zfact1 * ( qsr_hc_n(ji,jj,jk) - qsr_hc_b(ji,jj,jk) ) 
    308306                  ENDIF 
    309307                                                          ! swap of arrays 
  • branches/DEV_r1837_MLF/NEMO/OPA_SRC/TRA/traqsr.F90

    r2068 r2091  
    2222   USE trc_oce         ! share SMS/Ocean variables 
    2323   USE trdmod_oce      ! ocean variables trends 
    24    USE trdmod          ! ocean active tracers trends  
     24   USE trdmod          ! ocean active tracers trends 
     25   USE iom 
    2526   USE in_out_manager  ! I/O manager 
    2627   USE phycst          ! physical constants 
     
    2829   USE iom             ! I/O manager 
    2930   USE fldread         ! read input fields 
     31   USE restart         ! ocean restart 
    3032 
    3133   IMPLICIT NONE 
     
    9799      REAL(wp) ::   zchl, zcoef, zsi0r   ! temporary scalars 
    98100      REAL(wp) ::   zc0, zc1, zc2, zc3   !    -         - 
     101      REAL(wp) ::   z1_e3t, zfact        !    -         - 
    99102      REAL(wp), DIMENSION(jpi,jpj)     ::   zekb, zekg, zekr            ! 2D workspace 
    100103      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   ze0, ze1 , ze2, ze3, zea    ! 3D workspace 
     
    113116         ztrds(:,:,:) = 0.e0 
    114117      ENDIF 
    115  
    116       !                                           ! ---------------------------------------- ! 
    117       !                                           !          Swap of forcing field           ! 
    118       !                                           ! ---------------------------------------- ! 
    119       IF( kt /= nit000 ) qsr_trd_hc_b(:,:,:) = qsr_trd_hc_n(:,:,:) 
    120       !                                           ! ---------------------------------------- ! 
    121       IF( kt == nit000 ) THEN                     !   set the forcing field at nit000 - 1    ! 
    122          !                                        ! ---------------------------------------- ! 
    123          IF( ln_rstart .AND.    &                               !* Restart: read in restart file 
    124             & iom_varid( numror, 'qsr_trd_hc_b', ldstop = .FALSE. ) > 0 ) THEN  
    125             IF(lwp) WRITE(numout,*) '          nit000-1 surface forcing fields red in the restart file' 
    126             CALL iom_get( numror, jpdom_autoglo, 'qsr_trd_hc_b', qsr_trd_hc_b )   ! before heat content trend due to Qsr flux 
    127          ENDIF 
    128       ENDIF 
    129  
    130        
     118      !                                        Set before qsr tracer content field 
     119      !                                        *********************************** 
     120      IF( kt == nit000 ) THEN                     ! Set the forcing field at nit000 - 1 
     121         !                                        ! ----------------------------------- 
     122         IF( ln_rstart .AND.    &                    ! Restart: read in restart file 
     123              & iom_varid( numror, 'qsr_hc_b', ldstop = .FALSE. ) > 0 ) THEN  
     124            IF(lwp) WRITE(numout,*) '          nit000-1 qsr tracer content forcing field red in the restart file' 
     125            zfact = 0.5e0 
     126            CALL iom_get( numror, jpdom_autoglo, 'qsr_hc_b', qsr_hc_b )   ! before heat content trend due to Qsr flux 
     127         ELSE                                           ! No restart or restart not found: Euler forward time stepping 
     128            zfact = 1.e0 
     129            qsr_hc_b(:,:,:) = 0.e0 
     130         ENDIF 
     131      ELSE                                        ! Swap of forcing field 
     132         !                                        ! --------------------- 
     133         zfact = 0.5e0 
     134         qsr_hc_b(:,:,:) = qsr_hc_n(:,:,:) 
     135      ENDIF 
     136      !                                        Compute now qsr tracer content field 
     137      !                                        ************************************ 
    131138      !                                           ! ============================================== ! 
    132139      IF( lk_qsr_bio .AND. ln_qsr_bio ) THEN      !  bio-model fluxes  : all vertical coordinates  ! 
     
    136143               DO ji = fs_2, fs_jpim1   ! vector opt. 
    137144!!gm  how to stecify the mean of time step here : TOP versus OPA time stepping strategy not obvious 
    138                   qsr_trd_hc_n(ji,jj,jk) = ro0cpr * ( etot3(ji,jj,jk) - etot3(ji,jj,jk+1) ) 
     145                  qsr_hc_n(ji,jj,jk) = ro0cpr * ( etot3(ji,jj,jk) - etot3(ji,jj,jk+1) ) 
    139146               END DO 
    140147            END DO 
     
    195202               ! 
    196203               DO jk = 1, nksr                                       ! compute and add qsr trend to ta 
    197                   qsr_trd_hc_n(:,:,jk) = ro0cpr * ( zea(:,:,jk) - zea(:,:,jk+1) ) 
     204                  qsr_hc_n(:,:,jk) = ro0cpr * ( zea(:,:,jk) - zea(:,:,jk+1) ) 
    198205               END DO 
    199206               zea(:,:,nksr+1:jpk) = 0.e0     ! below 400m set to zero 
     
    202209            ELSE                                                 !*  Constant Chlorophyll 
    203210               DO jk = 1, nksr 
    204                   qsr_trd_hc_n(:,:,jk) = etot3(:,:,jk) * qsr(:,:) 
     211                  qsr_hc_n(:,:,jk) = etot3(:,:,jk) * qsr(:,:) 
    205212               END DO 
    206213            ENDIF 
     
    213220               DO jj = 2, jpjm1 
    214221                  DO ji = fs_2, fs_jpim1   ! vector opt. 
    215                      qsr_trd_hc_n(ji,jj,jk) = etot3(ji,jj,jk) * qsr(ji,jj) 
     222                     qsr_hc_n(ji,jj,jk) = etot3(ji,jj,jk) * qsr(ji,jj) 
    216223                  END DO 
    217224               END DO 
     
    221228         ! 
    222229      ENDIF 
    223  
    224       ! Add qsr trend to ta in all cases 
    225       IF( neuler == 0 .AND. kt == nit000 ) THEN 
    226          DO jk = 1, nksr 
    227             DO jj = 2, jpjm1 
    228                DO ji = fs_2, fs_jpim1   ! vector opt. 
    229                   ta(ji,jj,jk) = ta(ji,jj,jk) + qsr_trd_hc_n(ji,jj,jk) / fse3t(ji,jj,jk) 
    230                END DO 
     230      !                                        Add to the general trend 
     231      !                                        ************************ 
     232      DO jk = 1, nksr 
     233         DO jj = 2, jpjm1 
     234            DO ji = fs_2, fs_jpim1   ! vector opt. 
     235               z1_e3t = zfact / fse3t(ji,jj,jk) 
     236               ta(ji,jj,jk) = ta(ji,jj,jk) + ( qsr_hc_b(ji,jj,jk) + qsr_hc_n(ji,jj,jk) ) * z1_e3t 
    231237            END DO 
    232238         END DO 
    233       ELSE 
    234          DO jk = 1, nksr 
    235             DO jj = 2, jpjm1 
    236                DO ji = fs_2, fs_jpim1   ! vector opt. 
    237                   ta(ji,jj,jk) = ta(ji,jj,jk) + 0.5 * ( qsr_trd_hc_b(ji,jj,jk) + qsr_trd_hc_n(ji,jj,jk) ) / fse3t(ji,jj,jk) 
    238                END DO 
    239             END DO 
    240          END DO 
    241       ENDIF 
    242  
    243       !                                            ! ---------------------------------------- ! 
    244       IF( lrst_oce ) THEN                          !      Write in the ocean restart file     ! 
    245          !                                         ! ---------------------------------------- ! 
     239      END DO 
     240      ! 
     241      IF( lrst_oce ) THEN   !                  Write in the ocean restart file 
     242         !                                     ******************************* 
    246243         IF(lwp) WRITE(numout,*) 
    247          IF(lwp) WRITE(numout,*) 'qsr : penetrative solar radiation forcing field written in ocean restart file ',   & 
     244         IF(lwp) WRITE(numout,*) 'qsr tracer content forcing field written in ocean restart file ',   & 
    248245            &                    'at it= ', kt,' date= ', ndastp 
    249246         IF(lwp) WRITE(numout,*) '~~~~' 
    250          CALL iom_rstput( kt, nitrst, numrow, 'qsr_trd_hc_b', qsr_trd_hc_n ) 
     247         CALL iom_rstput( kt, nitrst, numrow, 'qsr_hc_b', qsr_hc_n ) 
    251248         ! 
    252249      ENDIF 
  • branches/DEV_r1837_MLF/NEMO/OPA_SRC/TRA/trasbc.F90

    r2068 r2091  
    106106      INTEGER, INTENT(in) ::   kt     ! ocean time-step index 
    107107      !! 
    108       INTEGER  ::   ji, jj            ! dummy loop indices 
    109       REAL(wp) ::   zsrau, zse3t      ! temporary scalars 
     108      INTEGER  ::   ji, jj                ! dummy loop indices 
     109      REAL(wp) ::   zsrau, z1_e3t, zfact  ! temporary scalars 
    110110      !!---------------------------------------------------------------------- 
    111111 
     
    117117 
    118118      zsrau = 1. / rau0             ! initialization 
    119 #if defined key_zco 
    120       zse3t = 1. / e3t_0(1) 
    121 #endif 
    122119 
    123120      IF( l_trdtra ) THEN           ! Save ta and sa trends 
     
    134131         ENDIF 
    135132      ENDIF 
    136       !                                            ! ---------------------------------------- ! 
    137       IF( kt /= nit000 ) THEN                      !          Swap of forcing fields          ! 
    138          !                                         ! ---------------------------------------- ! 
    139          sbc_trd_hc_b(:,:) = sbc_trd_hc_n(:,:)                         ! Swap the ocean forcing fields except at nit000 
    140          IF ( .NOT. lk_vvl ) sbc_trd_sc_b(:,:)   = sbc_trd_sc_n(:,:) 
    141       ENDIF 
    142       !                                            ! ---------------------------------------- ! 
    143       IF( kt == nit000 ) THEN                      !   set the forcing field at nit000 - 1    ! 
    144          !                                         ! ---------------------------------------- ! 
    145          IF( ln_rstart .AND.    &                               !* Restart: read in restart file 
    146             & iom_varid( numror, 'sbc_trd_hc_b', ldstop = .FALSE. ) > 0 ) THEN  
    147             IF(lwp) WRITE(numout,*) '          nit000-1 surface forcing fields red in the restart file' 
    148             CALL iom_get( numror, jpdom_autoglo, 'sbc_trd_hc_b', sbc_trd_hc_b )   ! before heat content sbc trend 
    149             CALL iom_get( numror, jpdom_autoglo, 'qsr_trd_hc_b', qsr_trd_hc_b )   ! before heat content trend due to Qsr flux 
    150             IF ( .NOT. lk_vvl ) THEN 
    151                CALL iom_get( numror, jpdom_autoglo, 'sbc_trd_sc_b', sbc_trd_sc_b )   ! before salt content sbc trend 
    152             ENDIF 
     133      !                                          Set before sbc tracer content fields 
     134      !                                          ************************************ 
     135      IF( kt == nit000 ) THEN                      ! Set the forcing field at nit000 - 1 
     136         !                                         ! ----------------------------------- 
     137         IF( ln_rstart .AND.    &                     ! Restart: read in restart file 
     138              & iom_varid( numror, 'sbc_hc_b', ldstop = .FALSE. ) > 0 ) THEN  
     139            IF(lwp) WRITE(numout,*) '          nit000-1 surface tracer content forcing fields red in the restart file' 
     140            zfact = 0.5e0 
     141            CALL iom_get( numror, jpdom_autoglo, 'sbc_hc_b', sbc_hc_b )   ! before heat content sbc trend 
     142            CALL iom_get( numror, jpdom_autoglo, 'sbc_sc_b', sbc_sc_b )   ! before salt content sbc trend 
     143         ELSE                                         ! No restart or restart not found: Euler forward time stepping 
     144            zfact = 1.e0 
     145            sbc_hc_b(:,:) = 0.e0 
     146            sbc_sc_b(:,:) = 0.e0 
    153147         ENDIF 
    154       ENDIF 
    155       !                                            ! ---------------------- ! 
    156       IF( lk_vvl ) THEN                            !  Variable Volume case  ! 
    157          !                                         ! ---------------------- ! 
    158 !!gm BUG : in key_vvl emps must be modified to only include the salt flux due to sea-ice freezing/melting 
    159 !!gm       otherwise this flux will be missing  ==> modification required in limsbc,  limsbc_2 and CICE interface.s 
    160          IF ( neuler == 0 .AND. kt == nit000 ) THEN 
    161             DO jj = 2, jpj 
    162                DO ji = fs_2, fs_jpim1   ! vector opt. 
    163                   ! temperature : heat flux + cooling/heating effet of EMP flux 
    164                   sbc_trd_hc_n(ji,jj) = ro0cpr * qns(ji,jj) - zsrau * emp(ji,jj) * tn(ji,jj,1) 
    165 #if ! defined key_zco 
    166                   zse3t = 1. / fse3t(ji,jj,1) 
    167 #endif 
    168                   ta(ji,jj,1) = ta(ji,jj,1) + zse3t * sbc_trd_hc_n(ji,jj) 
    169                 END DO 
     148      ELSE                                         ! Swap of forcing fields 
     149         !                                         ! ---------------------- 
     150         zfact = 0.5e0 
     151         sbc_hc_b(:,:) = sbc_hc_n(:,:) 
     152         sbc_sc_b(:,:) = sbc_sc_n(:,:) 
     153      ENDIF 
     154      !                                          Compute now sbc tracer content fields 
     155      !                                          ************************************* 
     156      IF( lk_vvl ) THEN                            ! Variable Volume case 
     157         !                                         ! -------------------- 
     158         DO jj = 2, jpj 
     159            DO ji = fs_2, fs_jpim1   ! vector opt. 
     160               ! temperature : heat flux + cooling/heating effet of EMP flux 
     161               sbc_hc_n(ji,jj) = ro0cpr * qns(ji,jj) - zsrau * emp(ji,jj) * tn(ji,jj,1) 
     162               ! concent./dilut. effect due to sea-ice melt/formation and (possibly) SSS restoration 
     163               sbc_sc_n(ji,jj) = ( emps(ji,jj) - emp(ji,jj) ) * zsrau * sn(ji,jj,1) 
    170164            END DO 
    171          ELSE 
    172             DO jj = 2, jpj 
    173                DO ji = fs_2, fs_jpim1   ! vector opt. 
    174                   ! temperature : heat flux + cooling/heating effet of EMP flux 
    175                   sbc_trd_hc_n(ji,jj) = ro0cpr * qns(ji,jj) - zsrau * emp(ji,jj) * tn(ji,jj,1) 
    176 #if ! defined key_zco 
    177                   zse3t = 1. / fse3t(ji,jj,1) 
    178 #endif 
    179                   ta(ji,jj,1) = ta(ji,jj,1) + 0.5 * ( sbc_trd_hc_b(ji,jj) + sbc_trd_hc_n(ji,jj) ) * zse3t 
    180                END DO 
     165         END DO 
     166      ELSE                                         ! Constant Volume case 
     167         !                                         ! -------------------- 
     168         DO jj = 2, jpj 
     169            DO ji = fs_2, fs_jpim1   ! vector opt. 
     170               ! temperature : heat flux 
     171               sbc_hc_n(ji,jj) = ro0cpr * qns(ji,jj) 
     172               ! salinity    : salt flux + concent./dilut. effect (both in emps) 
     173               sbc_sc_n(ji,jj) = zsrau * emps(ji,jj) * sn(ji,jj,1) 
    181174            END DO 
    182          ENDIF 
    183          !                                         ! ---------------------- ! 
    184       ELSE                                         !  Constant Volume case  ! 
    185          !                                         ! ---------------------- ! 
    186          IF ( neuler == 0 .AND. kt == nit000 ) THEN 
    187             DO jj = 2, jpj 
    188                DO ji = fs_2, fs_jpim1   ! vector opt. 
    189                   ! temperature : heat flux 
    190                   sbc_trd_hc_n(ji,jj) = ro0cpr * qns(ji,jj) 
    191                   ! salinity    : salt flux + concent./dilut. effect (both in emps) 
    192                   sbc_trd_sc_n(ji,jj) = zsrau * emps(ji,jj) * sn(ji,jj,1) 
    193 #if ! defined key_zco 
    194                   zse3t = 1. / fse3t(ji,jj,1) 
    195 #endif 
    196                   ta(ji,jj,1) = ta(ji,jj,1) + sbc_trd_hc_n(ji,jj) * zse3t 
    197                   sa(ji,jj,1) = sa(ji,jj,1) + sbc_trd_sc_n(ji,jj) * zse3t 
    198                END DO 
    199             END DO 
    200          ELSE 
    201             DO jj = 2, jpj 
    202                DO ji = fs_2, fs_jpim1   ! vector opt. 
    203                   ! temperature : heat flux 
    204                   sbc_trd_hc_n(ji,jj) = ro0cpr * qns(ji,jj) 
    205                   ! salinity    : salt flux + concent./dilut. effect (both in emps) 
    206                   sbc_trd_sc_n(ji,jj) = zsrau * emps(ji,jj) * sn(ji,jj,1) 
    207 #if ! defined key_zco 
    208                   zse3t = 1. / fse3t(ji,jj,1) 
    209 #endif 
    210                   ! temperature : heat flux 
    211                   ta(ji,jj,1) = ta(ji,jj,1) + 0.5 * ( sbc_trd_hc_b(ji,jj) + sbc_trd_hc_n(ji,jj) ) * zse3t  
    212                   sa(ji,jj,1) = sa(ji,jj,1) + 0.5 * ( sbc_trd_sc_b(ji,jj) + sbc_trd_sc_n(ji,jj) ) * zse3t 
    213                END DO 
    214             END DO 
    215          ENDIF 
    216          ! 
    217       ENDIF 
    218  
    219       !                                            ! ---------------------------------------- ! 
    220       IF( lrst_oce ) THEN                          !      Write in the ocean restart file     ! 
    221          !                                         ! ---------------------------------------- ! 
    222          IF(lwp) WRITE(numout,*) 
    223          IF(lwp) WRITE(numout,*) 'sbc : ocean surface forcing fields written in ocean restart file ',   & 
    224             &                    'at it= ', kt,' date= ', ndastp 
    225          IF(lwp) WRITE(numout,*) '~~~~' 
    226          CALL iom_rstput( kt, nitrst, numrow, 'sbc_trd_hc_b', sbc_trd_hc_n ) 
    227          IF ( .NOT. lk_vvl ) CALL iom_rstput( kt, nitrst, numrow, 'sbc_trd_sc_b', sbc_trd_sc_n ) 
    228          ! 
    229       ENDIF 
    230  
     175         END DO 
     176      ENDIF 
     177      !                                          Add to the general trend 
     178      !                                          ************************ 
     179      DO jj = 2, jpj 
     180         DO ji = fs_2, fs_jpim1   ! vector opt. 
     181            z1_e3t = zfact / fse3t(ji,jj,1) 
     182            ta(ji,jj,1) = ta(ji,jj,1) + ( sbc_hc_b(ji,jj) + sbc_hc_n(ji,jj) ) * z1_e3t 
     183            sa(ji,jj,1) = sa(ji,jj,1) + ( sbc_sc_b(ji,jj) + sbc_sc_n(ji,jj) ) * z1_e3t 
     184         END DO 
     185      END DO 
     186      !                                          Write in the ocean restart file 
     187      !                                          ******************************* 
     188      IF(lwp) WRITE(numout,*) 
     189      IF(lwp) WRITE(numout,*) 'sbc : ocean surface tracer content forcing fields written in ocean restart file ',   & 
     190           &                    'at it= ', kt,' date= ', ndastp 
     191      IF(lwp) WRITE(numout,*) '~~~~' 
     192      CALL iom_rstput( kt, nitrst, numrow, 'sbc_hc_b', sbc_hc_n ) 
     193      CALL iom_rstput( kt, nitrst, numrow, 'sbc_sc_b', sbc_sc_n ) 
     194       
    231195      IF( l_trdtra ) THEN           ! save the sbc trends for diagnostic 
    232196         ztrdt(:,:,:) = ta(:,:,:) - ztrdt(:,:,:) 
Note: See TracChangeset for help on using the changeset viewer.