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 6967 – NEMO

Changeset 6967


Ignore:
Timestamp:
2016-10-03T08:35:13+02:00 (7 years ago)
Author:
cetlod
Message:

v3.6stable: minor bgufix on trcstp, see ticket #1173

File:
1 edited

Legend:

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

    r6941 r6967  
    3333   REAL(wp) :: rdt_sampl 
    3434   INTEGER  :: nb_rec_per_day 
    35    INTEGER  :: isecfst, iseclast 
     35   REAL(wp) :: rsecfst, rseclast 
    3636   LOGICAL  :: llnew 
    3737 
     
    131131      INTEGER, INTENT(in) ::   kt 
    132132      INTEGER  :: jn 
    133       REAL(wp) :: zsecfst 
     133      REAL(wp) :: zkt 
    134134      CHARACTER(len=1)               ::   cl1                      ! 1 character 
    135135      CHARACTER(len=2)               ::   cl2                      ! 2 characters 
     
    137137      IF( kt == nittrc000 ) THEN 
    138138         IF( ln_cpl )  THEN   
    139             rdt_sampl = 86400. / ncpl_qsr_freq 
     139            rdt_sampl = rday / ncpl_qsr_freq 
    140140            nb_rec_per_day = ncpl_qsr_freq 
    141141         ELSE   
    142             rdt_sampl = MAX( 3600., rdt * nn_dttrc ) 
    143             nb_rec_per_day = INT( 86400 / rdt_sampl ) 
     142            rdt_sampl = MAX( 3600., rdttrc(1) ) 
     143            nb_rec_per_day = INT( rday / rdt_sampl ) 
    144144         ENDIF 
    145145         ! 
     
    155155         IF( ln_rsttr .AND. iom_varid( numrtr, 'qsr_mean' , ldstop = .FALSE. ) > 0 .AND. & 
    156156                            iom_varid( numrtr, 'qsr_arr_1', ldstop = .FALSE. ) > 0 .AND. & 
    157                             iom_varid( numrtr, 'zsecfst'  , ldstop = .FALSE. ) > 0 ) THEN  
    158             IF(lwp) WRITE(numout,*) 'trc_qsr_mean:   qsr_mean read in the restart file' 
     157                            iom_varid( numrtr, 'ktdcy'    , ldstop = .FALSE. ) > 0 ) THEN  
     158            CALL iom_get( numrtr, 'ktdcy', zkt )   !  A mean of qsr 
     159            rsecfst = INT( zkt ) * rdttrc(1) 
     160            IF(lwp) WRITE(numout,*) 'trc_qsr_mean:   qsr_mean read in the restart file at time-step rsecfst =', rsecfst, ' s ' 
    159161            CALL iom_get( numrtr, jpdom_autoglo, 'qsr_mean', qsr_mean )   !  A mean of qsr 
    160             CALL iom_get( numrtr, 'zsecfst', zsecfst )   !  A mean of qsr 
    161             isecfst = INT( zsecfst ) 
    162162            DO jn = 1, nb_rec_per_day  
    163163             IF( jn <= 9 )  THEN 
     
    171171         ELSE                                         !* no restart: set from nit000 values 
    172172            IF(lwp) WRITE(numout,*) 'trc_qsr_mean:   qsr_mean set to nit000 values' 
    173             isecfst  = nsec_year + nsec1jan000   !   number of seconds between Jan. 1st 00h of nit000 year and the middle of time step 
     173            rsecfst  = kt * rdttrc(1) 
    174174            ! 
    175175            qsr_mean(:,:) = qsr(:,:) 
     
    181181      ENDIF 
    182182      ! 
    183       iseclast = nsec_year + nsec1jan000 
    184       ! 
    185       llnew   = ( iseclast - isecfst )  > INT( rdt_sampl )   !   new shortwave to store 
     183      rseclast = kt * rdttrc(1) 
     184      ! 
     185      llnew   = ( rseclast - rsecfst ) .ge.  rdt_sampl    !   new shortwave to store 
    186186      IF( llnew ) THEN 
    187187          IF( lwp ) WRITE(numout,*) ' New shortwave to sample for TOP at time kt = ', kt, & 
    188              &                      ' time = ', (iseclast+rdt*nn_dttrc/2.)/3600.,'hours ' 
    189           isecfst = iseclast 
     188             &                      ' time = ', rseclast/3600.,'hours ' 
     189          rsecfst = rseclast 
    190190          DO jn = 1, nb_rec_per_day - 1 
    191191             qsr_arr(:,:,jn) = qsr_arr(:,:,jn+1) 
     
    199199         IF(lwp) WRITE(numout,*) 'trc_mean_qsr : write qsr_mean in restart file  kt =', kt 
    200200         IF(lwp) WRITE(numout,*) '~~~~~~~' 
     201         zkt = REAL( kt, wp ) 
     202         CALL iom_rstput( kt, nitrst, numrtw, 'ktdcy', zkt ) 
    201203          DO jn = 1, nb_rec_per_day  
    202204             IF( jn <= 9 )  THEN 
     
    209211         ENDDO 
    210212         CALL iom_rstput( kt, nitrst, numrtw, 'qsr_mean', qsr_mean(:,:) ) 
    211          zsecfst = REAL( isecfst, wp ) 
    212          CALL iom_rstput( kt, nitrst, numrtw, 'zsecfst', zsecfst ) 
    213213      ENDIF 
    214214      ! 
Note: See TracChangeset for help on using the changeset viewer.