- Timestamp:
- 2017-03-23T15:36:14+01:00 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/dev_r5518_nemo_fabm_ukmo/NEMOGCM/NEMO/TOP_SRC/trcstp.F90
r7827 r7829 32 32 REAL(wp), DIMENSION(:,:,:), SAVE, ALLOCATABLE :: qsr_arr ! save qsr during TOP time-step 33 33 REAL(wp) :: rdt_sampl 34 INTEGER :: nb_rec_per_day s34 INTEGER :: nb_rec_per_day 35 35 INTEGER :: isecfst, iseclast 36 36 LOGICAL :: llnew … … 100 100 IF( lrst_trc ) CALL trc_rst_wri ( kt ) ! write tracer restart file 101 101 IF( lk_trdmxl_trc ) CALL trd_mxl_trc ( kt ) ! trends: Mixed-layer 102 #if defined key_tracer_budget 103 !slwa tracer budget 104 IF( lk_iomput ) CALL trc_wri (kt, 2) 105 #endif 102 106 ! 103 107 IF( nn_dttrc /= 1 ) CALL trc_sub_reset( kt ) ! resetting physical variables when sub-stepping … … 123 127 !! of diurnal cycle 124 128 !! 125 !! ** Method : store in TOP the qsr every hour ( or every time-step the latter129 !! ** Method : store in TOP the qsr every hour ( or every time-step if the latter 126 130 !! is greater than 1 hour ) and then, compute the mean with 127 131 !! a moving average over 24 hours. … … 134 138 IF( ln_cpl ) THEN 135 139 rdt_sampl = 86400. / ncpl_qsr_freq 136 nb_rec_per_day s= ncpl_qsr_freq140 nb_rec_per_day = ncpl_qsr_freq 137 141 ELSE 138 142 rdt_sampl = MAX( 3600., rdt * nn_dttrc ) 139 nb_rec_per_day s= INT( 86400 / rdt_sampl )143 nb_rec_per_day = INT( 86400 / rdt_sampl ) 140 144 ENDIF 141 145 ! 142 146 IF( lwp ) THEN 143 147 WRITE(numout,*) 144 WRITE(numout,*) ' Sampling frequency dt = ', rdt_sampl, 's',' Number of sampling per day nrec = ', nb_rec_per_day s148 WRITE(numout,*) ' Sampling frequency dt = ', rdt_sampl, 's',' Number of sampling per day nrec = ', nb_rec_per_day 145 149 WRITE(numout,*) 146 150 ENDIF 147 151 ! 148 ALLOCATE( qsr_arr(jpi,jpj,nb_rec_per_days ) ) 149 DO jn = 1, nb_rec_per_days 150 qsr_arr(:,:,jn) = qsr(:,:) 152 ! !* Restart: read in restart file 153 IF( ln_rsttr .AND. iom_varid( numrtr, 'qsr_mean', ldstop = .FALSE. ) > 0 ) THEN 154 IF(lwp) WRITE(numout,*) 'trc_qsr_mean: qsr_mean read in the restart file' 155 CALL iom_get( numrtr, jpdom_autoglo, 'qsr_mean', qsr_mean ) ! A mean of qsr 156 ELSE !* no restart: set from nit000 values 157 IF(lwp) WRITE(numout,*) 'trc_qsr_mean: qsr_mean set to nit000 values' 158 qsr_mean(:,:) = qsr(:,:) 159 ENDIF 160 ! 161 ALLOCATE( qsr_arr(jpi,jpj,nb_rec_per_day ) ) 162 DO jn = 1, nb_rec_per_day 163 qsr_arr(:,:,jn) = qsr_mean(:,:) 151 164 ENDDO 152 qsr_mean(:,:) = qsr(:,:)153 165 ! 154 166 isecfst = nsec_year + nsec1jan000 ! number of seconds between Jan. 1st 00h of nit000 year and the middle of time step … … 163 175 & ' time = ', (iseclast+rdt*nn_dttrc/2.)/3600.,'hours ' 164 176 isecfst = iseclast 165 DO jn = 1, nb_rec_per_day s- 1177 DO jn = 1, nb_rec_per_day - 1 166 178 qsr_arr(:,:,jn) = qsr_arr(:,:,jn+1) 167 179 ENDDO 168 qsr_arr (:,:,nb_rec_per_days) = qsr(:,:) 169 qsr_mean(:,: ) = SUM( qsr_arr(:,:,:), 3 ) / nb_rec_per_days 170 ENDIF 171 ! 180 qsr_arr (:,:,nb_rec_per_day) = qsr(:,:) 181 qsr_mean(:,: ) = SUM( qsr_arr(:,:,:), 3 ) / nb_rec_per_day 182 ENDIF 183 ! 184 IF( lrst_trc ) THEN !* Write the mean of qsr in restart file 185 IF(lwp) WRITE(numout,*) 186 IF(lwp) WRITE(numout,*) 'trc_mean_qsr : write qsr_mean in restart file kt =', kt 187 IF(lwp) WRITE(numout,*) '~~~~~~~' 188 CALL iom_rstput( kt, nitrst, numrtw, 'qsr_mean', qsr_mean(:,:) ) 189 ENDIF 190 ! 172 191 END SUBROUTINE trc_mean_qsr 173 192
Note: See TracChangeset
for help on using the changeset viewer.