- Timestamp:
- 2020-09-14T17:40:34+02:00 (4 years ago)
- Location:
- NEMO/branches/2019/dev_r11351_fldread_with_XIOS
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r11351_fldread_with_XIOS
- Property svn:externals
-
old new 3 3 ^/utils/build/mk@HEAD mk 4 4 ^/utils/tools@HEAD tools 5 ^/vendors/AGRIF/dev @HEADext/AGRIF5 ^/vendors/AGRIF/dev_r12970_AGRIF_CMEMS ext/AGRIF 6 6 ^/vendors/FCM@HEAD ext/FCM 7 7 ^/vendors/IOIPSL@HEAD ext/IOIPSL 8 9 # SETTE 10 ^/utils/CI/sette@13382 sette
-
- Property svn:externals
-
NEMO/branches/2019/dev_r11351_fldread_with_XIOS/src/OCE/DOM/dtatsd.F90
r11482 r13463 40 40 CHARACTER(lc), PUBLIC :: cinit_context !: context name used in xios 41 41 42 !! * Substitutions 43 # include "do_loop_substitute.h90" 42 44 !!---------------------------------------------------------------------- 43 45 !! NEMO/OCE 4.0 , NEMO Consortium (2018) … … 70 72 ierr0 = 0 ; ierr1 = 0 ; ierr2 = 0 ; ierr3 = 0 71 73 ! 72 REWIND( numnam_ref ) ! Namelist namtsd in reference namelist :73 74 READ ( numnam_ref, namtsd, IOSTAT = ios, ERR = 901) 74 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtsd in reference namelist', lwp ) 75 REWIND( numnam_cfg ) ! Namelist namtsd in configuration namelist : Parameters of the run 75 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtsd in reference namelist' ) 76 76 READ ( numnam_cfg, namtsd, IOSTAT = ios, ERR = 902 ) 77 902 IF( ios > 0 ) CALL ctl_nam ( ios , 'namtsd in configuration namelist' , lwp)77 902 IF( ios > 0 ) CALL ctl_nam ( ios , 'namtsd in configuration namelist' ) 78 78 IF(lwm) WRITE ( numond, namtsd ) 79 79 … … 166 166 IF( nn_cfg == 2 .AND. ln_tsd_dmp ) THEN ! some hand made alterations 167 167 ! 168 ij0 = 101 ; ij1 = 109! Reduced T & S in the Alboran Sea169 ii0 = 141 ; ii1 = 155168 ij0 = 101 + nn_hls ; ij1 = 109 + nn_hls ! Reduced T & S in the Alboran Sea 169 ii0 = 141 + nn_hls - 1 ; ii1 = 155 + nn_hls - 1 170 170 DO jj = mj0(ij0), mj1(ij1) 171 171 DO ji = mi0(ii0), mi1(ii1) … … 180 180 END DO 181 181 END DO 182 ij0 = 87 ; ij1 = 96! Reduced temperature in Red Sea183 ii0 = 148 ; ii1 = 160182 ij0 = 87 + nn_hls ; ij1 = 96 + nn_hls ! Reduced temperature in Red Sea 183 ii0 = 148 + nn_hls - 1 ; ii1 = 160 + nn_hls - 1 184 184 sf_tsd(jp_tem)%fnow( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) , 4:10 ) = 7.0_wp 185 185 sf_tsd(jp_tem)%fnow( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) , 11:13 ) = 6.5_wp … … 199 199 ENDIF 200 200 ! 201 DO jj = 1, jpj ! vertical interpolation of T & S 202 DO ji = 1, jpi 203 DO jk = 1, jpk ! determines the intepolated T-S profiles at each (i,j) points 204 zl = gdept_0(ji,jj,jk) 205 IF( zl < gdept_1d(1 ) ) THEN ! above the first level of data 206 ztp(jk) = ptsd(ji,jj,1 ,jp_tem) 207 zsp(jk) = ptsd(ji,jj,1 ,jp_sal) 208 ELSEIF( zl > gdept_1d(jpk) ) THEN ! below the last level of data 209 ztp(jk) = ptsd(ji,jj,jpkm1,jp_tem) 210 zsp(jk) = ptsd(ji,jj,jpkm1,jp_sal) 211 ELSE ! inbetween : vertical interpolation between jkk & jkk+1 212 DO jkk = 1, jpkm1 ! when gdept(jkk) < zl < gdept(jkk+1) 213 IF( (zl-gdept_1d(jkk)) * (zl-gdept_1d(jkk+1)) <= 0._wp ) THEN 214 zi = ( zl - gdept_1d(jkk) ) / (gdept_1d(jkk+1)-gdept_1d(jkk)) 215 ztp(jk) = ptsd(ji,jj,jkk,jp_tem) + ( ptsd(ji,jj,jkk+1,jp_tem) - ptsd(ji,jj,jkk,jp_tem) ) * zi 216 zsp(jk) = ptsd(ji,jj,jkk,jp_sal) + ( ptsd(ji,jj,jkk+1,jp_sal) - ptsd(ji,jj,jkk,jp_sal) ) * zi 217 ENDIF 218 END DO 219 ENDIF 220 END DO 221 DO jk = 1, jpkm1 222 ptsd(ji,jj,jk,jp_tem) = ztp(jk) * tmask(ji,jj,jk) ! mask required for mixed zps-s-coord 223 ptsd(ji,jj,jk,jp_sal) = zsp(jk) * tmask(ji,jj,jk) 224 END DO 225 ptsd(ji,jj,jpk,jp_tem) = 0._wp 226 ptsd(ji,jj,jpk,jp_sal) = 0._wp 201 DO_2D( 1, 1, 1, 1 ) 202 DO jk = 1, jpk ! determines the intepolated T-S profiles at each (i,j) points 203 zl = gdept_0(ji,jj,jk) 204 IF( zl < gdept_1d(1 ) ) THEN ! above the first level of data 205 ztp(jk) = ptsd(ji,jj,1 ,jp_tem) 206 zsp(jk) = ptsd(ji,jj,1 ,jp_sal) 207 ELSEIF( zl > gdept_1d(jpk) ) THEN ! below the last level of data 208 ztp(jk) = ptsd(ji,jj,jpkm1,jp_tem) 209 zsp(jk) = ptsd(ji,jj,jpkm1,jp_sal) 210 ELSE ! inbetween : vertical interpolation between jkk & jkk+1 211 DO jkk = 1, jpkm1 ! when gdept(jkk) < zl < gdept(jkk+1) 212 IF( (zl-gdept_1d(jkk)) * (zl-gdept_1d(jkk+1)) <= 0._wp ) THEN 213 zi = ( zl - gdept_1d(jkk) ) / (gdept_1d(jkk+1)-gdept_1d(jkk)) 214 ztp(jk) = ptsd(ji,jj,jkk,jp_tem) + ( ptsd(ji,jj,jkk+1,jp_tem) - ptsd(ji,jj,jkk,jp_tem) ) * zi 215 zsp(jk) = ptsd(ji,jj,jkk,jp_sal) + ( ptsd(ji,jj,jkk+1,jp_sal) - ptsd(ji,jj,jkk,jp_sal) ) * zi 216 ENDIF 217 END DO 218 ENDIF 227 219 END DO 228 END DO 220 DO jk = 1, jpkm1 221 ptsd(ji,jj,jk,jp_tem) = ztp(jk) * tmask(ji,jj,jk) ! mask required for mixed zps-s-coord 222 ptsd(ji,jj,jk,jp_sal) = zsp(jk) * tmask(ji,jj,jk) 223 END DO 224 ptsd(ji,jj,jpk,jp_tem) = 0._wp 225 ptsd(ji,jj,jpk,jp_sal) = 0._wp 226 END_2D 229 227 ! 230 228 ELSE !== z- or zps- coordinate ==! … … 234 232 ! 235 233 IF( ln_zps ) THEN ! zps-coordinate (partial steps) interpolation at the last ocean level 236 DO jj = 1, jpj 237 DO ji = 1, jpi 238 ik = mbkt(ji,jj) 239 IF( ik > 1 ) THEN 240 zl = ( gdept_1d(ik) - gdept_0(ji,jj,ik) ) / ( gdept_1d(ik) - gdept_1d(ik-1) ) 241 ptsd(ji,jj,ik,jp_tem) = (1.-zl) * ptsd(ji,jj,ik,jp_tem) + zl * ptsd(ji,jj,ik-1,jp_tem) 242 ptsd(ji,jj,ik,jp_sal) = (1.-zl) * ptsd(ji,jj,ik,jp_sal) + zl * ptsd(ji,jj,ik-1,jp_sal) 243 ENDIF 244 ik = mikt(ji,jj) 245 IF( ik > 1 ) THEN 246 zl = ( gdept_0(ji,jj,ik) - gdept_1d(ik) ) / ( gdept_1d(ik+1) - gdept_1d(ik) ) 247 ptsd(ji,jj,ik,jp_tem) = (1.-zl) * ptsd(ji,jj,ik,jp_tem) + zl * ptsd(ji,jj,ik+1,jp_tem) 248 ptsd(ji,jj,ik,jp_sal) = (1.-zl) * ptsd(ji,jj,ik,jp_sal) + zl * ptsd(ji,jj,ik+1,jp_sal) 249 END IF 250 END DO 251 END DO 234 DO_2D( 1, 1, 1, 1 ) 235 ik = mbkt(ji,jj) 236 IF( ik > 1 ) THEN 237 zl = ( gdept_1d(ik) - gdept_0(ji,jj,ik) ) / ( gdept_1d(ik) - gdept_1d(ik-1) ) 238 ptsd(ji,jj,ik,jp_tem) = (1.-zl) * ptsd(ji,jj,ik,jp_tem) + zl * ptsd(ji,jj,ik-1,jp_tem) 239 ptsd(ji,jj,ik,jp_sal) = (1.-zl) * ptsd(ji,jj,ik,jp_sal) + zl * ptsd(ji,jj,ik-1,jp_sal) 240 ENDIF 241 ik = mikt(ji,jj) 242 IF( ik > 1 ) THEN 243 zl = ( gdept_0(ji,jj,ik) - gdept_1d(ik) ) / ( gdept_1d(ik+1) - gdept_1d(ik) ) 244 ptsd(ji,jj,ik,jp_tem) = (1.-zl) * ptsd(ji,jj,ik,jp_tem) + zl * ptsd(ji,jj,ik+1,jp_tem) 245 ptsd(ji,jj,ik,jp_sal) = (1.-zl) * ptsd(ji,jj,ik,jp_sal) + zl * ptsd(ji,jj,ik+1,jp_sal) 246 END IF 247 END_2D 252 248 ENDIF 253 249 !
Note: See TracChangeset
for help on using the changeset viewer.