Changeset 7442 for branches/2016/dev_merge_2016
- Timestamp:
- 2016-12-02T12:46:31+01:00 (8 years ago)
- Location:
- branches/2016/dev_merge_2016/NEMOGCM/NEMO/TOP_SRC
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2016/dev_merge_2016/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zche.F90
r7421 r7442 34 34 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: chemo2 ! Solubilities of O2 and CO2 35 35 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) :: fesol ! solubility of Fe 36 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: tempis ! In situ temperature37 36 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: salinprac ! Practical salinity 38 37 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: tempis ! In situ temperature -
branches/2016/dev_merge_2016/NEMOGCM/NEMO/TOP_SRC/trcdta.F90
r7421 r7442 159 159 160 160 161 SUBROUTINE trc_dta( kt, sf_trcdta, ztrcfac, ztrcdta)161 SUBROUTINE trc_dta( kt, sf_trcdta, ptrcfac, ptrcdta) 162 162 !!---------------------------------------------------------------------- 163 163 !! *** ROUTINE trc_dta *** … … 173 173 INTEGER , INTENT(in ) :: kt ! ocean time-step 174 174 TYPE(FLD), DIMENSION(1) , INTENT(inout) :: sf_trcdta ! array of information on the field to read 175 REAL(wp) , INTENT(in ) :: ztrcfac ! multiplication factor176 REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout ) :: ztrcdta ! 3D data array175 REAL(wp) , INTENT(in ) :: ptrcfac ! multiplication factor 176 REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout ) :: ptrcdta ! 3D data array 177 177 ! 178 178 INTEGER :: ji, jj, jk, jl, jkk, ik ! dummy loop indices 179 179 REAL(wp):: zl, zi 180 180 REAL(wp), DIMENSION(jpk) :: ztp ! 1D workspace 181 REAL(wp), POINTER, DIMENSION(:,:,:) :: ztrcdta ! 3D workspace182 181 CHARACTER(len=100) :: clndta 183 182 !!---------------------------------------------------------------------- … … 189 188 ! read data at kt time step 190 189 CALL fld_read( kt, 1, sf_trcdta ) 191 ztrcdta(:,:,:) = sf_trcdta(1)%fnow(:,:,:) * tmask(:,:,:)190 ptrcdta(:,:,:) = sf_trcdta(1)%fnow(:,:,:) * tmask(:,:,:) 192 191 ! 193 192 IF( ln_sco ) THEN !== s- or mixed s-zps-coordinate ==! … … 202 201 zl = gdept_n(ji,jj,jk) 203 202 IF( zl < gdept_1d(1 ) ) THEN ! above the first level of data 204 ztp(jk) = ztrcdta(ji,jj,1)203 ztp(jk) = ptrcdta(ji,jj,1) 205 204 ELSEIF( zl > gdept_1d(jpk) ) THEN ! below the last level of data 206 ztp(jk) = ztrcdta(ji,jj,jpkm1)205 ztp(jk) = ptrcdta(ji,jj,jpkm1) 207 206 ELSE ! inbetween : vertical interpolation between jkk & jkk+1 208 207 DO jkk = 1, jpkm1 ! when gdept(jkk) < zl < gdept(jkk+1) 209 208 IF( (zl-gdept_1d(jkk)) * (zl-gdept_1d(jkk+1)) <= 0._wp ) THEN 210 209 zi = ( zl - gdept_1d(jkk) ) / (gdept_1d(jkk+1)-gdept_1d(jkk)) 211 ztp(jk) = ztrcdta(ji,jj,jkk) + ( ztrcdta(ji,jj,jkk+1) - ztrcdta(ji,jj,jkk) ) * zi210 ztp(jk) = ptrcdta(ji,jj,jkk) + ( ptrcdta(ji,jj,jkk+1) - ptrcdta(ji,jj,jkk) ) * zi 212 211 ENDIF 213 212 END DO … … 215 214 END DO 216 215 DO jk = 1, jpkm1 217 ztrcdta(ji,jj,jk) = ztp(jk) * tmask(ji,jj,jk) ! mask required for mixed zps-s-coord216 ptrcdta(ji,jj,jk) = ztp(jk) * tmask(ji,jj,jk) ! mask required for mixed zps-s-coord 218 217 END DO 219 ztrcdta(ji,jj,jpk) = 0._wp218 ptrcdta(ji,jj,jpk) = 0._wp 220 219 END DO 221 220 END DO … … 229 228 IF( ik > 1 ) THEN 230 229 zl = ( gdept_1d(ik) - gdept_n(ji,jj,ik) ) / ( gdept_1d(ik) - gdept_1d(ik-1) ) 231 ztrcdta(ji,jj,ik) = (1.-zl) * ztrcdta(ji,jj,ik) + zl * ztrcdta(ji,jj,ik-1)230 ptrcdta(ji,jj,ik) = (1.-zl) * ptrcdta(ji,jj,ik) + zl * ptrcdta(ji,jj,ik-1) 232 231 ENDIF 233 232 ik = mikt(ji,jj) 234 233 IF( ik > 1 ) THEN 235 234 zl = ( gdept_n(ji,jj,ik) - gdept_1d(ik) ) / ( gdept_1d(ik+1) - gdept_1d(ik) ) 236 ztrcdta(ji,jj,ik) = (1.-zl) * ztrcdta(ji,jj,ik) + zl * ztrcdta(ji,jj,ik+1)235 ptrcdta(ji,jj,ik) = (1.-zl) * ptrcdta(ji,jj,ik) + zl * ptrcdta(ji,jj,ik+1) 237 236 ENDIF 238 237 END DO … … 243 242 ! 244 243 ! Scale by multiplicative factor 245 ztrcdta(:,:,:) = ztrcdta(:,:,:) * ztrcfac244 ptrcdta(:,:,:) = ptrcdta(:,:,:) * ptrcfac 246 245 ! 247 246 ENDIF … … 256 255 !!---------------------------------------------------------------------- 257 256 CONTAINS 258 SUBROUTINE trc_dta( kt, sf_trcdta, ztrcfac, ztrcdta) ! Empty routine257 SUBROUTINE trc_dta( kt, sf_trcdta, ptrcfac, ptrcdta) ! Empty routine 259 258 WRITE(*,*) 'trc_dta: You should not have seen this print! error?', kt 260 259 END SUBROUTINE trc_dta
Note: See TracChangeset
for help on using the changeset viewer.