- Timestamp:
- 2016-08-29T17:55:22+02:00 (8 years ago)
- Location:
- branches/2016/dev_r6409_SIMPLIF_2_usrdef/NEMOGCM/NEMO/OPA_SRC
- Files:
-
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2016/dev_r6409_SIMPLIF_2_usrdef/NEMOGCM/NEMO/OPA_SRC/DOM/daymod.F90
r6140 r6900 2 2 !!====================================================================== 3 3 !! *** MODULE daymod *** 4 !! Ocean :calendar4 !! Ocean : management of the model calendar 5 5 !!===================================================================== 6 6 !! History : OPA ! 1994-09 (M. Pontaud M. Imbard) Original code … … 16 16 !!---------------------------------------------------------------------- 17 17 !! day : calendar 18 !! 19 !! ------------------------------- 20 !! ----------- WARNING ----------- 21 !! 22 !! we suppose that the time step is deviding the number of second of in a day 23 !! ---> MOD( rday, rdt ) == 0 24 !! 25 !! ----------- WARNING ----------- 26 !! ------------------------------- 27 !! 18 !!---------------------------------------------------------------------- 19 !! ----------- WARNING ----------- 20 !! ------------------------------- 21 !! sbcmod assume that the time step is dividing the number of second of 22 !! in a day, i.e. ===> MOD( rday, rdt ) == 0 23 !! except when user defined forcing is used (see sbcmod.F90) 28 24 !!---------------------------------------------------------------------- 29 25 USE dom_oce ! ocean space and time domain 30 26 USE phycst ! physical constants 27 USE ioipsl , ONLY : ymds2ju ! for calendar 28 USE trc_oce , ONLY : lk_offline ! offline flag 29 ! 31 30 USE in_out_manager ! I/O manager 31 USE prtctl ! Print control 32 32 USE iom ! 33 USE ioipsl , ONLY : ymds2ju ! for calendar34 USE prtctl ! Print control35 USE trc_oce , ONLY : lk_offline ! offline flag36 33 USE timing ! Timing 37 34 USE restart ! restart … … 47 44 48 45 !!---------------------------------------------------------------------- 49 !! NEMO/OPA 3.3 , NEMO Consortium (2010)46 !! NEMO/OPA 4.0 , NEMO Consortium (2016) 50 47 !! $Id$ 51 48 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) … … 70 67 !! - nmonth_len, nyear_len, nmonth_half, nmonth_end through day_mth 71 68 !!---------------------------------------------------------------------- 72 INTEGER :: inbday, idweek 73 REAL(wp) :: zjul 69 INTEGER :: inbday, idweek ! local integers 70 REAL(wp) :: zjul ! local scalar 74 71 !!---------------------------------------------------------------------- 75 72 ! … … 79 76 & 'You must do a restart at higher frequency (or remove this stop and recompile the code in I8)' ) 80 77 ENDIF 81 ! all calendar staff is based on the fact that MOD( rday, rdt ) == 0 82 IF( MOD( rday , rdt ) /= 0. ) CALL ctl_stop( 'the time step must devide the number of second of in a day' ) 83 IF( MOD( rday , 2. ) /= 0. ) CALL ctl_stop( 'the number of second of in a day must be an even number' ) 84 IF( MOD( rdt , 2. ) /= 0. ) CALL ctl_stop( 'the time step (in second) must be an even number' ) 85 nsecd = NINT(rday ) 86 nsecd05 = NINT(0.5 * rday ) 87 ndt = NINT( rdt ) 88 ndt05 = NINT(0.5 * rdt ) 89 90 IF( .NOT. lk_offline ) CALL day_rst( nit000, 'READ' ) 78 nsecd = NINT( rday ) 79 nsecd05 = NINT( 0.5 * rday ) 80 ndt = NINT( rdt ) 81 ndt05 = NINT( 0.5 * rdt ) 82 83 IF( .NOT. lk_offline ) CALL day_rst( nit000, 'READ' ) 91 84 92 85 ! set the calandar from ndastp (read in restart file and namelist) 93 94 86 nyear = ndastp / 10000 95 87 nmonth = ( ndastp - (nyear * 10000) ) / 100 -
branches/2016/dev_r6409_SIMPLIF_2_usrdef/NEMOGCM/NEMO/OPA_SRC/OBS/obs_conv_functions.h90
r2287 r6900 71 71 72 72 !! * Arguments 73 REAL(KIND=wp) :: pft ! in situ temperature in degrees celcius73 REAL(KIND=wp) :: pft ! in situ temperature in degrees Celsius 74 74 REAL(KIND=wp) :: pfs ! salinity in psu 75 75 REAL(KIND=wp) :: pfp ! pressure in bars -
branches/2016/dev_r6409_SIMPLIF_2_usrdef/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_clio.F90
r5836 r6900 215 215 !!---------------------------------------------------------------------- 216 216 TYPE(fld), INTENT(in), DIMENSION(:) :: sf ! input data 217 REAL(wp) , INTENT(in), DIMENSION(jpi,jpj) :: pst ! surface temperature [Cel cius]217 REAL(wp) , INTENT(in), DIMENSION(jpi,jpj) :: pst ! surface temperature [Celsius] 218 218 !! 219 219 INTEGER :: ji, jj ! dummy loop indices … … 279 279 DO ji = 1, jpi 280 280 ! 281 zsst = pst(ji,jj) + rt0 ! converte Cel cius to Kelvin the SST281 zsst = pst(ji,jj) + rt0 ! converte Celsius to Kelvin the SST 282 282 ztatm = sf(jp_tair)%fnow(ji,jj,1) ! and set minimum value far above 0 K (=rt0 over land) 283 283 zcco1 = 1.0 - sf(jp_ccov)%fnow(ji,jj,1) ! fraction of clear sky ( 1 - cloud cover) … … 371 371 ! 372 372 qns(:,:) = zqlw(:,:) - zqsb(:,:) - zqla(:,:) & ! Downward Non Solar flux 373 & - zqla(:,:) * pst(:,:) * zcevap & ! remove evap. heat content at SST in Cel cius374 & + sf(jp_prec)%fnow(:,:,1) * sf(jp_tair)%fnow(:,:,1) * zcprec ! add precip. heat content at Tair in Cel cius373 & - zqla(:,:) * pst(:,:) * zcevap & ! remove evap. heat content at SST in Celsius 374 & + sf(jp_prec)%fnow(:,:,1) * sf(jp_tair)%fnow(:,:,1) * zcprec ! add precip. heat content at Tair in Celsius 375 375 qns(:,:) = qns(:,:) * tmask(:,:,1) 376 376 #if defined key_lim3 -
branches/2016/dev_r6409_SIMPLIF_2_usrdef/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_core.F90
r6140 r6900 241 241 INTEGER , INTENT(in ) :: kt ! time step index 242 242 TYPE(fld), INTENT(inout), DIMENSION(:) :: sf ! input data 243 REAL(wp) , INTENT(in) , DIMENSION(:,:) :: pst ! surface temperature [Cel cius]243 REAL(wp) , INTENT(in) , DIMENSION(:,:) :: pst ! surface temperature [Celsius] 244 244 REAL(wp) , INTENT(in) , DIMENSION(:,:) :: pu ! surface current at U-point (i-component) [m/s] 245 245 REAL(wp) , INTENT(in) , DIMENSION(:,:) :: pv ! surface current at V-point (j-component) [m/s] … … 267 267 zcoef_qsatw = 0.98 * 640380. / rhoa 268 268 269 zst(:,:) = pst(:,:) + rt0 ! convert SST from Cel cius to Kelvin (and set minimum value far above 0 K)269 zst(:,:) = pst(:,:) + rt0 ! convert SST from Celsius to Kelvin (and set minimum value far above 0 K) 270 270 271 271 ! ----------------------------------------------------------------------------- ! -
branches/2016/dev_r6409_SIMPLIF_2_usrdef/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90
r6165 r6900 555 555 WRITE(numout,*)' Additional received fields from OPA component : ' 556 556 ENDIF 557 WRITE(numout,*)' sea surface temperature (Cel cius) '557 WRITE(numout,*)' sea surface temperature (Celsius) ' 558 558 WRITE(numout,*)' sea surface salinity ' 559 559 WRITE(numout,*)' surface currents ' … … 710 710 WRITE(numout,*) 711 711 WRITE(numout,*)' sent fields to SAS component ' 712 WRITE(numout,*)' sea surface temperature (T before, Cel cius) '712 WRITE(numout,*)' sea surface temperature (T before, Celsius) ' 713 713 WRITE(numout,*)' sea surface salinity ' 714 714 WRITE(numout,*)' surface currents U,V on local grid and spherical coordinates' -
branches/2016/dev_r6409_SIMPLIF_2_usrdef/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_if.F90
r6596 r6900 101 101 ! ( d rho / dt ) / ( d rho / ds ) ( s = 34, t = -1.8 ) 102 102 103 CALL eos_fzp( sss_m(:,:), fr_i(:,:) ) ! sea surface freezing temperature [Cel cius]103 CALL eos_fzp( sss_m(:,:), fr_i(:,:) ) ! sea surface freezing temperature [Celsius] 104 104 fr_i(:,:) = fr_i(:,:) * tmask(:,:,1) 105 105 -
branches/2016/dev_r6409_SIMPLIF_2_usrdef/NEMOGCM/NEMO/OPA_SRC/SBC/sbcmod.F90
r6717 r6900 19 19 !! sbc_init : read namsbc namelist 20 20 !! sbc : surface ocean momentum, heat and freshwater boundary conditions 21 !! sbc_final : Finalize CICE ice model (if used) 21 22 !!---------------------------------------------------------------------- 22 23 USE oce ! ocean dynamics and tracers … … 37 38 USE sbcice_cice ! surface boundary condition: CICE sea-ice model 38 39 USE sbccpl ! surface boundary condition: coupled florulation 39 USE usrdef_sbc ! user defined: surface boundary condition40 40 USE cpl_oasis3 ! OASIS routines for coupling 41 41 USE sbcssr ! surface boundary condition: sea surface restoring … … 47 47 USE sbcwave ! Wave module 48 48 USE bdy_par ! Require lk_bdy 49 USE usrdef_closea ! closed sea 49 USE usrdef_sbc ! user defined: surface boundary condition 50 USE usrdef_closea ! user defined: closed sea 50 51 ! 51 52 USE prtctl ! Print control (prt_ctl routine) … … 55 56 USE timing ! Timing 56 57 57 USE diurnal_bulk, ONLY: & 58 & ln_diurnal_only 58 USE diurnal_bulk, ONLY: ln_diurnal_only ! diurnal SST diagnostic 59 59 60 60 IMPLICIT NONE … … 67 67 68 68 !!---------------------------------------------------------------------- 69 !! NEMO/OPA 4.0 , NEMO-consortium (201 1)69 !! NEMO/OPA 4.0 , NEMO-consortium (2016) 70 70 !! $Id$ 71 71 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) … … 105 105 ENDIF 106 106 ! 107 REWIND( numnam_ref ) 107 REWIND( numnam_ref ) ! Namelist namsbc in reference namelist : Surface boundary 108 108 READ ( numnam_ref, namsbc, IOSTAT = ios, ERR = 901) 109 109 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc in reference namelist', lwp ) 110 110 ! 111 REWIND( numnam_cfg ) 111 REWIND( numnam_cfg ) ! Namelist namsbc in configuration namelist : Parameters of the run 112 112 READ ( numnam_cfg, namsbc, IOSTAT = ios, ERR = 902 ) 113 113 902 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc in configuration namelist', lwp ) … … 122 122 ! 123 123 IF(lwp) THEN ! Control print 124 WRITE(numout,*) ' Namelist namsbc (partly overwritten with CPP key setting)' 125 WRITE(numout,*) ' frequency update of sbc (and ice) nn_fsbc = ', nn_fsbc 126 WRITE(numout,*) ' Type of air-sea fluxes : ' 127 WRITE(numout,*) ' user defined formulation ln_usr = ', ln_usr 128 WRITE(numout,*) ' flux formulation ln_flx = ', ln_flx 129 WRITE(numout,*) ' CLIO bulk formulation ln_blk_clio = ', ln_blk_clio 130 WRITE(numout,*) ' CORE bulk formulation ln_blk_core = ', ln_blk_core 131 WRITE(numout,*) ' MFS bulk formulation ln_blk_mfs = ', ln_blk_mfs 132 WRITE(numout,*) ' Type of coupling (Ocean/Ice/Atmosphere) : ' 133 WRITE(numout,*) ' ocean-atmosphere coupled formulation ln_cpl = ', ln_cpl 134 WRITE(numout,*) ' forced-coupled mixed formulation ln_mixcpl = ', ln_mixcpl 135 WRITE(numout,*) ' OASIS coupling (with atm or sas) lk_oasis = ', lk_oasis 136 WRITE(numout,*) ' components of your executable nn_components = ', nn_components 137 WRITE(numout,*) ' Multicategory heat flux formulation (LIM3) nn_limflx = ', nn_limflx 138 WRITE(numout,*) ' Sea-ice : ' 139 WRITE(numout,*) ' ice management in the sbc (=0/1/2/3) nn_ice = ', nn_ice 140 WRITE(numout,*) ' ice-ocean embedded/levitating (=0/1/2) nn_ice_embd = ', nn_ice_embd 141 WRITE(numout,*) ' Misc. options of sbc : ' 142 WRITE(numout,*) ' Light penetration in temperature Eq. ln_traqsr = ', ln_traqsr 143 WRITE(numout,*) ' daily mean to diurnal cycle qsr ln_dm2dc = ', ln_dm2dc 144 WRITE(numout,*) ' Sea Surface Restoring on SST and/or SSS ln_ssr = ', ln_ssr 145 WRITE(numout,*) ' FreshWater Budget control (=0/1/2) nn_fwb = ', nn_fwb 146 WRITE(numout,*) ' Patm gradient added in ocean & ice Eqs. ln_apr_dyn = ', ln_apr_dyn 147 WRITE(numout,*) ' runoff / runoff mouths ln_rnf = ', ln_rnf 148 WRITE(numout,*) ' iceshelf formulation ln_isf = ', ln_isf 149 WRITE(numout,*) ' closed sea (=0/1) (set in namdom) nn_closea = ', nn_closea 150 WRITE(numout,*) ' nb of iterations if land-sea-mask applied nn_lsm = ', nn_lsm 151 WRITE(numout,*) ' surface wave ln_wave = ', ln_wave 124 WRITE(numout,*) ' Namelist namsbc (partly overwritten with CPP key setting)' 125 WRITE(numout,*) ' Frequency update of sbc (and ice) nn_fsbc = ', nn_fsbc 126 WRITE(numout,*) ' Type of air-sea fluxes : ' 127 WRITE(numout,*) ' user defined formulation ln_usr = ', ln_usr 128 WRITE(numout,*) ' flux formulation ln_flx = ', ln_flx 129 WRITE(numout,*) ' CLIO bulk formulation ln_blk_clio = ', ln_blk_clio 130 WRITE(numout,*) ' CORE bulk formulation ln_blk_core = ', ln_blk_core 131 WRITE(numout,*) ' MFS bulk formulation ln_blk_mfs = ', ln_blk_mfs 132 WRITE(numout,*) ' Type of coupling (Ocean/Ice/Atmosphere) : ' 133 WRITE(numout,*) ' ocean-atmosphere coupled formulation ln_cpl = ', ln_cpl 134 WRITE(numout,*) ' forced-coupled mixed formulation ln_mixcpl = ', ln_mixcpl 135 WRITE(numout,*) ' OASIS coupling (with atm or sas) lk_oasis = ', lk_oasis 136 WRITE(numout,*) ' components of your executable nn_components = ', nn_components 137 WRITE(numout,*) ' Multicategory heat flux formulation (LIM3) nn_limflx = ', nn_limflx 138 WRITE(numout,*) ' Sea-ice : ' 139 WRITE(numout,*) ' ice management in the sbc (=0/1/2/3) nn_ice = ', nn_ice 140 WRITE(numout,*) ' ice-ocean embedded/levitating (=0/1/2) nn_ice_embd = ', nn_ice_embd 141 WRITE(numout,*) ' Misc. options of sbc : ' 142 WRITE(numout,*) ' Light penetration in temperature Eq. ln_traqsr = ', ln_traqsr 143 WRITE(numout,*) ' daily mean to diurnal cycle qsr ln_dm2dc = ', ln_dm2dc 144 WRITE(numout,*) ' Sea Surface Restoring on SST and/or SSS ln_ssr = ', ln_ssr 145 WRITE(numout,*) ' FreshWater Budget control (=0/1/2) nn_fwb = ', nn_fwb 146 WRITE(numout,*) ' Patm gradient added in ocean & ice Eqs. ln_apr_dyn = ', ln_apr_dyn 147 WRITE(numout,*) ' runoff / runoff mouths ln_rnf = ', ln_rnf 148 WRITE(numout,*) ' iceshelf formulation ln_isf = ', ln_isf 149 WRITE(numout,*) ' closed sea (=0/1) (set in namdom) nn_closea = ', nn_closea 150 WRITE(numout,*) ' nb of iterations if land-sea-mask applied nn_lsm = ', nn_lsm 151 WRITE(numout,*) ' surface wave ln_wave = ', ln_wave 152 ENDIF 153 ! 154 IF( .NOT.ln_usr ) THEN ! the model calendar needs some specificities (except in user defined case) 155 IF( MOD( rday , rdt ) /= 0. ) CALL ctl_stop( 'the time step must devide the number of second of in a day' ) 156 IF( MOD( rday , 2. ) /= 0. ) CALL ctl_stop( 'the number of second of in a day must be an even number' ) 157 IF( MOD( rdt , 2. ) /= 0. ) CALL ctl_stop( 'the time step (in second) must be an even number' ) 152 158 ENDIF 153 159 ! -
branches/2016/dev_r6409_SIMPLIF_2_usrdef/NEMOGCM/NEMO/OPA_SRC/SBC/sbcssm.F90
r6140 r6900 46 46 !! 47 47 !! ** Method : compute mean surface velocity (2 components at U and 48 !! V-points) [m/s], temperature [Cel cius] and salinity [psu] over48 !! V-points) [m/s], temperature [Celsius] and salinity [psu] over 49 49 !! the periode (kt - nn_fsbc) to kt 50 50 !! Note that the inverse barometer ssh (i.e. ssh associated with Patm) … … 137 137 ! ! ---------------------------------------- ! 138 138 zcoef = 1. / REAL( nn_fsbc, wp ) 139 sst_m(:,:) = sst_m(:,:) * zcoef ! mean SST [Cel cius]139 sst_m(:,:) = sst_m(:,:) * zcoef ! mean SST [Celsius] 140 140 sss_m(:,:) = sss_m(:,:) * zcoef ! mean SSS [psu] 141 141 ssu_m(:,:) = ssu_m(:,:) * zcoef ! mean suface current [m/s] -
branches/2016/dev_r6409_SIMPLIF_2_usrdef/NEMOGCM/NEMO/OPA_SRC/TRA/eosbn2.F90
r6140 r6900 195 195 !! 196 196 !! nn_eos = -1 : polynomial TEOS-10 equation of state is used for rho(t,s,z). 197 !! Check value: rho = 1028.21993233072 kg/m^3 for z=3000 dbar, ct=3 Cel cius, sa=35.5 g/kg197 !! Check value: rho = 1028.21993233072 kg/m^3 for z=3000 dbar, ct=3 Celsius, sa=35.5 g/kg 198 198 !! 199 199 !! nn_eos = 0 : polynomial EOS-80 equation of state is used for rho(t,s,z). 200 !! Check value: rho = 1028.35011066567 kg/m^3 for z=3000 dbar, pt=3 Cel cius, sp=35.5 psu200 !! Check value: rho = 1028.35011066567 kg/m^3 for z=3000 dbar, pt=3 Celsius, sp=35.5 psu 201 201 !! 202 202 !! nn_eos = 1 : simplified equation of state … … 212 212 !! TEOS-10 Manual, 2010 213 213 !!---------------------------------------------------------------------- 214 REAL(wp), DIMENSION(jpi,jpj,jpk,jpts), INTENT(in ) :: pts ! 1 : potential temperature [Cel cius]214 REAL(wp), DIMENSION(jpi,jpj,jpk,jpts), INTENT(in ) :: pts ! 1 : potential temperature [Celsius] 215 215 ! ! 2 : salinity [psu] 216 216 REAL(wp), DIMENSION(jpi,jpj,jpk ), INTENT( out) :: prd ! in situ density [-] … … 307 307 !! 308 308 !!---------------------------------------------------------------------- 309 REAL(wp), DIMENSION(jpi,jpj,jpk,jpts), INTENT(in ) :: pts ! 1 : potential temperature [Cel cius]309 REAL(wp), DIMENSION(jpi,jpj,jpk,jpts), INTENT(in ) :: pts ! 1 : potential temperature [Celsius] 310 310 ! ! 2 : salinity [psu] 311 311 REAL(wp), DIMENSION(jpi,jpj,jpk ), INTENT( out) :: prd ! in situ density [-] … … 472 472 !! 473 473 !!---------------------------------------------------------------------- 474 REAL(wp), DIMENSION(jpi,jpj,jpts), INTENT(in ) :: pts ! 1 : potential temperature [Cel cius]474 REAL(wp), DIMENSION(jpi,jpj,jpts), INTENT(in ) :: pts ! 1 : potential temperature [Celsius] 475 475 ! ! 2 : salinity [psu] 476 476 REAL(wp), DIMENSION(jpi,jpj) , INTENT(in ) :: pdep ! depth [m] … … 897 897 !! 898 898 !!---------------------------------------------------------------------- 899 REAL(wp), DIMENSION(jpi,jpj,jpk,jpts), INTENT(in ) :: pts ! pot. temperature and salinity [Cel cius,psu]900 REAL(wp), DIMENSION(jpi,jpj,jpk,jpts), INTENT(in ) :: pab ! thermal/haline expansion coef. [Cel cius-1,psu-1]899 REAL(wp), DIMENSION(jpi,jpj,jpk,jpts), INTENT(in ) :: pts ! pot. temperature and salinity [Celsius,psu] 900 REAL(wp), DIMENSION(jpi,jpj,jpk,jpts), INTENT(in ) :: pab ! thermal/haline expansion coef. [Celsius-1,psu-1] 901 901 REAL(wp), DIMENSION(jpi,jpj,jpk ), INTENT( out) :: pn2 ! Brunt-Vaisala frequency squared [1/s^2] 902 902 ! … … 934 934 !! *** ROUTINE eos_pt_from_ct *** 935 935 !! 936 !! ** Purpose : Compute pot.temp. from cons. temp. [Cel cius]936 !! ** Purpose : Compute pot.temp. from cons. temp. [Celsius] 937 937 !! 938 938 !! ** Method : rational approximation (5/3th order) of TEOS-10 algorithm … … 942 942 !! Rational approximation to TEOS10 algorithm (rms error on WOA13 values: 4.0e-5 degC) 943 943 !!---------------------------------------------------------------------- 944 REAL(wp), DIMENSION(jpi,jpj), INTENT(in ) :: ctmp ! Cons. Temp [Celcius] 944 REAL(wp), DIMENSION(jpi,jpj), INTENT(in ) :: ctmp ! Cons. Temp 945 [Celsius] 945 946 REAL(wp), DIMENSION(jpi,jpj), INTENT(in ) :: psal ! salinity [psu] 946 947 ! Leave result array automatic rather than making explicitly allocated 947 REAL(wp), DIMENSION(jpi,jpj) :: ptmp ! potential temperature [Cel cius]948 REAL(wp), DIMENSION(jpi,jpj) :: ptmp ! potential temperature [Celsius] 948 949 ! 949 950 INTEGER :: ji, jj ! dummy loop indices … … 993 994 !! *** ROUTINE eos_fzp *** 994 995 !! 995 !! ** Purpose : Compute the freezing point temperature [Cel cius]996 !! 997 !! ** Method : UNESCO freezing point (ptf) in Cel cius is given by996 !! ** Purpose : Compute the freezing point temperature [Celsius] 997 !! 998 !! ** Method : UNESCO freezing point (ptf) in Celsius is given by 998 999 !! ptf(t,z) = (-.0575+1.710523e-3*sqrt(abs(s))-2.154996e-4*s)*s - 7.53e-4*z 999 1000 !! checkvalue: tf=-2.588567 Celsius for s=40psu, z=500m … … 1003 1004 REAL(wp), DIMENSION(jpi,jpj), INTENT(in ) :: psal ! salinity [psu] 1004 1005 REAL(wp), DIMENSION(jpi,jpj), INTENT(in ), OPTIONAL :: pdep ! depth [m] 1005 REAL(wp), DIMENSION(jpi,jpj), INTENT(out ) :: ptf ! freezing temperature [Cel cius]1006 REAL(wp), DIMENSION(jpi,jpj), INTENT(out ) :: ptf ! freezing temperature [Celsius] 1006 1007 ! 1007 1008 INTEGER :: ji, jj ! dummy loop indices … … 1044 1045 !! *** ROUTINE eos_fzp *** 1045 1046 !! 1046 !! ** Purpose : Compute the freezing point temperature [Cel cius]1047 !! 1048 !! ** Method : UNESCO freezing point (ptf) in Cel cius is given by1047 !! ** Purpose : Compute the freezing point temperature [Celsius] 1048 !! 1049 !! ** Method : UNESCO freezing point (ptf) in Celsius is given by 1049 1050 !! ptf(t,z) = (-.0575+1.710523e-3*sqrt(abs(s))-2.154996e-4*s)*s - 7.53e-4*z 1050 1051 !! checkvalue: tf=-2.588567 Celsius for s=40psu, z=500m … … 1054 1055 REAL(wp), INTENT(in ) :: psal ! salinity [psu] 1055 1056 REAL(wp), INTENT(in ), OPTIONAL :: pdep ! depth [m] 1056 REAL(wp), INTENT(out) :: ptf ! freezing temperature [Cel cius]1057 REAL(wp), INTENT(out) :: ptf ! freezing temperature [Celsius] 1057 1058 ! 1058 1059 REAL(wp) :: zs ! local scalars -
branches/2016/dev_r6409_SIMPLIF_2_usrdef/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_fct.F90
r6140 r6900 149 149 DO jj = 2, jpjm1 150 150 DO ji = fs_2, fs_jpim1 ! vector opt. 151 ! total intermediate advective trends151 ! ! total intermediate advective trends 152 152 ztra = - ( zwx(ji,jj,jk) - zwx(ji-1,jj ,jk ) & 153 153 & + zwy(ji,jj,jk) - zwy(ji ,jj-1,jk ) & 154 & + zwz(ji,jj,jk) - zwz(ji ,jj ,jk+1) ) * r1_e1e2t(ji,jj) / e3t_n(ji,jj,jk) 155 ! update and guess with monotonic sheme 156 !!gm why tmask added in the two following lines ??? the mask is done in tranxt ! 157 pta(ji,jj,jk,jn) = pta(ji,jj,jk,jn) + ztra * tmask(ji,jj,jk) 158 zwi(ji,jj,jk) = ( ptb(ji,jj,jk,jn) + p2dt * ztra ) * tmask(ji,jj,jk) 154 & + zwz(ji,jj,jk) - zwz(ji ,jj ,jk+1) ) * r1_e1e2t(ji,jj) 155 ! ! update and guess with monotonic sheme 156 pta(ji,jj,jk,jn) = pta(ji,jj,jk,jn) + ztra / e3t_n(ji,jj,jk) * tmask(ji,jj,jk) 157 zwi(ji,jj,jk) = ( e3t_b(ji,jj,jk) * ptb(ji,jj,jk,jn) + p2dt * ztra ) / e3t_a(ji,jj,jk) * tmask(ji,jj,jk) 159 158 END DO 160 159 END DO … … 163 162 ! 164 163 IF( l_trd ) THEN ! trend diagnostics (contribution of upstream fluxes) 165 ztrdx(:,:,:) = zwx(:,:,:) ; ztrdy(:,:,:) = zwy(:,:,:); ztrdz(:,:,:) = zwz(:,:,:)164 ztrdx(:,:,:) = zwx(:,:,:) ; ztrdy(:,:,:) = zwy(:,:,:) ; ztrdz(:,:,:) = zwz(:,:,:) 166 165 END IF 167 166 ! ! "Poleward" heat and salt transports (contribution of upstream fluxes) … … 364 363 ! 365 364 CALL wrk_alloc( jpi,jpj, zwx_sav, zwy_sav ) 366 CALL wrk_alloc( jpi,jpj, jpk,zwx, zwy, zwz, zwi, zhdiv, zwzts, zwz_sav )365 CALL wrk_alloc( jpi,jpj,jpk, zwx, zwy, zwz, zwi, zhdiv, zwzts, zwz_sav ) 367 366 CALL wrk_alloc( jpi,jpj,jpk,kjpt+1, ztrs ) 368 367 ! … … 436 435 ztra = - ( zwx(ji,jj,jk) - zwx(ji-1,jj ,jk ) & 437 436 & + zwy(ji,jj,jk) - zwy(ji ,jj-1,jk ) & 438 & + zwz(ji,jj,jk) - zwz(ji ,jj ,jk+1) ) * r1_e1e2t(ji,jj) / e3t_n(ji,jj,jk)437 & + zwz(ji,jj,jk) - zwz(ji ,jj ,jk+1) ) * r1_e1e2t(ji,jj) 439 438 ! ! update and guess with monotonic sheme 440 pta(ji,jj,jk,jn) = pta(ji,jj,jk,jn) + ztra441 zwi(ji,jj,jk) = ( ptb(ji,jj,jk,jn) + p2dt * ztra) * tmask(ji,jj,jk)439 pta(ji,jj,jk,jn) = pta(ji,jj,jk,jn) + ztra / e3t_n(ji,jj,jk) * tmask(ji,jj,jk) 440 zwi(ji,jj,jk) = ( e3t_b(ji,jj,jk) * ptb(ji,jj,jk,jn) + p2dt * ztra ) / e3t_a(ji,jj,jk) * tmask(ji,jj,jk) 442 441 END DO 443 442 END DO … … 488 487 zwz_sav(:,:,:) = zwz(:,:,:) 489 488 ztrs (:,:,:,1) = ptb(:,:,:,jn) 489 ztrs (:,:,1,2) = ptb(:,:,1,jn) 490 ztrs (:,:,1,3) = ptb(:,:,1,jn) 490 491 zwzts (:,:,:) = 0._wp 491 492 ! -
branches/2016/dev_r6409_SIMPLIF_2_usrdef/NEMOGCM/NEMO/OPA_SRC/USR/usrdef_istate.F90
r6893 r6900 40 40 REAL(wp), DIMENSION(jpi,jpj,jpk) , INTENT(in ) :: pdept ! depth of t-point [m] 41 41 REAL(wp), DIMENSION(jpi,jpj,jpk) , INTENT(in ) :: ptmask ! t-point ocean mask [m] 42 REAL(wp), DIMENSION(jpi,jpj,jpk,jpts), INTENT( out) :: pts ! T & S fields [Cel cius ; g/kg]42 REAL(wp), DIMENSION(jpi,jpj,jpk,jpts), INTENT( out) :: pts ! T & S fields [Celsius ; g/kg] 43 43 REAL(wp), DIMENSION(jpi,jpj,jpk) , INTENT( out) :: pu ! i-component of the velocity [m/s] 44 44 REAL(wp), DIMENSION(jpi,jpj,jpk) , INTENT( out) :: pv ! j-component of the velocity [m/s] -
branches/2016/dev_r6409_SIMPLIF_2_usrdef/NEMOGCM/NEMO/OPA_SRC/oce.F90
r6140 r6900 23 23 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: wn !: vertical velocity [m/s] 24 24 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: hdivn !: horizontal divergence [s-1] 25 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) :: tsb , tsn , tsa !: 4D T-S fields [Cel cius,psu]26 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) :: rab_b, rab_n !: thermal/haline expansion coef. [Cel cius-1,psu-1]25 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) :: tsb , tsn , tsa !: 4D T-S fields [Celsius,psu] 26 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) :: rab_b, rab_n !: thermal/haline expansion coef. [Celsius-1,psu-1] 27 27 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: rn2b , rn2 !: brunt-vaisala frequency**2 [s-2] 28 28 !
Note: See TracChangeset
for help on using the changeset viewer.