Changeset 9506


Ignore:
Timestamp:
2018-04-26T16:54:23+02:00 (2 years ago)
Author:
clem
Message:

for some mpp decomposition (typically 8x4) agrif failed at running because some barotropic fields needed to be initialized (ub2_b etc) for the 1st interpolation and update. These fields are now set to 0 in dynspg_ts

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg_ts.F90

    r9367 r9506  
    13441344      CHARACTER(len=*), INTENT(in) ::   cdrw       ! "READ"/"WRITE" flag 
    13451345      ! 
     1346      INTEGER ::   id1, id2   ! local integers 
    13461347      !!---------------------------------------------------------------------- 
    13471348      ! 
    1348       IF( TRIM(cdrw) == 'READ' ) THEN 
    1349          CALL iom_get( numror, jpdom_autoglo, 'ub2_b'  , ub2_b  (:,:), ldxios = lrxios )    
    1350          CALL iom_get( numror, jpdom_autoglo, 'vb2_b'  , vb2_b  (:,:), ldxios = lrxios )  
    1351          CALL iom_get( numror, jpdom_autoglo, 'un_bf'  , un_bf  (:,:), ldxios = lrxios )    
    1352          CALL iom_get( numror, jpdom_autoglo, 'vn_bf'  , vn_bf  (:,:), ldxios = lrxios )  
    1353          IF( .NOT.ln_bt_av ) THEN 
    1354             CALL iom_get( numror, jpdom_autoglo, 'sshbb_e'  , sshbb_e(:,:), ldxios = lrxios )    
    1355             CALL iom_get( numror, jpdom_autoglo, 'ubb_e'    ,   ubb_e(:,:), ldxios = lrxios )    
    1356             CALL iom_get( numror, jpdom_autoglo, 'vbb_e'    ,   vbb_e(:,:), ldxios = lrxios ) 
    1357             CALL iom_get( numror, jpdom_autoglo, 'sshb_e'   ,  sshb_e(:,:), ldxios = lrxios )  
    1358             CALL iom_get( numror, jpdom_autoglo, 'ub_e'     ,    ub_e(:,:), ldxios = lrxios )    
    1359             CALL iom_get( numror, jpdom_autoglo, 'vb_e'     ,    vb_e(:,:), ldxios = lrxios ) 
    1360          ENDIF 
     1349      IF( TRIM(cdrw) == 'READ' ) THEN        ! Read/initialise  
     1350         !                                   ! --------------- 
     1351         IF( ln_rstart .AND. ln_bt_fw ) THEN    !* Read the restart file 
     1352            CALL iom_get( numror, jpdom_autoglo, 'ub2_b'  , ub2_b  (:,:), ldxios = lrxios )    
     1353            CALL iom_get( numror, jpdom_autoglo, 'vb2_b'  , vb2_b  (:,:), ldxios = lrxios )  
     1354            CALL iom_get( numror, jpdom_autoglo, 'un_bf'  , un_bf  (:,:), ldxios = lrxios )    
     1355            CALL iom_get( numror, jpdom_autoglo, 'vn_bf'  , vn_bf  (:,:), ldxios = lrxios )  
     1356            IF( .NOT.ln_bt_av ) THEN 
     1357               CALL iom_get( numror, jpdom_autoglo, 'sshbb_e'  , sshbb_e(:,:), ldxios = lrxios )    
     1358               CALL iom_get( numror, jpdom_autoglo, 'ubb_e'    ,   ubb_e(:,:), ldxios = lrxios )    
     1359               CALL iom_get( numror, jpdom_autoglo, 'vbb_e'    ,   vbb_e(:,:), ldxios = lrxios ) 
     1360               CALL iom_get( numror, jpdom_autoglo, 'sshb_e'   ,  sshb_e(:,:), ldxios = lrxios )  
     1361               CALL iom_get( numror, jpdom_autoglo, 'ub_e'     ,    ub_e(:,:), ldxios = lrxios )    
     1362               CALL iom_get( numror, jpdom_autoglo, 'vb_e'     ,    vb_e(:,:), ldxios = lrxios ) 
     1363            ENDIF 
    13611364#if defined key_agrif 
    1362          ! Read time integrated fluxes 
    1363          IF ( .NOT.Agrif_Root() ) THEN 
    1364             CALL iom_get( numror, jpdom_autoglo, 'ub2_i_b'  , ub2_i_b(:,:), ldxios = lrxios )    
    1365             CALL iom_get( numror, jpdom_autoglo, 'vb2_i_b'  , vb2_i_b(:,:), ldxios = lrxios ) 
    1366          ENDIF 
     1365            ! Read time integrated fluxes 
     1366            IF ( .NOT.Agrif_Root() ) THEN 
     1367               CALL iom_get( numror, jpdom_autoglo, 'ub2_i_b'  , ub2_i_b(:,:), ldxios = lrxios )    
     1368               CALL iom_get( numror, jpdom_autoglo, 'vb2_i_b'  , vb2_i_b(:,:), ldxios = lrxios ) 
     1369            ENDIF 
    13671370#endif 
    1368       ! 
    1369       ELSEIF( TRIM(cdrw) == 'WRITE' ) THEN 
     1371         ELSE                                   !* Start from rest 
     1372            IF(lwp) WRITE(numout,*) 
     1373            IF(lwp) WRITE(numout,*) '   ==>>>   start from rest: set barotropic values to 0' 
     1374            ub2_b (:,:) = 0._wp   ;   vb2_b (:,:) = 0._wp   ! used in the 1st interpol of agrif 
     1375            un_adv(:,:) = 0._wp   ;   vn_adv(:,:) = 0._wp   ! used in the 1st interpol of agrif 
     1376            un_bf (:,:) = 0._wp   ;   vn_bf (:,:) = 0._wp   ! used in the 1st update   of agrif 
     1377#if defined key_agrif 
     1378            IF ( .NOT.Agrif_Root() ) THEN 
     1379               ub2_i_b(:,:) = 0._wp   ;   vb2_i_b(:,:) = 0._wp   ! used in the 1st update of agrif 
     1380            ENDIF 
     1381#endif 
     1382         ENDIF 
     1383         ! 
     1384      ELSEIF( TRIM(cdrw) == 'WRITE' ) THEN   ! Create restart file 
     1385         !                                   ! ------------------- 
     1386         IF(lwp) WRITE(numout,*) '---- ts_rst ----' 
    13701387         IF( lwxios ) CALL iom_swap(      cwxios_context          ) 
    13711388         CALL iom_rstput( kt, nitrst, numrow, 'ub2_b'   , ub2_b  (:,:), ldxios = lwxios ) 
     
    14821499      ! 
    14831500      !                             ! read restart when needed 
    1484       IF( neuler /= 0 .AND. ln_bt_fw )   CALL ts_rst( nit000, 'READ' ) 
     1501      CALL ts_rst( nit000, 'READ' ) 
    14851502      ! 
    14861503      IF( lwxios ) THEN 
Note: See TracChangeset for help on using the changeset viewer.