- Timestamp:
- 2013-11-20T18:04:09+01:00 (10 years ago)
- Location:
- branches/2013/dev_MERGE_2013/NEMOGCM/NEMO/OPA_SRC
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2013/dev_MERGE_2013/NEMOGCM/NEMO/OPA_SRC/BDY/bdyini.F90
r4292 r4294 845 845 IF(lwp) THEN ! Since all procs read global data only need to do this check on one proc... 846 846 IF( nbrdta(ib,igrd,ib_bdy) < nbrdta(ibm1,igrd,ib_bdy) ) THEN 847 CALL ctl_stop('bdy_init : ERROR : boundary data in file must be defined in order of distance from edge nbr.', & 848 'A utility for re-ordering boundary coordinates and data files exists in the TOOLS/OBC directory') 847 CALL ctl_stop('bdy_init : ERROR : boundary data in file must be defined ', & 848 & ' in order of distance from edge nbr A utility for re-ordering ', & 849 & ' boundary coordinates and data files exists in the TOOLS/OBC directory') 849 850 ENDIF 850 851 ENDIF -
branches/2013/dev_MERGE_2013/NEMOGCM/NEMO/OPA_SRC/C1D/dtauvd.F90
r4245 r4294 174 174 DO ji = 1, jpi ! determines the interpolated U & V current profiles at each (i,j) point 175 175 DO jk = 1, jpk 176 zl = fsdept _0(ji,jj,jk)177 IF ( zl < gdept_ 0(1 ) ) THEN ! extrapolate above the first level of data176 zl = fsdept(ji,jj,jk) 177 IF ( zl < gdept_1d(1 ) ) THEN ! extrapolate above the first level of data 178 178 zup(jk) = puvd(ji,jj,1 ,1) 179 179 zvp(jk) = puvd(ji,jj,1 ,2) 180 ELSEIF( zl > gdept_ 0(jpk) ) THEN ! extrapolate below the last level of data180 ELSEIF( zl > gdept_1d(jpk) ) THEN ! extrapolate below the last level of data 181 181 zup(jk) = puvd(ji,jj,jpkm1,1) 182 182 zvp(jk) = puvd(ji,jj,jpkm1,2) 183 183 ELSE ! inbetween : vertical interpolation between jkk & jkk+1 184 184 DO jkk = 1, jpkm1 ! when gdept(jkk) < zl < gdept(jkk+1) 185 IF( (zl-gdept_ 0(jkk)) * (zl-gdept_0(jkk+1)) <= 0._wp ) THEN186 zi = ( zl - gdept_ 0(jkk) ) / (gdept_0(jkk+1)-gdept_0(jkk))185 IF( (zl-gdept_1d(jkk)) * (zl-gdept_1d(jkk+1)) <= 0._wp ) THEN 186 zi = ( zl - gdept_1d(jkk) ) / (gdept_1d(jkk+1)-gdept_1d(jkk)) 187 187 zup(jk) = puvd(ji,jj,jkk,1) + ( puvd(ji,jj,jkk+1,1 ) - puvd(ji,jj,jkk,1) ) * zi 188 188 zvp(jk) = puvd(ji,jj,jkk,2) + ( puvd(ji,jj,jkk+1,2 ) - puvd(ji,jj,jkk,2) ) * zi … … 212 212 ik = mbkt(ji,jj) 213 213 IF( ik > 1 ) THEN 214 zl = ( gdept_ 0(ik) - fsdept_0(ji,jj,ik) ) / ( gdept_0(ik) - gdept_0(ik-1) )214 zl = ( gdept_1d(ik) - gdept_0(ji,jj,ik) ) / ( gdept_1d(ik) - gdept_1d(ik-1) ) 215 215 puvd(ji,jj,ik,1) = (1.-zl) * puvd(ji,jj,ik,1) + zl * puvd(ji,jj,ik-1,1) 216 216 puvd(ji,jj,ik,2) = (1.-zl) * puvd(ji,jj,ik,2) + zl * puvd(ji,jj,ik-1,2) -
branches/2013/dev_MERGE_2013/NEMOGCM/NEMO/OPA_SRC/CRS/crsdomwri.F90
r4187 r4294 238 238 DO jj = 1,jpj_crs 239 239 DO ji = 1,jpi_crs 240 zprt(ji,jj) = gdept (ji,jj,mbkt(ji,jj) ) * tmask(ji,jj,1)241 zprw(ji,jj) = gdepw (ji,jj,mbkt(ji,jj)+1) * tmask(ji,jj,1)240 zprt(ji,jj) = gdept_0(ji,jj,mbkt(ji,jj) ) * tmask(ji,jj,1) 241 zprw(ji,jj) = gdepw_0(ji,jj,mbkt(ji,jj)+1) * tmask(ji,jj,1) 242 242 END DO 243 243 END DO … … 246 246 ENDIF 247 247 248 CALL iom_rstput( 0, 0, inum4, 'gdept_ 0', gdept_0) ! ! reference z-coord.249 CALL iom_rstput( 0, 0, inum4, 'gdepw_ 0', gdepw_0)250 CALL iom_rstput( 0, 0, inum4, 'e3t_ 0' , e3t_0)251 CALL iom_rstput( 0, 0, inum4, 'e3w_ 0' , e3w_0)248 CALL iom_rstput( 0, 0, inum4, 'gdept_1d', gdept_1d ) ! ! reference z-coord. 249 CALL iom_rstput( 0, 0, inum4, 'gdepw_1d', gdepw_1d ) 250 CALL iom_rstput( 0, 0, inum4, 'e3t_1d' , e3t_1d ) 251 CALL iom_rstput( 0, 0, inum4, 'e3w_1d' , e3w_1d ) 252 252 253 253 CALL iom_rstput( 0, 0, inum4, 'ocean_volume_t', ocean_volume_crs_t ) … … 273 273 IF( ln_zco ) THEN 274 274 ! ! z-coordinate - full steps 275 CALL iom_rstput( 0, 0, inum4, 'gdept_ 0', gdept_0) ! ! depth276 CALL iom_rstput( 0, 0, inum4, 'gdepw_ 0', gdepw_0)277 CALL iom_rstput( 0, 0, inum4, 'e3t_ 0' , e3t_0) ! ! scale factors278 CALL iom_rstput( 0, 0, inum4, 'e3w_ 0' , e3w_0)275 CALL iom_rstput( 0, 0, inum4, 'gdept_1d', gdept_1d ) ! ! depth 276 CALL iom_rstput( 0, 0, inum4, 'gdepw_1d', gdepw_1d ) 277 CALL iom_rstput( 0, 0, inum4, 'e3t_1d' , e3t_1d ) ! ! scale factors 278 CALL iom_rstput( 0, 0, inum4, 'e3w_1d' , e3w_1d ) 279 279 ENDIF 280 280 ! ! ============================ -
branches/2013/dev_MERGE_2013/NEMOGCM/NEMO/OPA_SRC/CRS/crsini.F90
r4154 r4294 210 210 DO ji = 1, jpi_crs 211 211 DO jj = 1, jpj_crs 212 IF( e3t_crs(ji,jj,jk) == 0._wp ) e3t_crs(ji,jj,jk) = e3t_ 0(jk)213 IF( e3w_crs(ji,jj,jk) == 0._wp ) e3w_crs(ji,jj,jk) = e3w_ 0(jk)214 IF( e3u_crs(ji,jj,jk) == 0._wp ) e3u_crs(ji,jj,jk) = e3t_ 0(jk)215 IF( e3v_crs(ji,jj,jk) == 0._wp ) e3v_crs(ji,jj,jk) = e3t_ 0(jk)212 IF( e3t_crs(ji,jj,jk) == 0._wp ) e3t_crs(ji,jj,jk) = e3t_1d(jk) 213 IF( e3w_crs(ji,jj,jk) == 0._wp ) e3w_crs(ji,jj,jk) = e3w_1d(jk) 214 IF( e3u_crs(ji,jj,jk) == 0._wp ) e3u_crs(ji,jj,jk) = e3t_1d(jk) 215 IF( e3v_crs(ji,jj,jk) == 0._wp ) e3v_crs(ji,jj,jk) = e3t_1d(jk) 216 216 ENDDO 217 217 ENDDO … … 219 219 220 220 ! 3.d.3 Vertical depth (meters) 221 CALL crs_dom_ope( gdept , 'MAX', 'T', tmask, gdept_crs, p_e3=zfse3t, psgn=1.0 )222 CALL crs_dom_ope( gdepw , 'MAX', 'W', tmask, gdepw_crs, p_e3=zfse3w, psgn=1.0 )221 CALL crs_dom_ope( gdept_0, 'MAX', 'T', tmask, gdept_crs, p_e3=zfse3t, psgn=1.0 ) 222 CALL crs_dom_ope( gdepw_0, 'MAX', 'W', tmask, gdepw_crs, p_e3=zfse3w, psgn=1.0 ) 223 223 224 224 -
branches/2013/dev_MERGE_2013/NEMOGCM/NEMO/OPA_SRC/DOM/domvvl.F90
r4292 r4294 44 44 45 45 !!* Namelist nam_vvl 46 LOGICAL , PUBLIC :: ln_vvl_zstar = .FALSE.! zstar vertical coordinate47 LOGICAL , PUBLIC :: ln_vvl_ztilde = .FALSE.! ztilde vertical coordinate48 LOGICAL , PUBLIC :: ln_vvl_layer = .FALSE.! level vertical coordinate49 LOGICAL , PUBLIC :: ln_vvl_ztilde_as_zstar = .FALSE.! ztilde vertical coordinate50 LOGICAL , PUBLIC :: ln_vvl_zstar_at_eqtor = .FALSE.! ztilde vertical coordinate51 LOGICAL , PUBLIC :: ln_vvl_kepe = .FALSE.! kinetic/potential energy transfer46 LOGICAL , PUBLIC :: ln_vvl_zstar ! zstar vertical coordinate 47 LOGICAL , PUBLIC :: ln_vvl_ztilde ! ztilde vertical coordinate 48 LOGICAL , PUBLIC :: ln_vvl_layer ! level vertical coordinate 49 LOGICAL , PUBLIC :: ln_vvl_ztilde_as_zstar ! ztilde vertical coordinate 50 LOGICAL , PUBLIC :: ln_vvl_zstar_at_eqtor ! ztilde vertical coordinate 51 LOGICAL , PUBLIC :: ln_vvl_kepe ! kinetic/potential energy transfer 52 52 ! ! conservation: not used yet 53 REAL(wp) :: rn_ahe3 = 0.0_wp! thickness diffusion coefficient54 REAL(wp) :: rn_rst_e3t = 30._wp! ztilde to zstar restoration timescale [days]55 REAL(wp) :: rn_lf_cutoff = 5.0_wp! cutoff frequency for low-pass filter [days]56 REAL(wp) :: rn_zdef_max = 0.9_wp! maximum fractional e3t deformation57 LOGICAL , PUBLIC :: ln_vvl_dbg = .FALSE.! debug control prints53 REAL(wp) :: rn_ahe3 ! thickness diffusion coefficient 54 REAL(wp) :: rn_rst_e3t ! ztilde to zstar restoration timescale [days] 55 REAL(wp) :: rn_lf_cutoff ! cutoff frequency for low-pass filter [days] 56 REAL(wp) :: rn_zdef_max ! maximum fractional e3t deformation 57 LOGICAL , PUBLIC :: ln_vvl_dbg ! debug control prints 58 58 59 59 !! * Module variables … … 851 851 !!---------------------------------------------------------------------- 852 852 INTEGER :: ioptio 853 INTEGER :: ios 853 854 854 855 NAMELIST/nam_vvl/ ln_vvl_zstar, ln_vvl_ztilde, ln_vvl_layer, ln_vvl_ztilde_as_zstar, & … … 857 858 !!---------------------------------------------------------------------- 858 859 859 REWIND ( numnam ) ! Read Namelist nam_vvl : vertical coordinate 860 READ ( numnam, nam_vvl ) 860 REWIND( numnam_ref ) ! Namelist nam_vvl in reference namelist : 861 READ ( numnam_ref, nam_vvl, IOSTAT = ios, ERR = 901) 862 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nam_vvl in reference namelist', lwp ) 863 864 REWIND( numnam_cfg ) ! Namelist nam_vvl in configuration namelist : Parameters of the run 865 READ ( numnam_cfg, nam_vvl, IOSTAT = ios, ERR = 902 ) 866 902 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nam_vvl in configuration namelist', lwp ) 867 WRITE ( numond, nam_vvl ) 861 868 862 869 IF(lwp) THEN ! Namelist print
Note: See TracChangeset
for help on using the changeset viewer.