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 8243 for branches/UKMO/test_moci_test_suite/NEMOGCM/NEMO/OPA_SRC/DOM – NEMO

Ignore:
Timestamp:
2017-06-29T11:41:55+02:00 (7 years ago)
Author:
andmirek
Message:

#1914 working XIOS read, XIOS write and single processor read

Location:
branches/UKMO/test_moci_test_suite/NEMOGCM/NEMO/OPA_SRC/DOM
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/UKMO/test_moci_test_suite/NEMOGCM/NEMO/OPA_SRC/DOM/daymod.F90

    r8001 r8243  
    3636   USE restart         ! restart 
    3737   USE iom_def, ONLY : lxios_read 
     38   USE iom_def, ONLY : lwxios 
    3839 
    3940   IMPLICIT NONE 
     
    360361         ENDIF 
    361362         ! calendar control 
    362          CALL iom_rstput( kt, nitrst, numrow, 'kt'     , REAL( kt    , wp) )   ! time-step 
    363          CALL iom_rstput( kt, nitrst, numrow, 'ndastp' , REAL( ndastp, wp) )   ! date 
    364          CALL iom_rstput( kt, nitrst, numrow, 'adatrj' , adatrj            )   ! number of elapsed days since 
     363         IF( lwxios ) CALL iom_swap(      wxios_context          ) 
     364         CALL iom_rstput( kt, nitrst, numrow, 'kt'     , REAL( kt    , wp), lxios = lwxios )   ! time-step 
     365         CALL iom_rstput( kt, nitrst, numrow, 'ndastp' , REAL( ndastp, wp), lxios = lwxios )   ! date 
     366         CALL iom_rstput( kt, nitrst, numrow, 'adatrj' , adatrj, lxios = lwxios            )   ! number of elapsed days since 
    365367         !                                                                     ! the begining of the run [s] 
     368         IF( lwxios ) CALL iom_swap(      cxios_context          ) 
    366369      ENDIF 
    367370      ! 
  • branches/UKMO/test_moci_test_suite/NEMOGCM/NEMO/OPA_SRC/DOM/domain.F90

    r8001 r8243  
    3838   USE timing          ! Timing 
    3939   USE lbclnk          ! ocean lateral boundary condition (or mpp link) 
    40    USE iom_def, ONLY:lxios_read 
     40   USE iom_def, ONLY:lxios_read, lwxios, wxioso 
    4141 
    4242   IMPLICIT NONE 
     
    140140         &             nn_it000, nn_itend  , nn_date0    , nn_leapy     , nn_istate , nn_stock ,   & 
    141141         &             nn_write, ln_dimgnnn, ln_mskland  , ln_cfmeta    , ln_clobber, nn_chunksz, nn_euler, & 
    142          &             ln_xios_read 
     142         &             ln_xios_read, nn_wxios 
    143143      NAMELIST/namdom/ nn_bathy, rn_bathy , rn_e3zps_min, rn_e3zps_rat, nn_msh, rn_hmin,   & 
    144144         &             nn_acc   , rn_atfp     , rn_rdt      , rn_rdtmin ,                  & 
     
    155155      !!---------------------------------------------------------------------- 
    156156      ln_xios_read = .false.            ! set in case ln_xios_read is not in namelist 
     157      nn_wxios = 0 
    157158      REWIND( numnam_ref )              ! Namelist namrun in reference namelist : Parameters of the run 
    158159      READ  ( numnam_ref, namrun, IOSTAT = ios, ERR = 901) 
     
    196197         WRITE(numout,*) '      NetCDF chunksize (bytes)        nn_chunksz = ', nn_chunksz 
    197198         WRITE(numout,*) '      READ restart for a single file using XIOS ln_xios_read =', ln_xios_read 
     199         WRITE(numout,*) '      Write restart using XIOS        nn_wxios   = ', nn_wxios 
    198200      ENDIF 
    199201 
     
    309311      rdtmax    = rn_rdtmin 
    310312      rdth      = rn_rdth 
     313      if (nn_wxios > 0) lwxios = .TRUE.  
     314      wxioso = nn_wxios 
    311315 
    312316      REWIND( numnam_ref )              ! Namelist namcla in reference namelist : Cross land advection 
  • branches/UKMO/test_moci_test_suite/NEMOGCM/NEMO/OPA_SRC/DOM/domvvl.F90

    r7924 r8243  
    135135      IF(lwp) WRITE(numout,*) '~~~~~~~~~~~~' 
    136136 
     137      ! Set variables needed in iom for reastart write with XIOS 
     138      lr_vvl_ztilde = ln_vvl_ztilde 
     139      lr_vvl_layer   = ln_vvl_layer 
    137140      ! choose vertical coordinate (z_star, z_tilde or layer) 
    138141      ! ========================== 
     
    910913         !                                           ! all cases ! 
    911914         !                                           ! --------- ! 
    912          CALL iom_rstput( kt, nitrst, numrow, 'fse3t_b', fse3t_b(:,:,:) ) 
    913          CALL iom_rstput( kt, nitrst, numrow, 'fse3t_n', fse3t_n(:,:,:) ) 
     915         IF( lwxios ) CALL iom_swap(      wxios_context          )  
     916         CALL iom_rstput( kt, nitrst, numrow, 'fse3t_b', fse3t_b(:,:,:), lxios = lwxios ) 
     917         CALL iom_rstput( kt, nitrst, numrow, 'fse3t_n', fse3t_n(:,:,:), lxios = lwxios ) 
    914918         !                                           ! ----------------------- ! 
    915919         IF( ln_vvl_ztilde .OR. ln_vvl_layer ) THEN  ! z_tilde and layer cases ! 
    916920            !                                        ! ----------------------- ! 
    917             CALL iom_rstput( kt, nitrst, numrow, 'tilde_e3t_b', tilde_e3t_b(:,:,:) ) 
    918             CALL iom_rstput( kt, nitrst, numrow, 'tilde_e3t_n', tilde_e3t_n(:,:,:) ) 
     921            CALL iom_rstput( kt, nitrst, numrow, 'tilde_e3t_b', tilde_e3t_b(:,:,:), lxios = lwxios) 
     922            CALL iom_rstput( kt, nitrst, numrow, 'tilde_e3t_n', tilde_e3t_n(:,:,:), lxios = lwxios) 
    919923         END IF 
    920924         !                                           ! -------------!     
    921925         IF( ln_vvl_ztilde ) THEN                    ! z_tilde case ! 
    922926            !                                        ! ------------ ! 
    923             CALL iom_rstput( kt, nitrst, numrow, 'hdiv_lf', hdiv_lf(:,:,:) ) 
     927            CALL iom_rstput( kt, nitrst, numrow, 'hdiv_lf', hdiv_lf(:,:,:), lxios = lwxios) 
    924928         ENDIF 
    925  
     929         IF( lwxios ) CALL iom_swap(      cxios_context          ) 
    926930      ENDIF 
    927931      IF( nn_timing == 1 )  CALL timing_stop('dom_vvl_rst') 
  • branches/UKMO/test_moci_test_suite/NEMOGCM/NEMO/OPA_SRC/DOM/dtatsd.F90

    r6486 r8243  
    2323   USE wrk_nemo        ! Memory allocation 
    2424   USE timing          ! Timing 
     25   USE iom_def, ONLY:lspr 
    2526 
    2627   IMPLICIT NONE 
     
    3233   LOGICAL , PUBLIC ::   ln_tsd_init      !: T & S data flag 
    3334   LOGICAL , PUBLIC ::   ln_tsd_tradmp    !: internal damping toward input data flag 
     35   LOGICAL , PUBLIC ::   ln_tsd_sio       !: read file using 1 processor 
    3436 
    3537   TYPE(FLD), ALLOCATABLE, DIMENSION(:) ::   sf_tsd   ! structure of input SST (file informations, fields read) 
     
    6163      TYPE(FLD_N)                   ::   sn_tem, sn_sal 
    6264      !! 
    63       NAMELIST/namtsd/   ln_tsd_init, ln_tsd_tradmp, cn_dir, sn_tem, sn_sal 
     65      NAMELIST/namtsd/   ln_tsd_init, ln_tsd_tradmp, cn_dir, sn_tem, sn_sal, ln_tsd_sio 
    6466      INTEGER  ::   ios 
    6567      !!---------------------------------------------------------------------- 
     
    7072      ierr0 = 0  ;  ierr1 = 0  ;  ierr2 = 0  ;  ierr3 = 0 
    7173      ! 
     74      ln_tsd_sio = .FALSE. 
    7275      REWIND( numnam_ref )              ! Namelist namtsd in reference namelist :  
    7376      READ  ( numnam_ref, namtsd, IOSTAT = ios, ERR = 901) 
     
    154157      IF( nn_timing == 1 )  CALL timing_start('dta_tsd') 
    155158      ! 
     159      lspr = ln_tsd_sio 
    156160      CALL fld_read( kt, 1, sf_tsd )      !==   read T & S data at kt time step   ==! 
     161      lspr = .false. 
    157162      ! 
    158163      ! 
Note: See TracChangeset for help on using the changeset viewer.