- Timestamp:
- 2017-03-11T09:56:09+01:00 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMOGCM/NEMO/TOP_SRC/trcstp.F90
r7753 r7787 31 31 REAL(wp), DIMENSION(:,:,:), SAVE, ALLOCATABLE :: qsr_arr ! save qsr during TOP time-step 32 32 REAL(wp) :: rdt_sampl 33 INTEGER :: nb_rec_per_day 33 INTEGER :: nb_rec_per_day, ktdcy 34 34 REAL(wp) :: rsecfst, rseclast 35 35 LOGICAL :: llnew … … 130 130 INTEGER, INTENT(in) :: kt 131 131 INTEGER :: jn 132 REAL(wp) :: zkt 132 REAL(wp) :: zkt, zrec 133 133 CHARACTER(len=1) :: cl1 ! 1 character 134 134 CHARACTER(len=2) :: cl2 ! 2 characters … … 152 152 ! 153 153 ! !* Restart: read in restart file 154 IF( ln_rsttr .AND. iom_varid( numrtr, 'qsr_mean' , ldstop = .FALSE. ) > 0 .AND. & 155 iom_varid( numrtr, 'qsr_arr_1', ldstop = .FALSE. ) > 0 .AND. & 156 iom_varid( numrtr, 'ktdcy' , ldstop = .FALSE. ) > 0 ) THEN 157 CALL iom_get( numrtr, 'ktdcy', zkt ) ! A mean of qsr 158 rsecfst = INT( zkt ) * rdttrc 154 IF( ln_rsttr .AND. nn_rsttr /= 0 .AND. iom_varid( numrtr, 'qsr_mean' , ldstop = .FALSE. ) > 0 & 155 & .AND. iom_varid( numrtr, 'qsr_arr_1', ldstop = .FALSE. ) > 0 & 156 & .AND. iom_varid( numrtr, 'ktdcy' , ldstop = .FALSE. ) > 0 & 157 & .AND. iom_varid( numrtr, 'nrdcy' , ldstop = .FALSE. ) > 0 ) THEN 158 159 CALL iom_get( numrtr, 'ktdcy', zkt ) 160 rsecfst = INT( zkt ) * rdttrc(1) 159 161 IF(lwp) WRITE(numout,*) 'trc_qsr_mean: qsr_mean read in the restart file at time-step rsecfst =', rsecfst, ' s ' 160 162 CALL iom_get( numrtr, jpdom_autoglo, 'qsr_mean', qsr_mean ) ! A mean of qsr 161 DO jn = 1, nb_rec_per_day 162 IF( jn <= 9 ) THEN 163 WRITE(cl1,'(i1)') jn 164 CALL iom_get( numrtr, jpdom_autoglo, 'qsr_arr_'//cl1, qsr_arr(:,:,jn) ) ! A mean of qsr 165 ELSE 166 WRITE(cl2,'(i2.2)') jn 167 CALL iom_get( numrtr, jpdom_autoglo, 'qsr_arr_'//cl2, qsr_arr(:,:,jn) ) ! A mean of qsr 168 ENDIF 169 ENDDO 163 CALL iom_get( numrtr, 'nrdcy', zrec ) ! Number of record per days 164 IF( INT( zrec ) == nb_rec_per_day ) THEN 165 DO jn = 1, nb_rec_per_day 166 IF( jn <= 9 ) THEN 167 WRITE(cl1,'(i1)') jn 168 CALL iom_get( numrtr, jpdom_autoglo, 'qsr_arr_'//cl1, qsr_arr(:,:,jn) ) ! A mean of qsr 169 ELSE 170 WRITE(cl2,'(i2.2)') jn 171 CALL iom_get( numrtr, jpdom_autoglo, 'qsr_arr_'//cl2, qsr_arr(:,:,jn) ) ! A mean of qsr 172 ENDIF 173 ENDDO 174 ELSE 175 DO jn = 1, nb_rec_per_day 176 qsr_arr(:,:,jn) = qsr_mean(:,:) 177 ENDDO 178 ENDIF 170 179 ELSE !* no restart: set from nit000 values 171 180 IF(lwp) WRITE(numout,*) 'trc_qsr_mean: qsr_mean set to nit000 values' … … 184 193 llnew = ( rseclast - rsecfst ) .ge. rdt_sampl ! new shortwave to store 185 194 IF( llnew ) THEN 186 IF( lwp ) WRITE(numout,*) ' New shortwave to sample for TOP at time kt = ', kt, & 195 ktdcy = kt 196 IF( lwp .AND. kt < nittrc000 + 100 ) WRITE(numout,*) ' New shortwave to sample for TOP at time kt = ', ktdcy, & 187 197 & ' time = ', rseclast/3600.,'hours ' 188 198 rsecfst = rseclast … … 198 208 IF(lwp) WRITE(numout,*) 'trc_mean_qsr : write qsr_mean in restart file kt =', kt 199 209 IF(lwp) WRITE(numout,*) '~~~~~~~' 200 zkt = REAL( kt, wp ) 201 CALL iom_rstput( kt, nitrst, numrtw, 'ktdcy', zkt ) 210 zkt = REAL( ktdcy, 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 ) 202 214 DO jn = 1, nb_rec_per_day 203 215 IF( jn <= 9 ) THEN
Note: See TracChangeset
for help on using the changeset viewer.