- Timestamp:
- 2021-06-17T19:17:25+02:00 (3 years ago)
- Location:
- NEMO/branches/2021/ticket2680_C1D_PAPA
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2021/ticket2680_C1D_PAPA
- Property svn:externals
-
old new 9 9 10 10 # SETTE 11 ^/utils/CI/sette@14244 sette 11 ^/utils/CI/sette@HEAD sette 12
-
- Property svn:externals
-
NEMO/branches/2021/ticket2680_C1D_PAPA/tests/ISOMIP+/MY_SRC/dtatsd.F90
r14857 r15015 6 6 !! History : OPA ! 1991-03 () Original code 7 7 !! - ! 1992-07 (M. Imbard) 8 !! 8.0 ! 1999-10 (M.A. Foujols, M. Imbard) NetCDF FORMAT 9 !! NEMO 1.0 ! 2002-06 (G. Madec) F90: Free form and module 8 !! 8.0 ! 1999-10 (M.A. Foujols, M. Imbard) NetCDF FORMAT 9 !! NEMO 1.0 ! 2002-06 (G. Madec) F90: Free form and module 10 10 !! 3.3 ! 2010-10 (C. Bricaud, S. Masson) use of fldread 11 11 !! 3.4 ! 2010-11 (G. Madec, C. Ethe) Merge of dtatem and dtasal + remove CPP keys … … 49 49 !!---------------------------------------------------------------------- 50 50 !! *** ROUTINE dta_tsd_init *** 51 !! 52 !! ** Purpose : initialisation of T & S input data 53 !! 51 !! 52 !! ** Purpose : initialisation of T & S input data 53 !! 54 54 !! ** Method : - Read namtsd namelist 55 !! - allocates T & S data structure 55 !! - allocates T & S data structure 56 56 !!---------------------------------------------------------------------- 57 57 LOGICAL, INTENT(in), OPTIONAL :: ld_tradmp ! force the initialization when tradp is used … … 77 77 78 78 IF( PRESENT( ld_tradmp ) ) ln_tsd_dmp = .TRUE. ! forces the initialization when tradmp is used 79 79 80 80 IF(lwp) THEN ! control print 81 81 WRITE(numout,*) … … 114 114 CALL ctl_stop( 'dta_tsd : unable to allocate T & S data arrays' ) ; RETURN 115 115 ENDIF 116 !117 116 ! ! fill sf_tsd with sn_tem & sn_sal and control print 118 117 slf_i(jp_tem) = sn_tem ; slf_i(jp_sal) = sn_sal … … 150 149 !!---------------------------------------------------------------------- 151 150 !! *** ROUTINE dta_tsd *** 152 !! 151 !! 153 152 !! ** Purpose : provides T and S data at kt 154 !! 153 !! 155 154 !! ** Method : - call fldread routine 156 !! - ORCA_R2: add some hand made alteration to read data 155 !! - ORCA_R2: add some hand made alteration to read data 157 156 !! - 'key_orca_lev10' interpolates on 10 times more levels 158 157 !! - s- or mixed z-s coordinate: vertical interpolation on model mesh … … 162 161 !! ** Action : ptsd T-S data on medl mesh and interpolated at time-step kt 163 162 !!---------------------------------------------------------------------- 164 INTEGER 165 CHARACTER(LEN=3) 163 INTEGER , INTENT(in ) :: kt ! ocean time-step 164 CHARACTER(LEN=3) , INTENT(in ) :: cddta ! dmp or ini 166 165 REAL(wp), DIMENSION(A2D(nn_hls),jpk,jpts), INTENT( out) :: ptsd ! T & S data 167 166 ! … … 224 223 IF( (zl-gdept_1d(jkk)) * (zl-gdept_1d(jkk+1)) <= 0._wp ) THEN 225 224 zi = ( zl - gdept_1d(jkk) ) / (gdept_1d(jkk+1)-gdept_1d(jkk)) 226 ztp(jk) = ptsd(ji,jj,jkk,jp_tem) + ( ptsd(ji,jj,jkk+1,jp_tem) - ptsd(ji,jj,jkk,jp_tem) ) * zi 225 ztp(jk) = ptsd(ji,jj,jkk,jp_tem) + ( ptsd(ji,jj,jkk+1,jp_tem) - ptsd(ji,jj,jkk,jp_tem) ) * zi 227 226 zsp(jk) = ptsd(ji,jj,jkk,jp_sal) + ( ptsd(ji,jj,jkk+1,jp_sal) - ptsd(ji,jj,jkk,jp_sal) ) * zi 228 227 ENDIF … … 237 236 ptsd(ji,jj,jpk,jp_sal) = 0._wp 238 237 END_2D 239 ! 238 ! 240 239 ELSE !== z- or zps- coordinate ==! 241 ! 240 ! 242 241 DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, jpk ) 243 242 ptsd(ji,jj,jk,jp_tem) = ptsd(ji,jj,jk,jp_tem) * tmask(ji,jj,jk) ! Mask … … 247 246 IF( ln_zps ) THEN ! zps-coordinate (partial steps) interpolation at the last ocean level 248 247 DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) 249 ik = mbkt(ji,jj) 248 ik = mbkt(ji,jj) 250 249 IF( ik > 1 ) THEN 251 250 zl = ( gdept_1d(ik) - gdept_0(ji,jj,ik) ) / ( gdept_1d(ik) - gdept_1d(ik-1) ) … … 255 254 ik = mikt(ji,jj) 256 255 IF( ik > 1 ) THEN 257 zl = ( gdept_0(ji,jj,ik) - gdept_1d(ik) ) / ( gdept_1d(ik+1) - gdept_1d(ik) ) 256 zl = ( gdept_0(ji,jj,ik) - gdept_1d(ik) ) / ( gdept_1d(ik+1) - gdept_1d(ik) ) 258 257 ptsd(ji,jj,ik,jp_tem) = (1.-zl) * ptsd(ji,jj,ik,jp_tem) + zl * ptsd(ji,jj,ik+1,jp_tem) 259 258 ptsd(ji,jj,ik,jp_sal) = (1.-zl) * ptsd(ji,jj,ik,jp_sal) + zl * ptsd(ji,jj,ik+1,jp_sal)
Note: See TracChangeset
for help on using the changeset viewer.