Changeset 12489 for NEMO/trunk/src/OCE/DIA
- Timestamp:
- 2020-02-28T16:55:11+01:00 (4 years ago)
- Location:
- NEMO/trunk/src/OCE/DIA
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/trunk/src/OCE/DIA/dia25h.F90
r12377 r12489 140 140 ! ----------------- 141 141 ! Define frequency of summing to create 25 h mean 142 IF( MOD( 3600,NINT(r dt) ) == 0 ) THEN143 i_steps = 3600/NINT(r dt)142 IF( MOD( 3600,NINT(rn_Dt) ) == 0 ) THEN 143 i_steps = 3600/NINT(rn_Dt) 144 144 ELSE 145 CALL ctl_stop('STOP', 'dia_wri_tide: timestep must give MOD(3600,r dt) = 0 otherwise no hourly values are possible')145 CALL ctl_stop('STOP', 'dia_wri_tide: timestep must give MOD(3600,rn_Dt) = 0 otherwise no hourly values are possible') 146 146 ENDIF 147 147 -
NEMO/trunk/src/OCE/DIA/diaar5.F90
r12377 r12489 103 103 END DO 104 104 CALL iom_put( 'volcello' , zrhd(:,:,:) ) ! WARNING not consistent with CMIP DR where volcello is at ca. 2000 105 CALL iom_put( 'masscello' , r au0 * e3t(:,:,:,Kmm) * tmask(:,:,:) ) ! ocean mass105 CALL iom_put( 'masscello' , rho0 * e3t(:,:,:,Kmm) * tmask(:,:,:) ) ! ocean mass 106 106 ENDIF 107 107 ! … … 181 181 CALL iom_put( 'sshsteric', zssh_steric ) 182 182 ! ! ocean bottom pressure 183 zztmp = r au0 * grav * 1.e-4_wp ! recover pressure from pressure anomaly and cover to dbar = 1.e4 Pa183 zztmp = rho0 * grav * 1.e-4_wp ! recover pressure from pressure anomaly and cover to dbar = 1.e4 Pa 184 184 zbotpres(:,:) = zztmp * ( zbotpres(:,:) + ssh(:,:,Kmm) + thick0(:,:) ) 185 185 CALL iom_put( 'botpres', zbotpres ) … … 213 213 ztemp = glob_sum( 'diaar5', ztsn(:,:,1,jp_tem) ) 214 214 zsal = glob_sum( 'diaar5', ztsn(:,:,1,jp_sal) ) 215 zmass = r au0 * ( zarho + zvol )215 zmass = rho0 * ( zarho + zvol ) 216 216 ! 217 217 CALL iom_put( 'masstot', zmass ) … … 251 251 z2d(:,:) = 0._wp 252 252 DO_3D_11_11( 1, jpkm1 ) 253 z2d(ji,jj) = z2d(ji,jj) + r au0 * e3t(ji,jj,jk,Kmm) * ztpot(ji,jj,jk)253 z2d(ji,jj) = z2d(ji,jj) + rho0 * e3t(ji,jj,jk,Kmm) * ztpot(ji,jj,jk) 254 254 END_3D 255 255 CALL iom_put( 'tosmint_pot', z2d ) … … 285 285 ELSE 286 286 DO_3D_11_11( 1, jpk ) 287 zpe(ji,jj) = zpe(ji,jj) + avt(ji,jj,jk) * MIN(0._wp,rn2(ji,jj,jk)) * r au0 * e3w(ji,jj,jk,Kmm)287 zpe(ji,jj) = zpe(ji,jj) + avt(ji,jj,jk) * MIN(0._wp,rn2(ji,jj,jk)) * rho0 * e3w(ji,jj,jk,Kmm) 288 288 END_3D 289 289 ENDIF … … 325 325 CALL lbc_lnk( 'diaar5', z2d, 'U', -1. ) 326 326 IF( cptr == 'adv' ) THEN 327 IF( ktra == jp_tem ) CALL iom_put( 'uadv_heattr' , r au0_rcp * z2d ) ! advective heat transport in i-direction328 IF( ktra == jp_sal ) CALL iom_put( 'uadv_salttr' , r au0 * z2d ) ! advective salt transport in i-direction327 IF( ktra == jp_tem ) CALL iom_put( 'uadv_heattr' , rho0_rcp * z2d ) ! advective heat transport in i-direction 328 IF( ktra == jp_sal ) CALL iom_put( 'uadv_salttr' , rho0 * z2d ) ! advective salt transport in i-direction 329 329 ENDIF 330 330 IF( cptr == 'ldf' ) THEN 331 IF( ktra == jp_tem ) CALL iom_put( 'udiff_heattr' , r au0_rcp * z2d ) ! diffusive heat transport in i-direction332 IF( ktra == jp_sal ) CALL iom_put( 'udiff_salttr' , r au0 * z2d ) ! diffusive salt transport in i-direction331 IF( ktra == jp_tem ) CALL iom_put( 'udiff_heattr' , rho0_rcp * z2d ) ! diffusive heat transport in i-direction 332 IF( ktra == jp_sal ) CALL iom_put( 'udiff_salttr' , rho0 * z2d ) ! diffusive salt transport in i-direction 333 333 ENDIF 334 334 ! … … 339 339 CALL lbc_lnk( 'diaar5', z2d, 'V', -1. ) 340 340 IF( cptr == 'adv' ) THEN 341 IF( ktra == jp_tem ) CALL iom_put( 'vadv_heattr' , r au0_rcp * z2d ) ! advective heat transport in j-direction342 IF( ktra == jp_sal ) CALL iom_put( 'vadv_salttr' , r au0 * z2d ) ! advective salt transport in j-direction341 IF( ktra == jp_tem ) CALL iom_put( 'vadv_heattr' , rho0_rcp * z2d ) ! advective heat transport in j-direction 342 IF( ktra == jp_sal ) CALL iom_put( 'vadv_salttr' , rho0 * z2d ) ! advective salt transport in j-direction 343 343 ENDIF 344 344 IF( cptr == 'ldf' ) THEN 345 IF( ktra == jp_tem ) CALL iom_put( 'vdiff_heattr' , r au0_rcp * z2d ) ! diffusive heat transport in j-direction346 IF( ktra == jp_sal ) CALL iom_put( 'vdiff_salttr' , r au0 * z2d ) ! diffusive salt transport in j-direction345 IF( ktra == jp_tem ) CALL iom_put( 'vdiff_heattr' , rho0_rcp * z2d ) ! diffusive heat transport in j-direction 346 IF( ktra == jp_sal ) CALL iom_put( 'vdiff_salttr' , rho0 * z2d ) ! diffusive salt transport in j-direction 347 347 ENDIF 348 348 -
NEMO/trunk/src/OCE/DIA/diacfl.F90
r12377 r12489 52 52 ! 53 53 INTEGER :: ji, jj, jk ! dummy loop indices 54 REAL(wp) :: z 2dt, zCu_max, zCv_max, zCw_max! local scalars54 REAL(wp) :: zCu_max, zCv_max, zCw_max ! local scalars 55 55 INTEGER , DIMENSION(3) :: iloc_u , iloc_v , iloc_w , iloc ! workspace 56 56 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zCu_cfl, zCv_cfl, zCw_cfl ! workspace … … 59 59 IF( ln_timing ) CALL timing_start('dia_cfl') 60 60 ! 61 ! ! setup timestep multiplier to account for initial Eulerian timestep62 IF( neuler == 0 .AND. kt == nit000 ) THEN ; z2dt = rdt63 ELSE ; z2dt = rdt * 2._wp64 ENDIF65 !66 !67 61 DO_3D_11_11( 1, jpk ) 68 zCu_cfl(ji,jj,jk) = ABS( uu(ji,jj,jk,Kmm) ) * z2dt / e1u (ji,jj) ! for i-direction69 zCv_cfl(ji,jj,jk) = ABS( vv(ji,jj,jk,Kmm) ) * z2dt / e2v (ji,jj) ! for j-direction70 zCw_cfl(ji,jj,jk) = ABS( ww(ji,jj,jk) ) * z2dt / e3w(ji,jj,jk,Kmm) ! for k-direction62 zCu_cfl(ji,jj,jk) = ABS( uu(ji,jj,jk,Kmm) ) * rDt / e1u (ji,jj) ! for i-direction 63 zCv_cfl(ji,jj,jk) = ABS( vv(ji,jj,jk,Kmm) ) * rDt / e2v (ji,jj) ! for j-direction 64 zCw_cfl(ji,jj,jk) = ABS( ww(ji,jj,jk) ) * rDt / e3w(ji,jj,jk,Kmm) ! for k-direction 71 65 END_3D 72 66 ! … … 118 112 WRITE(numcfl,*) '******************************************' 119 113 WRITE(numcfl,FMT='(3x,a12,6x,f7.4,1x,i4,1x,i4,1x,i4)') 'Run Max Cu', rCu_max, nCu_loc(1), nCu_loc(2), nCu_loc(3) 120 WRITE(numcfl,FMT='(3x,a8,11x,f15.1)') ' => dt/C', z2dt/rCu_max114 WRITE(numcfl,FMT='(3x,a8,11x,f15.1)') ' => dt/C', rDt/rCu_max 121 115 WRITE(numcfl,*) '******************************************' 122 116 WRITE(numcfl,FMT='(3x,a12,6x,f7.4,1x,i4,1x,i4,1x,i4)') 'Run Max Cv', rCv_max, nCv_loc(1), nCv_loc(2), nCv_loc(3) 123 WRITE(numcfl,FMT='(3x,a8,11x,f15.1)') ' => dt/C', z2dt/rCv_max117 WRITE(numcfl,FMT='(3x,a8,11x,f15.1)') ' => dt/C', rDt/rCv_max 124 118 WRITE(numcfl,*) '******************************************' 125 119 WRITE(numcfl,FMT='(3x,a12,6x,f7.4,1x,i4,1x,i4,1x,i4)') 'Run Max Cw', rCw_max, nCw_loc(1), nCw_loc(2), nCw_loc(3) 126 WRITE(numcfl,FMT='(3x,a8,11x,f15.1)') ' => dt/C', z2dt/rCw_max120 WRITE(numcfl,FMT='(3x,a8,11x,f15.1)') ' => dt/C', rDt/rCw_max 127 121 CLOSE( numcfl ) 128 122 ! … … 131 125 WRITE(numout,*) 'dia_cfl : Maximum Courant number information for the run ' 132 126 WRITE(numout,*) '~~~~~~~' 133 WRITE(numout,*) ' Max Cu = ', rCu_max, ' at (i,j,k) = (',nCu_loc(1),nCu_loc(2),nCu_loc(3),') => dt/C = ', z2dt/rCu_max134 WRITE(numout,*) ' Max Cv = ', rCv_max, ' at (i,j,k) = (',nCv_loc(1),nCv_loc(2),nCv_loc(3),') => dt/C = ', z2dt/rCv_max135 WRITE(numout,*) ' Max Cw = ', rCw_max, ' at (i,j,k) = (',nCw_loc(1),nCw_loc(2),nCw_loc(3),') => dt/C = ', z2dt/rCw_max127 WRITE(numout,*) ' Max Cu = ', rCu_max, ' at (i,j,k) = (',nCu_loc(1),nCu_loc(2),nCu_loc(3),') => dt/C = ', rDt/rCu_max 128 WRITE(numout,*) ' Max Cv = ', rCv_max, ' at (i,j,k) = (',nCv_loc(1),nCv_loc(2),nCv_loc(3),') => dt/C = ', rDt/rCv_max 129 WRITE(numout,*) ' Max Cw = ', rCw_max, ' at (i,j,k) = (',nCw_loc(1),nCw_loc(2),nCw_loc(3),') => dt/C = ', rDt/rCw_max 136 130 ENDIF 137 131 ! -
NEMO/trunk/src/OCE/DIA/diadct.F90
r12377 r12489 676 676 zsn = interp(Kmm,k%I,k%J,jk,'V',ts(:,:,:,jp_sal,Kmm) ) 677 677 zrhop = interp(Kmm,k%I,k%J,jk,'V',rhop) 678 zrhoi = interp(Kmm,k%I,k%J,jk,'V',rhd*r au0+rau0)678 zrhoi = interp(Kmm,k%I,k%J,jk,'V',rhd*rho0+rho0) 679 679 zsshn = 0.5*( ssh(k%I,k%J,Kmm) + ssh(k%I,k%J+1,Kmm) ) * vmask(k%I,k%J,1) 680 680 CASE(2,3) … … 682 682 zsn = interp(Kmm,k%I,k%J,jk,'U',ts(:,:,:,jp_sal,Kmm) ) 683 683 zrhop = interp(Kmm,k%I,k%J,jk,'U',rhop) 684 zrhoi = interp(Kmm,k%I,k%J,jk,'U',rhd*r au0+rau0)684 zrhoi = interp(Kmm,k%I,k%J,jk,'U',rhd*rho0+rho0) 685 685 zsshn = 0.5*( ssh(k%I,k%J,Kmm) + ssh(k%I+1,k%J,Kmm) ) * umask(k%I,k%J,1) 686 686 END SELECT … … 849 849 zsn = interp(Kmm,k%I,k%J,jk,'V',ts(:,:,:,jp_sal,Kmm) ) 850 850 zrhop = interp(Kmm,k%I,k%J,jk,'V',rhop) 851 zrhoi = interp(Kmm,k%I,k%J,jk,'V',rhd*r au0+rau0)851 zrhoi = interp(Kmm,k%I,k%J,jk,'V',rhd*rho0+rho0) 852 852 853 853 CASE(2,3) … … 855 855 zsn = interp(Kmm,k%I,k%J,jk,'U',ts(:,:,:,jp_sal,Kmm) ) 856 856 zrhop = interp(Kmm,k%I,k%J,jk,'U',rhop) 857 zrhoi = interp(Kmm,k%I,k%J,jk,'U',rhd*r au0+rau0)857 zrhoi = interp(Kmm,k%I,k%J,jk,'U',rhd*rho0+rho0) 858 858 zsshn = 0.5*( ssh(k%I,k%J,Kmm) + ssh(k%I+1,k%J,Kmm) ) * umask(k%I,k%J,1) 859 859 END SELECT -
NEMO/trunk/src/OCE/DIA/diadetide.F90
r12377 r12489 9 9 USE in_out_manager , ONLY : lwp, numout 10 10 USE iom , ONLY : iom_put 11 USE dom_oce , ONLY : r dt, nsec_day11 USE dom_oce , ONLY : rn_Dt, nsec_day 12 12 USE phycst , ONLY : rpi 13 13 USE tide_mod … … 100 100 zwght = 0.0_wp 101 101 DO jn = 1, ndiadetide 102 ztmp = ( tdiadetide(jn) - REAL( nsec_day, KIND=wp ) ) / r dt102 ztmp = ( tdiadetide(jn) - REAL( nsec_day, KIND=wp ) ) / rn_Dt 103 103 IF ( ( ztmp < 0.5_wp ).AND.( ztmp >= -0.5_wp ) ) THEN 104 104 zwght = zwght + 1.0_wp / REAL( ndiadetide, KIND=wp ) -
NEMO/trunk/src/OCE/DIA/diahsb.F90
r12377 r12489 91 91 ! 1 - Trends due to forcing ! 92 92 ! ------------------------- ! 93 z_frc_trd_v = r1_r au0 * glob_sum( 'diahsb', - ( emp(:,:) - rnf(:,:) + fwfisf_cav(:,:) + fwfisf_par(:,:) ) * surf(:,:) ) ! volume fluxes93 z_frc_trd_v = r1_rho0 * glob_sum( 'diahsb', - ( emp(:,:) - rnf(:,:) + fwfisf_cav(:,:) + fwfisf_par(:,:) ) * surf(:,:) ) ! volume fluxes 94 94 z_frc_trd_t = glob_sum( 'diahsb', sbc_tsc(:,:,jp_tem) * surf(:,:) ) ! heat fluxes 95 95 z_frc_trd_s = glob_sum( 'diahsb', sbc_tsc(:,:,jp_sal) * surf(:,:) ) ! salt fluxes … … 101 101 & + glob_sum( 'diahsb', ( risf_cav_tsc(:,:,jp_tem) + risf_par_tsc(:,:,jp_tem) ) * surf(:,:) ) 102 102 ! ! Add penetrative solar radiation 103 IF( ln_traqsr ) z_frc_trd_t = z_frc_trd_t + r1_r au0_rcp * glob_sum( 'diahsb', qsr (:,:) * surf(:,:) )103 IF( ln_traqsr ) z_frc_trd_t = z_frc_trd_t + r1_rho0_rcp * glob_sum( 'diahsb', qsr (:,:) * surf(:,:) ) 104 104 ! ! Add geothermal heat flux 105 105 IF( ln_trabbc ) z_frc_trd_t = z_frc_trd_t + glob_sum( 'diahsb', qgh_trd0(:,:) * surf(:,:) ) … … 121 121 ENDIF 122 122 123 frc_v = frc_v + z_frc_trd_v * r dt124 frc_t = frc_t + z_frc_trd_t * r dt125 frc_s = frc_s + z_frc_trd_s * r dt123 frc_v = frc_v + z_frc_trd_v * rn_Dt 124 frc_t = frc_t + z_frc_trd_t * rn_Dt 125 frc_s = frc_s + z_frc_trd_s * rn_Dt 126 126 ! ! Advection flux through fixed surface (z=0) 127 127 IF( ln_linssh ) THEN 128 frc_wn_t = frc_wn_t + z_wn_trd_t * r dt129 frc_wn_s = frc_wn_s + z_wn_trd_s * r dt128 frc_wn_t = frc_wn_t + z_wn_trd_t * rn_Dt 129 frc_wn_s = frc_wn_s + z_wn_trd_s * rn_Dt 130 130 ENDIF 131 131 … … 197 197 198 198 CALL iom_put( 'bgfrcvol' , frc_v * 1.e-9 ) ! vol - surface forcing (km3) 199 CALL iom_put( 'bgfrctem' , frc_t * r au0 * rcp * 1.e-20 ) ! hc - surface forcing (1.e20 J)200 CALL iom_put( 'bgfrchfx' , frc_t * r au0 * rcp / & ! hc - surface forcing (W/m2)201 & ( surf_tot * kt * r dt ) )199 CALL iom_put( 'bgfrctem' , frc_t * rho0 * rcp * 1.e-20 ) ! hc - surface forcing (1.e20 J) 200 CALL iom_put( 'bgfrchfx' , frc_t * rho0 * rcp / & ! hc - surface forcing (W/m2) 201 & ( surf_tot * kt * rn_Dt ) ) 202 202 CALL iom_put( 'bgfrcsal' , frc_s * 1.e-9 ) ! sc - surface forcing (psu*km3) 203 203 … … 205 205 CALL iom_put( 'bgtemper' , zdiff_hc / zvol_tot ) ! Temperature drift (C) 206 206 CALL iom_put( 'bgsaline' , zdiff_sc / zvol_tot ) ! Salinity drift (PSU) 207 CALL iom_put( 'bgheatco' , zdiff_hc * 1.e-20 * r au0 * rcp ) ! Heat content drift (1.e20 J)208 CALL iom_put( 'bgheatfx' , zdiff_hc * r au0 * rcp / & ! Heat flux drift (W/m2)209 & ( surf_tot * kt * r dt ) )207 CALL iom_put( 'bgheatco' , zdiff_hc * 1.e-20 * rho0 * rcp ) ! Heat content drift (1.e20 J) 208 CALL iom_put( 'bgheatfx' , zdiff_hc * rho0 * rcp / & ! Heat flux drift (W/m2) 209 & ( surf_tot * kt * rn_Dt ) ) 210 210 CALL iom_put( 'bgsaltco' , zdiff_sc * 1.e-9 ) ! Salt content drift (psu*km3) 211 211 CALL iom_put( 'bgvolssh' , zdiff_v1 * 1.e-9 ) ! volume ssh drift (km3) … … 225 225 CALL iom_put( 'bgtemper' , zdiff_hc1 / zvol_tot) ! Heat content drift (C) 226 226 CALL iom_put( 'bgsaline' , zdiff_sc1 / zvol_tot) ! Salt content drift (PSU) 227 CALL iom_put( 'bgheatco' , zdiff_hc1 * 1.e-20 * r au0 * rcp ) ! Heat content drift (1.e20 J)228 CALL iom_put( 'bgheatfx' , zdiff_hc1 * r au0 * rcp / & ! Heat flux drift (W/m2)229 & ( surf_tot * kt * r dt ) )227 CALL iom_put( 'bgheatco' , zdiff_hc1 * 1.e-20 * rho0 * rcp ) ! Heat content drift (1.e20 J) 228 CALL iom_put( 'bgheatfx' , zdiff_hc1 * rho0 * rcp / & ! Heat flux drift (W/m2) 229 & ( surf_tot * kt * rn_Dt ) ) 230 230 CALL iom_put( 'bgsaltco' , zdiff_sc1 * 1.e-9 ) ! Salt content drift (psu*km3) 231 231 CALL iom_put( 'bgvolssh' , zdiff_v1 * 1.e-9 ) ! volume ssh drift (km3) -
NEMO/trunk/src/OCE/DIA/diahth.F90
r12377 r12489 261 261 zzdep = 300. 262 262 CALL dia_hth_htc( Kmm, zzdep, ts(:,:,:,jp_tem,Kmm), htc3 ) 263 CALL iom_put( 'hc300', r au0_rcp * htc3 ) ! vertically integrated heat content (J/m2)263 CALL iom_put( 'hc300', rho0_rcp * htc3 ) ! vertically integrated heat content (J/m2) 264 264 ENDIF 265 265 ! … … 270 270 zzdep = 700. 271 271 CALL dia_hth_htc( Kmm, zzdep, ts(:,:,:,jp_tem,Kmm), htc7 ) 272 CALL iom_put( 'hc700', r au0_rcp * htc7 ) ! vertically integrated heat content (J/m2)272 CALL iom_put( 'hc700', rho0_rcp * htc7 ) ! vertically integrated heat content (J/m2) 273 273 274 274 ENDIF … … 280 280 zzdep = 2000. 281 281 CALL dia_hth_htc( Kmm, zzdep, ts(:,:,:,jp_tem,Kmm), htc20 ) 282 CALL iom_put( 'hc2000', r au0_rcp * htc20 ) ! vertically integrated heat content (J/m2)282 CALL iom_put( 'hc2000', rho0_rcp * htc20 ) ! vertically integrated heat content (J/m2) 283 283 ENDIF 284 284 ! -
NEMO/trunk/src/OCE/DIA/dianam.F90
r10068 r12489 72 72 73 73 IF( llfsec .OR. kfreq < 0 ) THEN ; inbsec = kfreq ! output frequency already in seconds 74 ELSE ; inbsec = kfreq * NINT( r dt ) ! from time-step to seconds74 ELSE ; inbsec = kfreq * NINT( rn_Dt ) ! from time-step to seconds 75 75 ENDIF 76 76 iddss = NINT( rday ) ! number of seconds in 1 day … … 116 116 ! date of the beginning and the end of the run 117 117 118 zdrun = r dt / rday * REAL( nitend - nit000, wp ) ! length of the run in days119 zjul = fjulday - r dt / rday118 zdrun = rn_Dt / rday * REAL( nitend - nit000, wp ) ! length of the run in days 119 zjul = fjulday - rn_Dt / rday 120 120 CALL ju2ymds( zjul , iyear1, imonth1, iday1, zsec1 ) ! year/month/day of the beginning of run 121 121 CALL ju2ymds( zjul + zdrun, iyear2, imonth2, iday2, zsec2 ) ! year/month/day of the end of run -
NEMO/trunk/src/OCE/DIA/diaptr.F90
r12377 r12489 50 50 51 51 REAL(wp) :: rc_sv = 1.e-6_wp ! conversion from m3/s to Sverdrup 52 REAL(wp) :: rc_pwatt = 1.e-15_wp ! conversion from W to PW (further x r au0 x Cp)53 REAL(wp) :: rc_ggram = 1.e-9_wp ! conversion from g to Gg (further x r au0)52 REAL(wp) :: rc_pwatt = 1.e-15_wp ! conversion from W to PW (further x rho0 x Cp) 53 REAL(wp) :: rc_ggram = 1.e-9_wp ! conversion from g to Gg (further x rho0) 54 54 55 55 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: btmsk ! T-point basin interior masks … … 346 346 IF( dia_ptr_alloc() /= 0 ) CALL ctl_stop( 'STOP', 'dia_ptr_init : unable to allocate arrays' ) 347 347 348 rc_pwatt = rc_pwatt * r au0_rcp ! conversion from K.s-1 to PetaWatt349 rc_ggram = rc_ggram * r au0 ! conversion from m3/s to Gg/s348 rc_pwatt = rc_pwatt * rho0_rcp ! conversion from K.s-1 to PetaWatt 349 rc_ggram = rc_ggram * rho0 ! conversion from m3/s to Gg/s 350 350 351 351 IF( lk_mpp ) CALL mpp_ini_znl( numout ) ! Define MPI communicator for zonal sum -
NEMO/trunk/src/OCE/DIA/diawri.F90
r12377 r12489 173 173 174 174 IF ( iom_use("taubot") ) THEN ! bottom stress 175 zztmp = r au0 * 0.25175 zztmp = rho0 * 0.25 176 176 z2d(:,:) = 0._wp 177 177 DO_2D_00_00 … … 212 212 IF( iom_use('w_masstr') .OR. iom_use('w_masstr2') ) THEN ! vertical mass transport & its square value 213 213 ! Caution: in the VVL case, it only correponds to the baroclinic mass transport. 214 z2d(:,:) = r au0 * e1e2t(:,:)214 z2d(:,:) = rho0 * e1e2t(:,:) 215 215 DO jk = 1, jpk 216 216 z3d(:,:,jk) = ww(:,:,jk) * z2d(:,:) … … 249 249 z2d(ji,jj) = z2d(ji,jj) + e3t(ji,jj,jk,Kmm) * ts(ji,jj,jk,jp_tem,Kmm) * tmask(ji,jj,jk) 250 250 END_3D 251 CALL iom_put( "heatc", r au0_rcp * z2d ) ! vertically integrated heat content (J/m2)251 CALL iom_put( "heatc", rho0_rcp * z2d ) ! vertically integrated heat content (J/m2) 252 252 ENDIF 253 253 … … 257 257 z2d(ji,jj) = z2d(ji,jj) + e3t(ji,jj,jk,Kmm) * ts(ji,jj,jk,jp_sal,Kmm) * tmask(ji,jj,jk) 258 258 END_3D 259 CALL iom_put( "saltc", r au0 * z2d ) ! vertically integrated salt content (PSU*kg/m2)259 CALL iom_put( "saltc", rho0 * z2d ) ! vertically integrated salt content (PSU*kg/m2) 260 260 ENDIF 261 261 ! … … 279 279 z2d(:,:) = 0.e0 280 280 DO jk = 1, jpkm1 281 z3d(:,:,jk) = r au0 * uu(:,:,jk,Kmm) * e2u(:,:) * e3u(:,:,jk,Kmm) * umask(:,:,jk)281 z3d(:,:,jk) = rho0 * uu(:,:,jk,Kmm) * e2u(:,:) * e3u(:,:,jk,Kmm) * umask(:,:,jk) 282 282 z2d(:,:) = z2d(:,:) + z3d(:,:,jk) 283 283 END DO … … 308 308 z3d(:,:,jpk) = 0.e0 309 309 DO jk = 1, jpkm1 310 z3d(:,:,jk) = r au0 * vv(:,:,jk,Kmm) * e1v(:,:) * e3v(:,:,jk,Kmm) * vmask(:,:,jk)310 z3d(:,:,jk) = rho0 * vv(:,:,jk,Kmm) * e1v(:,:) * e3v(:,:,jk,Kmm) * vmask(:,:,jk) 311 311 END DO 312 312 CALL iom_put( "v_masstr", z3d ) ! mass transport in j-direction … … 337 337 END_3D 338 338 CALL lbc_lnk( 'diawri', z2d, 'T', -1. ) 339 CALL iom_put( "tosmint", r au0 * z2d ) ! Vertical integral of temperature339 CALL iom_put( "tosmint", rho0 * z2d ) ! Vertical integral of temperature 340 340 ENDIF 341 341 IF( iom_use("somint") ) THEN … … 345 345 END_3D 346 346 CALL lbc_lnk( 'diawri', z2d, 'T', -1. ) 347 CALL iom_put( "somint", r au0 * z2d ) ! Vertical integral of salinity347 CALL iom_put( "somint", rho0 * z2d ) ! Vertical integral of salinity 348 348 ENDIF 349 349 … … 432 432 clop = "x" ! no use of the mask value (require less cpu time and otherwise the model crashes) 433 433 #if defined key_diainstant 434 zsto = nn_write * r dt434 zsto = nn_write * rn_Dt 435 435 clop = "inst("//TRIM(clop)//")" 436 436 #else 437 zsto=r dt437 zsto=rn_Dt 438 438 clop = "ave("//TRIM(clop)//")" 439 439 #endif 440 zout = nn_write * r dt441 zmax = ( nitend - nit000 + 1 ) * r dt440 zout = nn_write * rn_Dt 441 zmax = ( nitend - nit000 + 1 ) * rn_Dt 442 442 443 443 ! Define indices of the horizontal output zoom and vertical limit storage … … 460 460 461 461 ! Compute julian date from starting date of the run 462 CALL ymds2ju( nyear, nmonth, nday, r dt, zjulian )462 CALL ymds2ju( nyear, nmonth, nday, rn_Dt, zjulian ) 463 463 zjulian = zjulian - adatrj ! set calendar origin to the beginning of the experiment 464 464 IF(lwp)WRITE(numout,*) … … 482 482 CALL histbeg( clhstnam, jpi, glamt, jpj, gphit, & ! Horizontal grid: glamt and gphit 483 483 & iimi, iima-iimi+1, ijmi, ijma-ijmi+1, & 484 & nit000-1, zjulian, r dt, nh_T, nid_T, domain_id=nidom, snc4chunks=snc4set )484 & nit000-1, zjulian, rn_Dt, nh_T, nid_T, domain_id=nidom, snc4chunks=snc4set ) 485 485 CALL histvert( nid_T, "deptht", "Vertical T levels", & ! Vertical grid: gdept 486 486 & "m", ipk, gdept_1d, nz_T, "down" ) … … 518 518 CALL histbeg( clhstnam, jpi, glamu, jpj, gphiu, & ! Horizontal grid: glamu and gphiu 519 519 & iimi, iima-iimi+1, ijmi, ijma-ijmi+1, & 520 & nit000-1, zjulian, r dt, nh_U, nid_U, domain_id=nidom, snc4chunks=snc4set )520 & nit000-1, zjulian, rn_Dt, nh_U, nid_U, domain_id=nidom, snc4chunks=snc4set ) 521 521 CALL histvert( nid_U, "depthu", "Vertical U levels", & ! Vertical grid: gdept 522 522 & "m", ipk, gdept_1d, nz_U, "down" ) … … 531 531 CALL histbeg( clhstnam, jpi, glamv, jpj, gphiv, & ! Horizontal grid: glamv and gphiv 532 532 & iimi, iima-iimi+1, ijmi, ijma-ijmi+1, & 533 & nit000-1, zjulian, r dt, nh_V, nid_V, domain_id=nidom, snc4chunks=snc4set )533 & nit000-1, zjulian, rn_Dt, nh_V, nid_V, domain_id=nidom, snc4chunks=snc4set ) 534 534 CALL histvert( nid_V, "depthv", "Vertical V levels", & ! Vertical grid : gdept 535 535 & "m", ipk, gdept_1d, nz_V, "down" ) … … 544 544 CALL histbeg( clhstnam, jpi, glamt, jpj, gphit, & ! Horizontal grid: glamt and gphit 545 545 & iimi, iima-iimi+1, ijmi, ijma-ijmi+1, & 546 & nit000-1, zjulian, r dt, nh_W, nid_W, domain_id=nidom, snc4chunks=snc4set )546 & nit000-1, zjulian, rn_Dt, nh_W, nid_W, domain_id=nidom, snc4chunks=snc4set ) 547 547 CALL histvert( nid_W, "depthw", "Vertical W levels", & ! Vertical grid: gdepw 548 548 & "m", ipk, gdepw_1d, nz_W, "down" ) … … 554 554 CALL histbeg( clhstnam, jpi, glamt, jpj, gphit, & ! Horizontal grid: glamt and gphit 555 555 & iimi, iima-iimi+1, ijmi, ijma-ijmi+1, & 556 & nit000-1, zjulian, r dt, nh_A, nid_A, domain_id=nidom, snc4chunks=snc4set )556 & nit000-1, zjulian, rn_Dt, nh_A, nid_A, domain_id=nidom, snc4chunks=snc4set ) 557 557 CALL histvert( nid_A, "ght_abl", "Vertical T levels", & ! Vertical grid: gdept 558 558 & "m", ipka, ght_abl(2:jpka), nz_A, "up" )
Note: See TracChangeset
for help on using the changeset viewer.