Changeset 2861
- Timestamp:
- 2011-09-26T13:49:48+02:00 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2011/dev_r2787_LOCEAN_offline_fldread/NEMOGCM/NEMO/OFF_SRC/dtadyn.F90
r2821 r2861 124 124 125 125 isecsbc = nsec_year + nsec1jan000 126 127 IF( kt /= nit000 ) THEN 128 nrecprev_tem = sf_dyn(jf_tem)%nrec_a(2) 129 nrecprev_uwd = sf_dyn(jf_uwd)%nrec_a(2) 130 ENDIF 131 132 CALL fld_read( kt, 1, sf_dyn ) !== read data at kt time step ==! 133 126 ! 127 IF( kt == nit000 ) THEN 128 nrecprev_tem = 0 129 nrecprev_uwd = 0 130 ! 131 CALL fld_read( kt, 1, sf_dyn ) !== read data at kt time step ==! 132 ! 133 IF( lk_ldfslp .AND. sf_dyn(jf_tem)%ln_tint ) THEN ! Computes slopes (here avt is used as workspace) 134 zts(:,:,:,jf_tem) = sf_dyn(jf_tem)%fdta(:,:,:,1) * tmask(:,:,:) ! temperature 135 zts(:,:,:,jf_sal) = sf_dyn(jf_sal)%fdta(:,:,:,1) * tmask(:,:,:) ! salinity 136 avt(:,:,:) = sf_dyn(jf_avt)%fdta(:,:,:,1) * tmask(:,:,:) ! vertical diffusive coef. 137 CALL dta_dyn_slp( kt, zts, zuslp, zvslp, zwslpi, zwslpj ) 138 uslpdta (:,:,:,1) = zuslp (:,:,:) 139 vslpdta (:,:,:,1) = zvslp (:,:,:) 140 wslpidta(:,:,:,1) = zwslpi(:,:,:) 141 wslpjdta(:,:,:,1) = zwslpj(:,:,:) 142 ENDIF 143 IF( ln_dynwzv .AND. sf_dyn(jf_uwd)%ln_tint ) THEN ! compute vertical velocity from u/v 144 zu(:,:,:) = sf_dyn(jf_uwd)%fdta(:,:,:,1) 145 zv(:,:,:) = sf_dyn(jf_vwd)%fdta(:,:,:,1) 146 CALL dta_dyn_wzv( zu, zv, zw ) 147 wdta(:,:,:,1) = zw(:,:,:) * tmask(:,:,:) 148 ENDIF 149 ELSE 150 nrecprev_tem = sf_dyn(jf_tem)%nrec_a(2) 151 nrecprev_uwd = sf_dyn(jf_uwd)%nrec_a(2) 152 ! 153 CALL fld_read( kt, 1, sf_dyn ) !== read data at kt time step ==! 154 ! 155 ENDIF 134 156 ! 135 157 IF( lk_ldfslp ) THEN ! Computes slopes (here avt is used as workspace) … … 140 162 write(numout,*) ' Compute new slopes at kt = ', kt 141 163 IF( sf_dyn(jf_tem)%ln_tint ) THEN ! time interpolation of data 142 uslpdta (:,:,:,1) = uslpdta (:,:,:,2) ! swap the data 143 vslpdta (:,:,:,1) = vslpdta (:,:,:,2) 144 wslpidta(:,:,:,1) = wslpidta(:,:,:,2) 145 wslpjdta(:,:,:,1) = wslpjdta(:,:,:,2) 164 IF( kt /= nit000 ) THEN 165 uslpdta (:,:,:,1) = uslpdta (:,:,:,2) ! swap the data 166 vslpdta (:,:,:,1) = vslpdta (:,:,:,2) 167 wslpidta(:,:,:,1) = wslpidta(:,:,:,2) 168 wslpjdta(:,:,:,1) = wslpjdta(:,:,:,2) 169 ENDIF 146 170 ! 147 171 zts(:,:,:,jf_tem) = sf_dyn(jf_tem)%fdta(:,:,:,2) * tmask(:,:,:) ! temperature … … 149 173 avt(:,:,:) = sf_dyn(jf_avt)%fdta(:,:,:,2) * tmask(:,:,:) ! vertical diffusive coef. 150 174 CALL dta_dyn_slp( kt, zts, zuslp, zvslp, zwslpi, zwslpj ) 175 ! 151 176 uslpdta (:,:,:,2) = zuslp (:,:,:) 152 177 vslpdta (:,:,:,2) = zvslp (:,:,:) … … 184 209 IF( kt /= nit000 .AND. ( sf_dyn(jf_uwd)%nrec_a(2) - nrecprev_uwd ) /= 0 ) iswap_uwd = 1 185 210 IF( ( isecsbc > sf_dyn(jf_uwd)%nrec_b(2) .AND. iswap_uwd == 1 ) .OR. kt == nit000 ) THEN ! read/update the after data 211 write(numout,*) 186 212 write(numout,*) ' Compute new vertical velocity at kt = ', kt 187 213 write(numout,*) 188 214 IF( sf_dyn(jf_uwd)%ln_tint ) THEN ! time interpolation of data 189 wdta(:,:,:,1) = wdta(:,:,:,2) ! swap the data 215 IF( kt /= nit000 ) THEN 216 wdta(:,:,:,1) = wdta(:,:,:,2) ! swap the data for initialisation 217 ENDIF 190 218 zu(:,:,:) = sf_dyn(jf_uwd)%fdta(:,:,:,2) 191 219 zv(:,:,:) = sf_dyn(jf_vwd)%fdta(:,:,:,2) … … 438 466 ENDIF 439 467 ! 440 nrecprev_tem = 0441 nrecprev_uwd = 0442 !443 468 CALL dta_dyn( nit000 ) 444 469 !
Note: See TracChangeset
for help on using the changeset viewer.