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 7607 for branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/trcstp.F90 – NEMO

Ignore:
Timestamp:
2017-01-25T16:37:31+01:00 (7 years ago)
Author:
cetlod
Message:

v3.6 stable : add missing features for CMIP6 exercise, see ticket #1834

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/TOP_SRC/trcstp.F90

    r7522 r7607  
    131131      INTEGER, INTENT(in) ::   kt 
    132132      INTEGER  :: jn 
    133       REAL(wp) :: zkt 
     133      REAL(wp) :: zkt, zrec 
    134134      CHARACTER(len=1)               ::   cl1                      ! 1 character 
    135135      CHARACTER(len=2)               ::   cl2                      ! 2 characters 
     
    153153         ! 
    154154         !                                            !* Restart: read in restart file 
    155          IF( ln_rsttr .AND. iom_varid( numrtr, 'qsr_mean' , ldstop = .FALSE. ) > 0 .AND. & 
    156                             iom_varid( numrtr, 'qsr_arr_1', ldstop = .FALSE. ) > 0 .AND. & 
    157                             iom_varid( numrtr, 'ktdcy'    , ldstop = .FALSE. ) > 0 ) THEN  
    158             CALL iom_get( numrtr, 'ktdcy', zkt )   !  A mean of qsr 
     155         IF(  ln_rsttr .AND. iom_varid( numrtr, 'qsr_mean' , ldstop = .FALSE. ) > 0  & 
     156           &           .AND. iom_varid( numrtr, 'qsr_arr_1', ldstop = .FALSE. ) > 0  & 
     157           &           .AND. iom_varid( numrtr, 'ktdcy'    , ldstop = .FALSE. ) > 0  & 
     158           &           .AND. iom_varid( numrtr, 'nrdcy'    , ldstop = .FALSE. ) > 0  ) THEN 
     159 
     160            CALL iom_get( numrtr, 'ktdcy', zkt )   
    159161            rsecfst = INT( zkt ) * rdttrc(1) 
    160162            IF(lwp) WRITE(numout,*) 'trc_qsr_mean:   qsr_mean read in the restart file at time-step rsecfst =', rsecfst, ' s ' 
    161163            CALL iom_get( numrtr, jpdom_autoglo, 'qsr_mean', qsr_mean )   !  A mean of qsr 
    162             DO jn = 1, nb_rec_per_day  
    163              IF( jn <= 9 )  THEN 
    164                WRITE(cl1,'(i1)') jn 
    165                CALL iom_get( numrtr, jpdom_autoglo, 'qsr_arr_'//cl1, qsr_arr(:,:,jn) )   !  A mean of qsr 
    166              ELSE 
    167                WRITE(cl2,'(i2.2)') jn 
    168                CALL iom_get( numrtr, jpdom_autoglo, 'qsr_arr_'//cl2, qsr_arr(:,:,jn) )   !  A mean of qsr 
    169              ENDIF 
    170            ENDDO 
     164            CALL iom_get( numrtr, 'nrdcy', zrec )   !  Number of record per days 
     165            IF( INT( zrec ) == nb_rec_per_day ) THEN 
     166               DO jn = 1, nb_rec_per_day  
     167                  IF( jn <= 9 )  THEN 
     168                    WRITE(cl1,'(i1)') jn 
     169                    CALL iom_get( numrtr, jpdom_autoglo, 'qsr_arr_'//cl1, qsr_arr(:,:,jn) )   !  A mean of qsr 
     170                  ELSE 
     171                    WRITE(cl2,'(i2.2)') jn 
     172                    CALL iom_get( numrtr, jpdom_autoglo, 'qsr_arr_'//cl2, qsr_arr(:,:,jn) )   !  A mean of qsr 
     173                  ENDIF 
     174              ENDDO 
     175            ELSE 
     176               DO jn = 1, nb_rec_per_day 
     177                  qsr_arr(:,:,jn) = qsr_mean(:,:) 
     178               ENDDO 
     179            ENDIF 
    171180         ELSE                                         !* no restart: set from nit000 values 
    172181            IF(lwp) WRITE(numout,*) 'trc_qsr_mean:   qsr_mean set to nit000 values' 
     
    185194      llnew   = ( rseclast - rsecfst ) .ge.  rdt_sampl    !   new shortwave to store 
    186195      IF( llnew ) THEN 
    187           IF( lwp ) WRITE(numout,*) ' New shortwave to sample for TOP at time kt = ', kt, & 
     196          IF( lwp .AND. kt < nittrc000 + 100 ) WRITE(numout,*) ' New shortwave to sample for TOP at time kt = ', kt, & 
    188197             &                      ' time = ', rseclast/3600.,'hours ' 
    189198          rsecfst = rseclast 
     
    199208         IF(lwp) WRITE(numout,*) 'trc_mean_qsr : write qsr_mean in restart file  kt =', kt 
    200209         IF(lwp) WRITE(numout,*) '~~~~~~~' 
    201          zkt = REAL( kt, wp ) 
    202          CALL iom_rstput( kt, nitrst, numrtw, 'ktdcy', zkt ) 
     210         zkt  = REAL( kt, wp ) 
     211         zrec = REAL( nb_rec_per_day, wp ) 
     212         CALL iom_rstput( kt, nitrst, numrtw, 'ktdcy', zkt  ) 
     213         CALL iom_rstput( kt, nitrst, numrtw, 'nrdcy', zrec ) 
    203214          DO jn = 1, nb_rec_per_day  
    204215             IF( jn <= 9 )  THEN 
Note: See TracChangeset for help on using the changeset viewer.