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 10369 for NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/tests/CANAL/MY_SRC – NEMO

Ignore:
Timestamp:
2018-12-03T15:28:36+01:00 (5 years ago)
Author:
smasson
Message:

dev_r10164_HPC09_ESIWACE_PREP_MERGE: missing modifications in test/*/MY_SRC/domvvl.F90, see #2133

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2018/dev_r10164_HPC09_ESIWACE_PREP_MERGE/tests/CANAL/MY_SRC/domvvl.F90

    r10314 r10369  
    147147      CALL dom_vvl_interpol( e3v_n(:,:,:), e3vw_n(:,:,:), 'VW' )  ! from V to UW 
    148148      CALL dom_vvl_interpol( e3v_b(:,:,:), e3vw_b(:,:,:), 'VW' ) 
     149 
     150      ! We need to define e3[tuv]_a for AGRIF initialisation (should not be a problem for the restartability...) 
     151      e3t_a(:,:,:) = e3t_n(:,:,:) 
     152      e3u_a(:,:,:) = e3u_n(:,:,:) 
     153      e3v_a(:,:,:) = e3v_n(:,:,:) 
    149154      ! 
    150155      !                    !==  depth of t and w-point  ==!   (set the isf depth as it is in the initial timestep) 
     
    229234               END DO 
    230235            END DO 
    231             IF( cn_cfg == "orca" .AND. nn_cfg == 3 ) THEN   ! ORCA2: Suppress ztilde in the Foxe Basin for ORCA2 
    232                ii0 = 103   ;   ii1 = 111        
    233                ij0 = 128   ;   ij1 = 135   ;    
    234                frq_rst_e3t( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) ) =  0.0_wp 
    235                frq_rst_hdv( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) ) =  1.e0_wp / rdt 
     236            IF( cn_cfg == "orca" .OR. cn_cfg == "ORCA" ) THEN 
     237               IF( nn_cfg == 3 ) THEN   ! ORCA2: Suppress ztilde in the Foxe Basin for ORCA2 
     238                  ii0 = 103   ;   ii1 = 111        
     239                  ij0 = 128   ;   ij1 = 135   ;    
     240                  frq_rst_e3t( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) ) =  0.0_wp 
     241                  frq_rst_hdv( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) ) =  1.e0_wp / rdt 
     242               ENDIF 
    236243            ENDIF 
    237244         ENDIF 
     245      ENDIF 
     246      ! 
     247      IF(lwxios) THEN 
     248! define variables in restart file when writing with XIOS 
     249         CALL iom_set_rstw_var_active('e3t_b') 
     250         CALL iom_set_rstw_var_active('e3t_n') 
     251         !                                           ! ----------------------- ! 
     252         IF( ln_vvl_ztilde .OR. ln_vvl_layer ) THEN  ! z_tilde and layer cases ! 
     253            !                                        ! ----------------------- ! 
     254            CALL iom_set_rstw_var_active('tilde_e3t_b') 
     255            CALL iom_set_rstw_var_active('tilde_e3t_n') 
     256         END IF 
     257         !                                           ! -------------!     
     258         IF( ln_vvl_ztilde ) THEN                    ! z_tilde case ! 
     259            !                                        ! ------------ ! 
     260            CALL iom_set_rstw_var_active('hdiv_lf') 
     261         ENDIF 
     262         ! 
    238263      ENDIF 
    239264      ! 
     
    412437         IF( ( z_tmax >  rn_zdef_max ) .OR. ( z_tmin < - rn_zdef_max ) ) THEN 
    413438            IF( lk_mpp ) THEN 
    414                CALL mpp_maxloc( 'domvvl', ze3t, tmask, z_tmax, ijk_max(1), ijk_max(2), ijk_max(3) ) 
    415                CALL mpp_minloc( 'domvvl', ze3t, tmask, z_tmin, ijk_min(1), ijk_min(2), ijk_min(3) ) 
     439               CALL mpp_maxloc( 'domvvl', ze3t, tmask, z_tmax, ijk_max ) 
     440               CALL mpp_minloc( 'domvvl', ze3t, tmask, z_tmin, ijk_min ) 
    416441            ELSE 
    417442               ijk_max = MAXLOC( ze3t(:,:,:) ) 
     
    781806         IF( ln_rstart ) THEN                   !* Read the restart file 
    782807            CALL rst_read_open                  !  open the restart file if necessary 
    783             CALL iom_get( numror, jpdom_autoglo, 'sshn'   , sshn    ) 
     808            CALL iom_get( numror, jpdom_autoglo, 'sshn'   , sshn, ldxios = lrxios    ) 
    784809            ! 
    785810            id1 = iom_varid( numror, 'e3t_b', ldstop = .FALSE. ) 
     
    792817            !                             ! --------- ! 
    793818            IF( MIN( id1, id2 ) > 0 ) THEN       ! all required arrays exist 
    794                CALL iom_get( numror, jpdom_autoglo, 'e3t_b', e3t_b(:,:,:) ) 
    795                CALL iom_get( numror, jpdom_autoglo, 'e3t_n', e3t_n(:,:,:) ) 
     819               CALL iom_get( numror, jpdom_autoglo, 'e3t_b', e3t_b(:,:,:), ldxios = lrxios ) 
     820               CALL iom_get( numror, jpdom_autoglo, 'e3t_n', e3t_n(:,:,:), ldxios = lrxios ) 
    796821               ! needed to restart if land processor not computed  
    797822               IF(lwp) write(numout,*) 'dom_vvl_rst : e3t_b and e3t_n found in restart files' 
     
    807832               IF(lwp) write(numout,*) 'e3t_n set equal to e3t_b.' 
    808833               IF(lwp) write(numout,*) 'neuler is forced to 0' 
    809                CALL iom_get( numror, jpdom_autoglo, 'e3t_b', e3t_b(:,:,:) ) 
     834               CALL iom_get( numror, jpdom_autoglo, 'e3t_b', e3t_b(:,:,:), ldxios = lrxios ) 
    810835               e3t_n(:,:,:) = e3t_b(:,:,:) 
    811836               neuler = 0 
     
    814839               IF(lwp) write(numout,*) 'e3t_b set equal to e3t_n.' 
    815840               IF(lwp) write(numout,*) 'neuler is forced to 0' 
    816                CALL iom_get( numror, jpdom_autoglo, 'e3t_n', e3t_n(:,:,:) ) 
     841               CALL iom_get( numror, jpdom_autoglo, 'e3t_n', e3t_n(:,:,:), ldxios = lrxios ) 
    817842               e3t_b(:,:,:) = e3t_n(:,:,:) 
    818843               neuler = 0 
     
    839864               !                          ! ----------------------- ! 
    840865               IF( MIN( id3, id4 ) > 0 ) THEN  ! all required arrays exist 
    841                   CALL iom_get( numror, jpdom_autoglo, 'tilde_e3t_b', tilde_e3t_b(:,:,:) ) 
    842                   CALL iom_get( numror, jpdom_autoglo, 'tilde_e3t_n', tilde_e3t_n(:,:,:) ) 
     866                  CALL iom_get( numror, jpdom_autoglo, 'tilde_e3t_b', tilde_e3t_b(:,:,:), ldxios = lrxios ) 
     867                  CALL iom_get( numror, jpdom_autoglo, 'tilde_e3t_n', tilde_e3t_n(:,:,:), ldxios = lrxios ) 
    843868               ELSE                            ! one at least array is missing 
    844869                  tilde_e3t_b(:,:,:) = 0.0_wp 
     
    849874                  !                       ! ------------ ! 
    850875                  IF( id5 > 0 ) THEN  ! required array exists 
    851                      CALL iom_get( numror, jpdom_autoglo, 'hdiv_lf', hdiv_lf(:,:,:) ) 
     876                     CALL iom_get( numror, jpdom_autoglo, 'hdiv_lf', hdiv_lf(:,:,:), ldxios = lrxios ) 
    852877                  ELSE                ! array is missing 
    853878                     hdiv_lf(:,:,:) = 0.0_wp 
     
    929954         !                                   ! =================== 
    930955         IF(lwp) WRITE(numout,*) '---- dom_vvl_rst ----' 
     956         IF( lwxios ) CALL iom_swap(      cwxios_context          ) 
    931957         !                                           ! --------- ! 
    932958         !                                           ! all cases ! 
    933959         !                                           ! --------- ! 
    934          CALL iom_rstput( kt, nitrst, numrow, 'e3t_b', e3t_b(:,:,:) ) 
    935          CALL iom_rstput( kt, nitrst, numrow, 'e3t_n', e3t_n(:,:,:) ) 
     960         CALL iom_rstput( kt, nitrst, numrow, 'e3t_b', e3t_b(:,:,:), ldxios = lwxios ) 
     961         CALL iom_rstput( kt, nitrst, numrow, 'e3t_n', e3t_n(:,:,:), ldxios = lwxios ) 
    936962         !                                           ! ----------------------- ! 
    937963         IF( ln_vvl_ztilde .OR. ln_vvl_layer ) THEN  ! z_tilde and layer cases ! 
    938964            !                                        ! ----------------------- ! 
    939             CALL iom_rstput( kt, nitrst, numrow, 'tilde_e3t_b', tilde_e3t_b(:,:,:) ) 
    940             CALL iom_rstput( kt, nitrst, numrow, 'tilde_e3t_n', tilde_e3t_n(:,:,:) ) 
     965            CALL iom_rstput( kt, nitrst, numrow, 'tilde_e3t_b', tilde_e3t_b(:,:,:), ldxios = lwxios) 
     966            CALL iom_rstput( kt, nitrst, numrow, 'tilde_e3t_n', tilde_e3t_n(:,:,:), ldxios = lwxios) 
    941967         END IF 
    942968         !                                           ! -------------!     
    943969         IF( ln_vvl_ztilde ) THEN                    ! z_tilde case ! 
    944970            !                                        ! ------------ ! 
    945             CALL iom_rstput( kt, nitrst, numrow, 'hdiv_lf', hdiv_lf(:,:,:) ) 
    946          ENDIF 
    947          ! 
     971            CALL iom_rstput( kt, nitrst, numrow, 'hdiv_lf', hdiv_lf(:,:,:), ldxios = lwxios) 
     972         ENDIF 
     973         ! 
     974         IF( lwxios ) CALL iom_swap(      cxios_context          ) 
    948975      ENDIF 
    949976      ! 
Note: See TracChangeset for help on using the changeset viewer.