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 12961 for NEMO/branches/2020/dev_12905_xios_restart/src/TOP/trcstp.F90 – NEMO

Ignore:
Timestamp:
2020-05-22T13:51:12+02:00 (4 years ago)
Author:
andmirek
Message:

Ticket #2462: read/write restart with XIOS in TOP (with debug print statements)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2020/dev_12905_xios_restart/src/TOP/trcstp.F90

    r12620 r12961  
    109109      IF( kt == nittrc000 ) THEN 
    110110         CALL iom_close( numrtr )                         ! close input tracer restart file 
     111         IF(lrxios) CALL iom_context_finalize(      crtxios_context          ) 
    111112         IF(lwm) CALL FLUSH( numont )                     ! flush namelist output 
    112113      ENDIF 
     
    195196           &                              .AND. iom_varid( numrtr, 'ktdcy'    , ldstop = .FALSE. ) > 0  & 
    196197           &                              .AND. iom_varid( numrtr, 'nrdcy'    , ldstop = .FALSE. ) > 0  ) THEN 
    197  
    198             CALL iom_get( numrtr, 'ktdcy', zkt 
     198            IF(lrxios) CALL iom_swap(crtxios_context) 
     199            CALL iom_get( numrtr, 'ktdcy', zkt, ldxios = lrxios 
    199200            rsecfst = INT( zkt ) * rn_Dt 
    200201            IF(lwp) WRITE(numout,*) 'trc_qsr_mean:   qsr_mean read in the restart file at time-step rsecfst =', rsecfst, ' s ' 
    201             CALL iom_get( numrtr, jpdom_autoglo, 'qsr_mean', qsr_mean )   !  A mean of qsr 
    202             CALL iom_get( numrtr, 'nrdcy', zrec )   !  Number of record per days 
     202            CALL iom_get( numrtr, jpdom_autoglo, 'qsr_mean', qsr_mean, ldxios = lrxios )   !  A mean of qsr 
     203            CALL iom_get( numrtr, 'nrdcy', zrec, ldxios = lrxios )   !  Number of record per days 
    203204            IF( INT( zrec ) == nb_rec_per_day ) THEN 
    204205               DO jn = 1, nb_rec_per_day  
    205206                  IF( jn <= 9 )  THEN 
    206207                    WRITE(cl1,'(i1)') jn 
    207                     CALL iom_get( numrtr, jpdom_autoglo, 'qsr_arr_'//cl1, qsr_arr(:,:,jn) )   !  A mean of qsr 
     208                    CALL iom_get( numrtr, jpdom_autoglo, 'qsr_arr_'//cl1, qsr_arr(:,:,jn), ldxios = lrxios )   !  A mean of qsr 
    208209                  ELSE 
    209210                    WRITE(cl2,'(i2.2)') jn 
    210                     CALL iom_get( numrtr, jpdom_autoglo, 'qsr_arr_'//cl2, qsr_arr(:,:,jn) )   !  A mean of qsr 
     211                    CALL iom_get( numrtr, jpdom_autoglo, 'qsr_arr_'//cl2, qsr_arr(:,:,jn), ldxios = lrxios )   !  A mean of qsr 
    211212                  ENDIF 
    212213              END DO 
     
    216217               ENDDO 
    217218            ENDIF 
     219            IF(lrxios) CALL iom_swap(cxios_context) 
    218220         ELSE                                         !* no restart: set from nit000 values 
    219221            IF(lwp) WRITE(numout,*) 'trc_qsr_mean:   qsr_mean set to nit000 values' 
     
    249251         zkt  = REAL( ktdcy, wp ) 
    250252         zrec = REAL( nb_rec_per_day, wp ) 
    251          CALL iom_rstput( kt, nitrst, numrtw, 'ktdcy', zkt  ) 
    252          CALL iom_rstput( kt, nitrst, numrtw, 'nrdcy', zrec ) 
     253         IF( lwxios ) CALL iom_swap(      cwtxios_context         ) 
     254         CALL iom_rstput( kt, nitrst, numrtw, 'ktdcy', zkt, ldxios = lwxios  ) 
     255         CALL iom_rstput( kt, nitrst, numrtw, 'nrdcy', zrec, ldxios = lwxios ) 
    253256          DO jn = 1, nb_rec_per_day  
    254257             IF( jn <= 9 )  THEN 
    255258               WRITE(cl1,'(i1)') jn 
    256                CALL iom_rstput( kt, nitrst, numrtw, 'qsr_arr_'//cl1, qsr_arr(:,:,jn) ) 
     259               CALL iom_rstput( kt, nitrst, numrtw, 'qsr_arr_'//cl1, qsr_arr(:,:,jn), ldxios = lwxios ) 
    257260             ELSE 
    258261               WRITE(cl2,'(i2.2)') jn 
    259                CALL iom_rstput( kt, nitrst, numrtw, 'qsr_arr_'//cl2, qsr_arr(:,:,jn) ) 
     262               CALL iom_rstput( kt, nitrst, numrtw, 'qsr_arr_'//cl2, qsr_arr(:,:,jn), ldxios = lwxios ) 
    260263             ENDIF 
    261264         END DO 
    262          CALL iom_rstput( kt, nitrst, numrtw, 'qsr_mean', qsr_mean(:,:) ) 
     265         CALL iom_rstput( kt, nitrst, numrtw, 'qsr_mean', qsr_mean(:,:), ldxios = lwxios ) 
     266         IF( lwxios ) CALL iom_swap(      cxios_context         ) 
    263267      ENDIF 
    264268      ! 
Note: See TracChangeset for help on using the changeset viewer.