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 7522 for branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC – NEMO

Ignore:
Timestamp:
2017-01-02T11:06:49+01:00 (7 years ago)
Author:
cetlod
Message:

3.6 stable : update the offline routines to be able to run passive tracers offline with linear free surface, see ticket #1775

Location:
branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsbc.F90

    r6969 r7522  
    263263      ENDIF 
    264264 
    265       ! set the number of level over which river runoffs are applied  
    266       ! online configuration : computed in sbcrnf 
    267       IF( lk_offline ) THEN 
    268         nk_rnf(:,:) = 1 
    269         h_rnf (:,:) = e3t_0(:,:,1) 
    270       ENDIF 
    271265 
    272266      ! dust input from the atmosphere 
  • branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/TRP/trcadv.F90

    r5385 r7522  
    8888         r2dt(:) = 2. * rdttrc(:)       ! = 2 rdttrc (leapfrog) 
    8989      ENDIF 
    90       !                                                   ! effective transport 
    91       DO jk = 1, jpkm1 
    92          !                                                ! eulerian transport only 
    93          zun(:,:,jk) = e2u  (:,:) * fse3u(:,:,jk) * un(:,:,jk) 
    94          zvn(:,:,jk) = e1v  (:,:) * fse3v(:,:,jk) * vn(:,:,jk) 
    95          zwn(:,:,jk) = e1e2t(:,:)                 * wn(:,:,jk) 
    96          ! 
    97       END DO 
    98       ! 
    99       IF( ln_vvl_ztilde .OR. ln_vvl_layer ) THEN 
    100          zun(:,:,:) = zun(:,:,:) + un_td(:,:,:) 
    101          zvn(:,:,:) = zvn(:,:,:) + vn_td(:,:,:) 
     90      !   
     91      IF( lk_offline ) THEN 
     92         zun(:,:,:) = un(:,:,:)     ! effective transport already in un/vn/wn 
     93         zvn(:,:,:) = vn(:,:,:) 
     94         zwn(:,:,:) = wn(:,:,:) 
     95      ELSE 
     96         !                                                         ! effective transport 
     97         DO jk = 1, jpkm1 
     98            !                                                ! eulerian transport only 
     99            zun(:,:,jk) = e2u  (:,:) * fse3u(:,:,jk) * un(:,:,jk) 
     100            zvn(:,:,jk) = e1v  (:,:) * fse3v(:,:,jk) * vn(:,:,jk) 
     101            zwn(:,:,jk) = e1e2t(:,:)                 * wn(:,:,jk) 
     102            ! 
     103         END DO 
     104         ! 
     105         IF( ln_vvl_ztilde .OR. ln_vvl_layer ) THEN 
     106            zun(:,:,:) = zun(:,:,:) + un_td(:,:,:) 
     107            zvn(:,:,:) = zvn(:,:,:) + vn_td(:,:,:) 
     108         ENDIF 
     109         ! 
     110         zun(:,:,jpk) = 0._wp                                                     ! no transport trough the bottom 
     111         zvn(:,:,jpk) = 0._wp                                                     ! no transport trough the bottom 
     112         zwn(:,:,jpk) = 0._wp                                                     ! no transport trough the bottom 
     113         ! 
     114 
     115         IF( lk_traldf_eiv .AND. .NOT. ln_traldf_grif )   &  ! add the eiv transport (if necessary) 
     116            &              CALL tra_adv_eiv( kt, nittrc000, zun, zvn, zwn, 'TRC' ) 
     117         ! 
     118         IF( ln_mle    )   CALL tra_adv_mle( kt, nittrc000, zun, zvn, zwn, 'TRC' )    ! add the mle transport (if necessary) 
     119         ! 
    102120      ENDIF 
    103       ! 
    104       zun(:,:,jpk) = 0._wp                                                     ! no transport trough the bottom 
    105       zvn(:,:,jpk) = 0._wp                                                     ! no transport trough the bottom 
    106       zwn(:,:,jpk) = 0._wp                                                     ! no transport trough the bottom 
    107  
    108       IF( lk_traldf_eiv .AND. .NOT. ln_traldf_grif )   &  ! add the eiv transport (if necessary) 
    109          &              CALL tra_adv_eiv( kt, nittrc000, zun, zvn, zwn, 'TRC' ) 
    110       ! 
    111       IF( ln_mle    )   CALL tra_adv_mle( kt, nittrc000, zun, zvn, zwn, 'TRC' )    ! add the mle transport (if necessary) 
    112121      ! 
    113122      SELECT CASE ( nadv )                            !==  compute advection trend and add it to general trend  ==! 
  • branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/TRP/trcrad.F90

    r7494 r7522  
    6565      IF( lk_c14b    )   CALL trc_rad_sms( kt, trb, trn, jp_c14b0, jp_c14b1              )  ! bomb C14 
    6666      IF( lk_pisces  )   CALL trc_rad_sms( kt, trb, trn, jp_pcs0 , jp_pcs1, cpreserv='Y' )  ! PISCES model 
    67       IF( lk_my_trc  )   CALL trc_rad_sms( kt, trb, trn, jp_myt0 , jp_myt1              )  ! MY_TRC model 
     67      IF( lk_my_trc  )   CALL trc_rad_sms( kt, trb, trn, jp_myt0 , jp_myt1, cpreserv='Y' )  ! MY_TRC model 
    6868 
    6969      ! 
  • branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/TRP/trcsbc.F90

    r6941 r7522  
    128128      ! Coupling offline : runoff are in emp which contains E-P-R 
    129129      ! 
    130       IF( .NOT. lk_offline .AND. lk_vvl ) THEN  ! online coupling with vvl 
     130      IF( lk_vvl ) THEN                         ! linear free surface vvl 
    131131         zsfx(:,:) = 0._wp 
    132       ELSE                                      ! online coupling free surface or offline with free surface 
     132      ELSE                                      ! no vvl 
    133133         zsfx(:,:) = emp(:,:) 
    134134      ENDIF 
  • branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/trcstp.F90

    r6967 r7522  
    8686         tra(:,:,:,:) = 0.e0 
    8787         ! 
    88                                    CALL trc_rst_opn  ( kt )       ! Open tracer restart file  
     88         IF( .NOT.lk_offline )     CALL trc_rst_opn  ( kt )       ! Open tracer restart file  
    8989         IF( lrst_trc )            CALL trc_rst_cal  ( kt, 'WRITE' )   ! calendar 
    9090         IF( lk_iomput ) THEN  ;   CALL trc_wri      ( kt )       ! output of passive tracers with iom I/O manager 
Note: See TracChangeset for help on using the changeset viewer.