Changeset 12377 for NEMO/trunk/src/TOP/trcdta.F90
- Timestamp:
- 2020-02-12T15:39:06+01:00 (4 years ago)
- Location:
- NEMO/trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/trunk
- Property svn:externals
-
old new 3 3 ^/utils/build/mk@HEAD mk 4 4 ^/utils/tools@HEAD tools 5 ^/vendors/AGRIF/dev @HEAD ext/AGRIF5 ^/vendors/AGRIF/dev_r11615_ENHANCE-04_namelists_as_internalfiles_agrif@HEAD ext/AGRIF 6 6 ^/vendors/FCM@HEAD ext/FCM 7 7 ^/vendors/IOIPSL@HEAD ext/IOIPSL
-
- Property svn:externals
-
NEMO/trunk/src/TOP/trcdta.F90
r11536 r12377 39 39 !$AGRIF_END_DO_NOT_TREAT 40 40 41 !! Substitutions 42 #include "do_loop_substitute.h90" 41 43 !!---------------------------------------------------------------------- 42 44 !! NEMO/TOP 4.0 , NEMO Consortium (2018) … … 98 100 ENDIF 99 101 ! 100 REWIND( numnat_ref ) ! Namelist namtrc_dta in reference namelist : Passive tracer input data101 102 READ ( numnat_ref, namtrc_dta, IOSTAT = ios, ERR = 901) 102 103 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc_dta_ini in reference namelist' ) 103 REWIND( numnat_cfg ) ! Namelist namtrc_dta in configuration namelist : Passive tracer input data104 104 READ ( numnat_cfg, namtrc_dta, IOSTAT = ios, ERR = 902 ) 105 105 902 IF( ios > 0 ) CALL ctl_nam ( ios , 'namtrc_dta_ini in configuration namelist' ) … … 154 154 155 155 156 SUBROUTINE trc_dta( kt, sf_trcdta, ptrcfac, ptrcdta)156 SUBROUTINE trc_dta( kt, Kmm, sf_trcdta, ptrcfac, ptrcdta) 157 157 !!---------------------------------------------------------------------- 158 158 !! *** ROUTINE trc_dta *** … … 167 167 !!---------------------------------------------------------------------- 168 168 INTEGER , INTENT(in ) :: kt ! ocean time-step 169 INTEGER , INTENT(in ) :: Kmm ! time level index 169 170 TYPE(FLD), DIMENSION(1) , INTENT(inout) :: sf_trcdta ! array of information on the field to read 170 171 REAL(wp) , INTENT(in ) :: ptrcfac ! multiplication factor … … 178 179 ! 179 180 IF( ln_timing ) CALL timing_start('trc_dta') 181 ! 182 IF( kt == nit000 .AND. lwp) THEN 183 WRITE(numout,*) 184 WRITE(numout,*) 'trc_dta : passive tracers data for IC' 185 WRITE(numout,*) '~~~~~~~ ' 186 ENDIF 180 187 ! 181 188 IF( nb_trcdta > 0 ) THEN … … 191 198 WRITE(numout,*) 'trc_dta: interpolates passive tracer data onto the s- or mixed s-z-coordinate mesh' 192 199 ENDIF 193 DO jj = 1, jpj ! vertical interpolation of T & S 194 DO ji = 1, jpi 195 DO jk = 1, jpk ! determines the intepolated T-S profiles at each (i,j) points 196 zl = gdept_n(ji,jj,jk) 197 IF( zl < gdept_1d(1 ) ) THEN ! above the first level of data 198 ztp(jk) = ptrcdta(ji,jj,1) 199 ELSEIF( zl > gdept_1d(jpk) ) THEN ! below the last level of data 200 ztp(jk) = ptrcdta(ji,jj,jpkm1) 201 ELSE ! inbetween : vertical interpolation between jkk & jkk+1 202 DO jkk = 1, jpkm1 ! when gdept(jkk) < zl < gdept(jkk+1) 203 IF( (zl-gdept_1d(jkk)) * (zl-gdept_1d(jkk+1)) <= 0._wp ) THEN 204 zi = ( zl - gdept_1d(jkk) ) / (gdept_1d(jkk+1)-gdept_1d(jkk)) 205 ztp(jk) = ptrcdta(ji,jj,jkk) + ( ptrcdta(ji,jj,jkk+1) - ptrcdta(ji,jj,jkk) ) * zi 206 ENDIF 207 END DO 208 ENDIF 209 END DO 210 DO jk = 1, jpkm1 211 ptrcdta(ji,jj,jk) = ztp(jk) * tmask(ji,jj,jk) ! mask required for mixed zps-s-coord 212 END DO 213 ptrcdta(ji,jj,jpk) = 0._wp 214 END DO 215 END DO 200 DO_2D_11_11 201 DO jk = 1, jpk ! determines the intepolated T-S profiles at each (i,j) points 202 zl = gdept(ji,jj,jk,Kmm) 203 IF( zl < gdept_1d(1 ) ) THEN ! above the first level of data 204 ztp(jk) = ptrcdta(ji,jj,1) 205 ELSEIF( zl > gdept_1d(jpk) ) THEN ! below the last level of data 206 ztp(jk) = ptrcdta(ji,jj,jpkm1) 207 ELSE ! inbetween : vertical interpolation between jkk & jkk+1 208 DO jkk = 1, jpkm1 ! when gdept(jkk) < zl < gdept(jkk+1) 209 IF( (zl-gdept_1d(jkk)) * (zl-gdept_1d(jkk+1)) <= 0._wp ) THEN 210 zi = ( zl - gdept_1d(jkk) ) / (gdept_1d(jkk+1)-gdept_1d(jkk)) 211 ztp(jk) = ptrcdta(ji,jj,jkk) + ( ptrcdta(ji,jj,jkk+1) - ptrcdta(ji,jj,jkk) ) * zi 212 ENDIF 213 END DO 214 ENDIF 215 END DO 216 DO jk = 1, jpkm1 217 ptrcdta(ji,jj,jk) = ztp(jk) * tmask(ji,jj,jk) ! mask required for mixed zps-s-coord 218 END DO 219 ptrcdta(ji,jj,jpk) = 0._wp 220 END_2D 216 221 ! 217 222 ELSE !== z- or zps- coordinate ==!
Note: See TracChangeset
for help on using the changeset viewer.