Changeset 4280
- Timestamp:
- 2013-11-20T11:17:17+01:00 (10 years ago)
- Location:
- branches/2013/dev_r3858_NOC_ZTC/NEMOGCM/NEMO
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2013/dev_r3858_NOC_ZTC/NEMOGCM/NEMO/OFF_SRC/domrea.F90
r3862 r4280 25 25 26 26 PUBLIC dom_rea ! routine called by inidom.F90 27 !! * Substitutions 28 # include "domzgr_substitute.h90" 27 29 !!---------------------------------------------------------------------- 28 30 !! NEMO/OFF 3.3 , NEMO Consortium (2010) … … 173 175 CALL iom_get( inum4, jpdom_unknown, 'esigw', esigw ) 174 176 175 CALL iom_get( inum4, jpdom_data, 'e3t', e3t) ! scale factors176 CALL iom_get( inum4, jpdom_data, 'e3u', e3u)177 CALL iom_get( inum4, jpdom_data, 'e3v', e3v)178 CALL iom_get( inum4, jpdom_data, 'e3w', e3w)177 CALL iom_get( inum4, jpdom_data, 'e3t', fse3t_n(:,:,:) ) ! scale factors 178 CALL iom_get( inum4, jpdom_data, 'e3u', fse3u_n(:,:,:) ) 179 CALL iom_get( inum4, jpdom_data, 'e3v', fse3v_n(:,:,:) ) 180 CALL iom_get( inum4, jpdom_data, 'e3w', fse3w_n(:,:,:) ) 179 181 180 182 CALL iom_get( inum4, jpdom_unknown, 'gdept_1d', gdept_1d ) ! depth … … 190 192 ! 191 193 IF( nmsh <= 6 ) THEN ! 3D vertical scale factors 192 CALL iom_get( inum4, jpdom_data, 'e3t', e3t)193 CALL iom_get( inum4, jpdom_data, 'e3u', e3u)194 CALL iom_get( inum4, jpdom_data, 'e3v', e3v)195 CALL iom_get( inum4, jpdom_data, 'e3w', e3w)194 CALL iom_get( inum4, jpdom_data, 'e3t', fse3t_n(:,:,:) ) 195 CALL iom_get( inum4, jpdom_data, 'e3u', fse3u_n(:,:,:) ) 196 CALL iom_get( inum4, jpdom_data, 'e3v', fse3v_n(:,:,:) ) 197 CALL iom_get( inum4, jpdom_data, 'e3w', fse3w_n(:,:,:) ) 196 198 ELSE ! 2D bottom scale factors 197 199 CALL iom_get( inum4, jpdom_data, 'e3t_ps', e3tp ) … … 199 201 ! ! deduces the 3D scale factors 200 202 DO jk = 1, jpk 201 e3t(:,:,jk) = e3t_1d(jk) ! set to the ref. factors202 e3u(:,:,jk) = e3t_1d(jk)203 e3v(:,:,jk) = e3t_1d(jk)204 e3w(:,:,jk) = e3w_1d(jk)203 fse3t_n(:,:,jk) = e3t_1d(jk) ! set to the ref. factors 204 fse3u_n(:,:,jk) = e3t_1d(jk) 205 fse3v_n(:,:,jk) = e3t_1d(jk) 206 fse3w_n(:,:,jk) = e3w_1d(jk) 205 207 END DO 206 208 DO jj = 1,jpj ! adjust the deepest values 207 209 DO ji = 1,jpi 208 210 ik = mbkt(ji,jj) 209 e3t(ji,jj,ik) = e3tp(ji,jj) * tmask(ji,jj,1) + e3t_1d(1) * ( 1._wp - tmask(ji,jj,1) )210 e3w(ji,jj,ik) = e3wp(ji,jj) * tmask(ji,jj,1) + e3w_1d(1) * ( 1._wp - tmask(ji,jj,1) )211 fse3t_n(ji,jj,ik) = e3tp(ji,jj) * tmask(ji,jj,1) + e3t_1d(1) * ( 1._wp - tmask(ji,jj,1) ) 212 fse3w_n(ji,jj,ik) = e3wp(ji,jj) * tmask(ji,jj,1) + e3w_1d(1) * ( 1._wp - tmask(ji,jj,1) ) 211 213 END DO 212 214 END DO … … 214 216 DO jj = 1, jpjm1 215 217 DO ji = 1, jpim1 216 e3u(ji,jj,jk) = MIN( e3t(ji,jj,jk), e3t(ji+1,jj,jk) )217 e3v(ji,jj,jk) = MIN( e3t(ji,jj,jk), e3t(ji,jj+1,jk) )218 fse3u_n(ji,jj,jk) = MIN( fse3t_n(ji,jj,jk), fse3t_n(ji+1,jj,jk) ) 219 fse3v_n(ji,jj,jk) = MIN( fse3t_n(ji,jj,jk), fse3t_n(ji,jj+1,jk) ) 218 220 END DO 219 221 END DO 220 222 END DO 221 CALL lbc_lnk( e3u , 'U', 1._wp ) ; CALL lbc_lnk( e3uw, 'U', 1._wp ) ! lateral boundary conditions222 CALL lbc_lnk( e3v , 'V', 1._wp ) ; CALL lbc_lnk( e3vw, 'V', 1._wp )223 CALL lbc_lnk( fse3u_n(:,:,:) , 'U', 1._wp ) ; CALL lbc_lnk( fse3uw_n(:,:,:), 'U', 1._wp ) ! lateral boundary conditions 224 CALL lbc_lnk( fse3v_n(:,:,:) , 'V', 1._wp ) ; CALL lbc_lnk( fse3vw_n(:,:,:), 'V', 1._wp ) 223 225 ! 224 226 DO jk = 1, jpk ! set to z-scale factor if zero (i.e. along closed boundaries) 225 WHERE( e3u(:,:,jk) == 0._wp ) e3u(:,:,jk) = e3t_1d(jk)226 WHERE( e3v(:,:,jk) == 0._wp ) e3v(:,:,jk) = e3t_1d(jk)227 WHERE( fse3u_n(:,:,jk) == 0._wp ) fse3u_n(:,:,jk) = e3t_1d(jk) 228 WHERE( fse3v_n(:,:,jk) == 0._wp ) fse3v_n(:,:,jk) = e3t_1d(jk) 227 229 END DO 228 230 END IF 229 231 230 232 IF( iom_varid( inum4, 'gdept', ldstop = .FALSE. ) > 0 ) THEN ! 3D depth of t- and w-level 231 CALL iom_get( inum4, jpdom_data, 'gdept', gdept)232 CALL iom_get( inum4, jpdom_data, 'gdepw', gdepw)233 CALL iom_get( inum4, jpdom_data, 'gdept', fsdept_n(:,:,:) ) 234 CALL iom_get( inum4, jpdom_data, 'gdepw', fsdepw_n(:,:,:) ) 233 235 ELSE ! 2D bottom depth 234 236 CALL iom_get( inum4, jpdom_data, 'hdept', zprt ) … … 236 238 ! 237 239 DO jk = 1, jpk ! deduces the 3D depth 238 gdept(:,:,jk) = gdept_1d(jk)239 gdepw(:,:,jk) = gdepw_1d(jk)240 fsdept_n(:,:,jk) = gdept_1d(jk) 241 fsdepw_n(:,:,jk) = gdepw_1d(jk) 240 242 END DO 241 243 DO jj = 1, jpj … … 243 245 ik = mbkt(ji,jj) 244 246 IF( ik > 0 ) THEN 245 gdepw(ji,jj,ik+1) = zprw(ji,jj)246 gdept(ji,jj,ik ) = zprt(ji,jj)247 gdept(ji,jj,ik+1) = gdept(ji,jj,ik) + e3t(ji,jj,ik)247 fsdepw_n(ji,jj,ik+1) = zprw(ji,jj) 248 fsdept_n(ji,jj,ik ) = zprt(ji,jj) 249 fsdept_n(ji,jj,ik+1) = fsdept_n(ji,jj,ik) + fse3t_n(ji,jj,ik) 248 250 ENDIF 249 251 END DO … … 259 261 CALL iom_get( inum4, jpdom_unknown, 'e3w_1d' , e3w_1d ) 260 262 DO jk = 1, jpk 261 e3t(:,:,jk) = e3t_1d(jk) ! set to the ref. factors262 e3u(:,:,jk) = e3t_1d(jk)263 e3v(:,:,jk) = e3t_1d(jk)264 e3w(:,:,jk) = e3w_1d(jk)265 gdept(:,:,jk) = gdept_1d(jk)266 gdepw(:,:,jk) = gdepw_1d(jk)263 fse3t_n(:,:,jk) = e3t_1d(jk) ! set to the ref. factors 264 fse3u_n(:,:,jk) = e3t_1d(jk) 265 fse3v_n(:,:,jk) = e3t_1d(jk) 266 fse3w_n(:,:,jk) = e3w_1d(jk) 267 fsdept_n(:,:,jk) = gdept_1d(jk) 268 fsdepw_n(:,:,jk) = gdepw_1d(jk) 267 269 END DO 268 270 ENDIF -
branches/2013/dev_r3858_NOC_ZTC/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg_ts.F90
r4266 r4280 56 56 57 57 ! Potential namelist parameters below to be read in dyn_spg_ts_init 58 LOGICAL, PUBLIC, PARAMETER :: ln_bt_fw=. TRUE. !: Forward integration of barotropic sub-stepping58 LOGICAL, PUBLIC, PARAMETER :: ln_bt_fw=.true. !: Forward integration of barotropic sub-stepping 59 59 LOGICAL, PRIVATE, PARAMETER :: ln_bt_av=.TRUE. !: Time averaging of barotropic variables 60 60 LOGICAL, PRIVATE, PARAMETER :: ln_bt_nn_auto=.FALSE. !: Set number of iterations automatically -
branches/2013/dev_r3858_NOC_ZTC/NEMOGCM/NEMO/TOP_SRC/PISCES/trcwri_pisces.F90
r3865 r4280 21 21 PUBLIC trc_wri_pisces 22 22 23 # include "top_substitute.h90" 23 24 CONTAINS 24 25 -
branches/2013/dev_r3858_NOC_ZTC/NEMOGCM/NEMO/TOP_SRC/trcdta.F90
r4258 r4280 194 194 DO ji = 1, jpi 195 195 DO jk = 1, jpk ! determines the intepolated T-S profiles at each (i,j) points 196 zl = fsdept_ 0(ji,jj,jk)196 zl = fsdept_n(ji,jj,jk) 197 197 IF( zl < gdept_1d(1 ) ) THEN ! above the first level of data 198 198 ztp(jk) = ptrc(ji,jj,1 ,jn) … … 226 226 ik = mbkt(ji,jj) 227 227 IF( ik > 1 ) THEN 228 zl = ( gdept_1d(ik) - fsdept_ 0(ji,jj,ik) ) / ( gdept_1d(ik) - gdept_1d(ik-1) )228 zl = ( gdept_1d(ik) - fsdept_n(ji,jj,ik) ) / ( gdept_1d(ik) - gdept_1d(ik-1) ) 229 229 ptrc(ji,jj,ik,jn) = (1.-zl) * ptrc(ji,jj,ik,jn) + zl * ptrc(ji,jj,ik-1,jn) 230 230 ENDIF -
branches/2013/dev_r3858_NOC_ZTC/NEMOGCM/NEMO/TOP_SRC/trcsub.F90
r4258 r4280 79 79 ! 80 80 sshb_hold (:,:) = sshn (:,:) 81 82 81 !!Z~ sshu_b_hold(:,:) = sshu_n(:,:) 82 !!Z~ sshv_b_hold(:,:) = sshv_n(:,:) 83 83 emp_b_hold (:,:) = emp_b (:,:) 84 84 ! … … 117 117 ! 118 118 sshn_tm (:,:) = sshn_tm (:,:) + sshn (:,:) 119 120 119 !!Z~ sshu_n_tm(:,:) = sshu_n_tm(:,:) + sshu_n(:,:) 120 !!Z~ sshv_n_tm(:,:) = sshv_n_tm(:,:) + sshv_n(:,:) 121 121 rnf_tm (:,:) = rnf_tm (:,:) + rnf (:,:) 122 122 h_rnf_tm (:,:) = h_rnf_tm (:,:) + h_rnf (:,:) … … 197 197 # endif 198 198 sshn_temp (:,:) = sshn (:,:) 199 200 201 199 !!Z~ sshu_n_temp(:,:) = sshu_n(:,:) 200 !!Z~ sshv_n_temp(:,:) = sshv_n(:,:) 201 !!Z~ sshf_n_temp(:,:) = sshf_n(:,:) 202 202 sshb_temp (:,:) = sshb (:,:) 203 204 203 !!Z~ sshu_b_temp(:,:) = sshu_b(:,:) 204 !!Z~ sshv_b_temp(:,:) = sshv_b(:,:) 205 205 ssha_temp (:,:) = ssha (:,:) 206 207 206 !!Z~ sshu_a_temp(:,:) = sshu_a(:,:) 207 !!Z~ sshv_a_temp(:,:) = sshv_a(:,:) 208 208 rnf_temp (:,:) = rnf (:,:) 209 209 h_rnf_temp (:,:) = h_rnf (:,:) … … 309 309 # endif 310 310 sshn_tm (:,:) = sshn_tm (:,:) + sshn (:,:) 311 312 311 !!Z~ sshu_n_tm(:,:) = sshu_n_tm (:,:) + sshu_n(:,:) 312 !!Z~ sshv_n_tm(:,:) = sshv_n_tm (:,:) + sshv_n(:,:) 313 313 rnf_tm (:,:) = rnf_tm (:,:) + rnf (:,:) 314 314 h_rnf_tm (:,:) = h_rnf_tm (:,:) + h_rnf (:,:) … … 321 321 ! 322 322 sshn (:,:) = sshn_tm (:,:) * r1_ndttrcp1 323 324 323 !!Z~ sshu_n (:,:) = sshu_n_tm (:,:) * r1_ndttrcp1 324 !!Z~ sshv_n (:,:) = sshv_n_tm (:,:) * r1_ndttrcp1 325 325 sshb (:,:) = sshb_hold (:,:) 326 327 326 !!Z~ sshu_b (:,:) = sshu_b_hold(:,:) 327 !!Z~ sshv_b (:,:) = sshv_b_hold(:,:) 328 328 rnf (:,:) = rnf_tm (:,:) * r1_ndttrcp1 329 329 h_rnf (:,:) = h_rnf_tm (:,:) * r1_ndttrcp1 … … 486 486 #endif 487 487 CALL lbc_lnk( sshn (:,:) , 'T', 1. ) 488 489 490 488 !!Z~ CALL lbc_lnk( sshu_n(:,:) , 'U', 1. ) 489 !!Z~ CALL lbc_lnk( sshv_n(:,:) , 'V', 1. ) 490 !!Z~ CALL lbc_lnk( sshf_n(:,:) , 'F', 1. ) 491 491 CALL lbc_lnk( sshb (:,:) , 'T', 1. ) 492 493 492 !!Z~ CALL lbc_lnk( sshu_b(:,:) , 'U', 1. ) 493 !!Z~ CALL lbc_lnk( sshv_b(:,:) , 'V', 1. ) 494 494 CALL lbc_lnk( ssha (:,:) , 'T', 1. ) 495 496 495 !!Z~ CALL lbc_lnk( sshu_a(:,:) , 'U', 1. ) 496 !!Z~ CALL lbc_lnk( sshv_a(:,:) , 'V', 1. ) 497 497 CALL lbc_lnk( rnf (:,:) , 'T', 1. ) 498 498 CALL lbc_lnk( h_rnf (:,:) , 'T', 1. ) … … 592 592 #endif 593 593 sshn_tm (:,:) = sshn (:,:) 594 595 594 !!Z~ sshu_n_tm(:,:) = sshu_n(:,:) 595 !!Z~ sshv_n_tm(:,:) = sshv_n(:,:) 596 596 rnf_tm (:,:) = rnf (:,:) 597 597 h_rnf_tm (:,:) = h_rnf (:,:) … … 695 695 sshb (:,:) = sshb_temp (:,:) 696 696 ssha (:,:) = ssha_temp (:,:) 697 698 699 700 701 702 703 697 !!Z~ sshu_n(:,:) = sshu_n_temp(:,:) 698 !!Z~ sshu_b(:,:) = sshu_b_temp(:,:) 699 !!Z~ sshu_a(:,:) = sshu_a_temp(:,:) 700 !!Z~ sshv_n(:,:) = sshv_n_temp(:,:) 701 !!Z~ sshv_b(:,:) = sshv_b_temp(:,:) 702 !!Z~ sshv_a(:,:) = sshv_a_temp(:,:) 703 !!Z~ sshf_n(:,:) = sshf_n_temp(:,:) 704 704 rnf (:,:) = rnf_temp (:,:) 705 705 h_rnf (:,:) = h_rnf_temp (:,:) … … 816 816 ! 817 817 sshb_hold (:,:) = sshn (:,:) 818 819 818 !!Z~ sshu_b_hold(:,:) = sshu_n(:,:) 819 !!Z~ sshv_b_hold(:,:) = sshv_n(:,:) 820 820 emp_b_hold (:,:) = emp (:,:) 821 821 sshn_tm (:,:) = sshn (:,:) 822 823 822 !!Z~ sshu_n_tm (:,:) = sshu_n(:,:) 823 !!Z~ sshv_n_tm (:,:) = sshv_n(:,:) 824 824 rnf_tm (:,:) = rnf (:,:) 825 825 h_rnf_tm (:,:) = h_rnf (:,:) … … 951 951 END DO 952 952 ! 953 954 953 !!Z~ hu(:,:) = hu_0(:,:) + sshu_n(:,:) ! now ocean depth (at u- and v-points) 954 !!Z~ hv(:,:) = hv_0(:,:) + sshv_n(:,:) 955 955 ! ! now masked inverse of the ocean depth (at u- and v-points) 956 956 hur(:,:) = umask(:,:,1) / ( hu(:,:) + 1._wp - umask(:,:,1) ) … … 992 992 993 993 ! ! Sea Surface Height at u-,v- and f-points (vvl case only) 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 994 !!Z~ IF( lk_vvl ) THEN ! (required only in key_vvl case) 995 !!Z~ DO jj = 1, jpjm1 996 !!Z~ DO ji = 1, jpim1 ! NO Vector Opt. 997 !!Z~ sshu_a(ji,jj) = 0.5 * umask(ji,jj,1) / ( e1u(ji ,jj) * e2u(ji ,jj) ) & 998 !!Z~ & * ( e1t(ji ,jj) * e2t(ji ,jj) * ssha(ji ,jj) & 999 !!Z~ & + e1t(ji+1,jj) * e2t(ji+1,jj) * ssha(ji+1,jj) ) 1000 !!Z~ sshv_a(ji,jj) = 0.5 * vmask(ji,jj,1) / ( e1v(ji,jj ) * e2v(ji,jj ) ) & 1001 !!Z~ & * ( e1t(ji,jj ) * e2t(ji,jj ) * ssha(ji,jj ) & 1002 !!Z~ & + e1t(ji,jj+1) * e2t(ji,jj+1) * ssha(ji,jj+1) ) 1003 !!Z~ END DO 1004 !!Z~ END DO 1005 !!Z~ CALL lbc_lnk( sshu_a, 'U', 1. ) ; CALL lbc_lnk( sshv_a, 'V', 1. ) ! Boundaries conditions 1006 !!Z~ ENDIF 1007 1007 1008 1008
Note: See TracChangeset
for help on using the changeset viewer.