- Timestamp:
- 2009-11-16T16:15:24+01:00 (15 years ago)
- Location:
- trunk/NEMO/OPA_SRC
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/OPA_SRC/DOM/domain.F90
r1604 r1732 184 184 #endif 185 185 186 SELECT CASE ( nleapy ) ! year=raajj*days day=rjjhh*hours hour=rhhmm*minutes etc ...187 CASE ( 1 )188 raajj = 365.25189 raass = raajj * rjjss190 rmoss = raass/raamo191 CASE ( 0 )192 raajj = 365.193 raass = raajj * rjjss194 rmoss = raass/raamo195 CASE DEFAULT196 raajj = FLOAT( nleapy ) * raamo197 raass = raajj * rjjss198 rmoss = FLOAT( nleapy ) * rjjss199 END SELECT200 IF(lwp) THEN201 WRITE(numout,*)202 WRITE(numout,*) ' nb of days per year raajj = ', raajj,' days'203 WRITE(numout,*) ' nb of seconds per year raass = ', raass, ' s'204 WRITE(numout,*) ' nb of seconds per month rmoss = ', rmoss, ' s'205 ENDIF206 207 186 REWIND( numnam ) ! Namelist namdom : space & time domain (bathymetry, mesh, timestep) 208 187 READ ( numnam, namdom ) -
trunk/NEMO/OPA_SRC/DOM/phycst.F90
r1613 r1732 30 30 rsiyea , & !: sideral year (s) 31 31 rsiday , & !: sideral day (s) 32 raajj = 365._wp , & !: number of days in one year33 32 raamo = 12._wp , & !: number of months in one year 34 33 rjjhh = 24._wp , & !: number of hours in one day 35 34 rhhmm = 60._wp , & !: number of minutes in one hour 36 35 rmmss = 60._wp , & !: number of seconds in one minute 37 raass , & !: number of seconds in one year38 rmoss , & !: number of seconds in one month39 rjjss , & !: number of seconds in one day40 36 !!! omega = 7.292115083046061e-5_wp , & !: change the last digit! 41 37 omega , & !: earth rotation parameter … … 141 137 IF(lwp) WRITE(numout,*) ' omega omega = ', omega, ' s-1' 142 138 143 rjjss = rjjhh * rhhmm * rmmss144 139 IF(lwp) WRITE(numout,*) 145 140 IF(lwp) WRITE(numout,*) ' nb of months per year raamo = ', raamo, ' months' … … 147 142 IF(lwp) WRITE(numout,*) ' nb of minutes per hour rhhmm = ', rhhmm, ' mn' 148 143 IF(lwp) WRITE(numout,*) ' nb of seconds per minute rmmss = ', rmmss, ' s' 149 IF(lwp) WRITE(numout,*) ' nb of seconds per day rjjss = ', rjjss, ' s'150 144 151 145 IF(lwp) WRITE(numout,*) -
trunk/NEMO/OPA_SRC/OBC/obcdta.F90
r1715 r1732 37 37 INTEGER :: nt_a=2, nt_b=1, itobc, ndate0_cnes, nday_year0 38 38 INTEGER :: itobce, itobcw, itobcs, itobcn, itobc_b ! number of time steps in OBC files 39 REAL(wp) :: zraaj=365.40 39 41 40 INTEGER :: & … … 170 169 ! ------------------------------------ 171 170 IF ( ln_obc_clim) THEN 172 znum= MOD(zjcnes - zjcnes_obc(nt_b), zraaj ) ; IF ( znum < 0 ) znum = znum + zraaj173 zden= MOD(zjcnes_obc(nt_a) - zjcnes_obc(nt_b), zraaj ) ; IF ( zden < 0 ) zden = zden + zraaj171 znum= MOD(zjcnes - zjcnes_obc(nt_b), REAL(nyear_len(1),wp) ) ; IF ( znum < 0 ) znum = znum + REAL(nyear_len(1),wp) 172 zden= MOD(zjcnes_obc(nt_a) - zjcnes_obc(nt_b), REAL(nyear_len(1),wp) ) ; IF ( zden < 0 ) zden = zden + REAL(nyear_len(1),wp) 174 173 ELSE 175 174 znum= zjcnes - zjcnes_obc(nt_b) … … 258 257 ENDIF 259 258 nday_year0 = nday_year ! to remember the day when kt=nit000 260 SELECT CASE (nleapy)261 CASE ( 0 ) ; zraaj = 365.e0262 CASE ( 1 ) ; zraaj = 366.e0 !! ERROR TO CORRECT: NOT EVERY YEAR IS LEAP YEAR !! JMM263 CASE DEFAULT; zraaj = 12.* nleapy264 END SELECT265 259 266 260 sedta(:,:,:) = 0.e0 ; tedta(:,:,:) = 0.e0 ; uedta(:,:,:) = 0.e0 ; vedta(:,:,:) = 0.e0 ! East -
trunk/NEMO/OPA_SRC/SBC/sbcana.F90
r1715 r1732 146 146 REAL(wp) :: zcdrag = 1.5e-3 ! drag coefficient 147 147 REAL(wp) :: ztx, zty, zmod, zcoef ! temporary variables 148 REAL(wp) :: zyydd ! number of days in one year 148 149 !!--------------------------------------------------------------------- 149 150 zyydd = REAL(nyear_len(1),wp) 151 150 152 ! ---------------------------- ! 151 153 ! heat and freshwater fluxes ! … … 160 162 ! current day (in hours) since january the 1st of the current year 161 163 ztime = REAL( kt ) * rdt / (rmmss * rhhmm) & ! total incrementation (in hours) 162 & - (nyear - 1) * rjjhh * raajj! minus years since beginning of experiment (in hours)164 & - (nyear - 1) * rjjhh * zyydd ! minus years since beginning of experiment (in hours) 163 165 164 166 ztimemax1 = ((5.*30.)+21.)* 24. ! 21th june at 24h in hours 165 ztimemin1 = ztimemax1 + rjjhh * raajj/ 2 ! 21th december in hours167 ztimemin1 = ztimemax1 + rjjhh * zyydd / 2 ! 21th december in hours 166 168 ztimemax2 = ((6.*30.)+21.)* 24. ! 21th july at 24h in hours 167 ztimemin2 = ztimemax2 - rjjhh * raajj/ 2 ! 21th january in hours168 ! ! NB: rjjhh * raajj/ 4 = one seasonal cycle in hours169 ztimemin2 = ztimemax2 - rjjhh * zyydd / 2 ! 21th january in hours 170 ! ! NB: rjjhh * zyydd / 4 = one seasonal cycle in hours 169 171 170 172 ! amplitudes … … 243 245 ! day (in hours) since january the 1st 244 246 ztime = FLOAT( kt ) * rdt / (rmmss * rhhmm) & ! incrementation in hour 245 & - (nyear - 1) * rjjhh * raajj! - nber of hours the precedent years247 & - (nyear - 1) * rjjhh * zyydd ! - nber of hours the precedent years 246 248 ztimemax = ((5.*30.)+21.)* 24. ! 21th june in hours 247 ztimemin = ztimemax + rjjhh * raajj/ 2 ! 21th december in hours248 ! ! NB: rjjhh * raajj/ 4 = 1 seasonal cycle in hours249 ztimemin = ztimemax + rjjhh * zyydd / 2 ! 21th december in hours 250 ! ! NB: rjjhh * zyydd / 4 = 1 seasonal cycle in hours 249 251 250 252 ! mean intensity at 0.105 ; srqt(2) because projected with 45deg angle … … 287 289 WRITE(numout,*)' nmonth = ', nmonth 288 290 WRITE(numout,*)' nday = ', nday 289 WRITE(numout,*)' nday_year = ', nday_year291 WRITE(numout,*)' nday_year = ', nday_year 290 292 WRITE(numout,*)' ztime = ', ztime 293 WRITE(numout,*)' ztimemax = ', ztimemax 294 WRITE(numout,*)' ztimemin = ', ztimemin 291 295 WRITE(numout,*)' ztimemax1 = ', ztimemax1 292 296 WRITE(numout,*)' ztimemin1 = ', ztimemin1 … … 297 301 WRITE(numout,*)' zday0 = ', zday0 298 302 WRITE(numout,*)' zday_year0 = ', zday_year0 299 WRITE(numout,*)' raajj = ', raajj303 WRITE(numout,*)' zyydd = ', zyydd 300 304 WRITE(numout,*)' zemp_S = ', zemp_S 301 305 WRITE(numout,*)' zemp_N = ', zemp_N … … 306 310 WRITE(numout,*)' ztrp = ', ztrp 307 311 WRITE(numout,*)' zconv = ', zconv 308 309 WRITE(numout,*)' ndastp = ',ndastp 310 WRITE(numout,*)' adatrj = ',adatrj 311 WRITE(numout,*)' ztime = ',ztime 312 313 WRITE(numout,*)' ztimemax = ',ztimemax 314 WRITE(numout,*)' ztimemin = ',ztimemin 315 WRITE(numout,*)' zyear0 = ', zyear0 316 WRITE(numout,*)' zmonth0 = ', zmonth0 317 WRITE(numout,*)' zday0 = ', zday0 318 WRITE(numout,*)' zday_year0 = ',zday_year0 319 WRITE(numout,*)' raajj = ', raajj 312 WRITE(numout,*)' ndastp = ', ndastp 313 WRITE(numout,*)' adatrj = ', adatrj 314 320 315 ENDIF 321 316 ! -
trunk/NEMO/OPA_SRC/SBC/sbcblk_clio.F90
r1730 r1732 63 63 #endif 64 64 65 REAL(wp) :: yearday !: number of days per year 66 REAL(wp) :: rdtbs2 !: number of days per year 65 REAL(wp) :: rdtbs2 !: 67 66 68 67 REAL(wp), DIMENSION(19) :: budyko ! BUDYKO's coefficient (cloudiness effect on LW radiation) … … 725 724 END DO 726 725 END DO 727 IF ( nleapy == 1 ) THEN ; yearday = 366.e0728 ELSEIF( nleapy == 0 ) THEN ; yearday = 365.e0729 ELSEIF( nleapy == 30) THEN ; yearday = 360.e0730 ENDIF731 726 lbulk_init = .FALSE. 732 727 ENDIF … … 764 759 ! correction factor added for computation of shortwave flux to take into account the variation of 765 760 ! the distance between the sun and the earth during the year (Oberhuber 1988) 766 zdist = zxday * 2. * rpi / yearday761 zdist = zxday * 2. * rpi / REAL(nyear_len(1), wp) 767 762 zdaycor = 1.0 + 0.0013 * SIN( zdist ) + 0.0342 * COS( zdist ) 768 763 … … 779 774 zlsset (ji,jj) = - zlsrise(ji,jj) 780 775 ! dividing the solar day into jp24 segments of length zdlha 781 zdlha (ji,jj) = ( zlsrise(ji,jj) - zlsset(ji,jj) ) / REAL( jp24 )776 zdlha (ji,jj) = ( zlsrise(ji,jj) - zlsset(ji,jj) ) / REAL( jp24, wp ) 782 777 END DO 783 778 END DO … … 894 889 ! correction factor added for computation of shortwave flux to take into account the variation of 895 890 ! the distance between the sun and the earth during the year (Oberhuber 1988) 896 zdist = zxday * 2. * rpi / yearday891 zdist = zxday * 2. * rpi / REAL(nyear_len(1), wp) 897 892 zdaycor = 1.0 + 0.0013 * SIN( zdist ) + 0.0342 * COS( zdist ) 898 893 … … 909 904 zlsset (ji,jj) = - zlsrise(ji,jj) 910 905 ! dividing the solar day into jp24 segments of length zdlha 911 zdlha (ji,jj) = ( zlsrise(ji,jj) - zlsset(ji,jj) ) / REAL( jp24 )906 zdlha (ji,jj) = ( zlsrise(ji,jj) - zlsset(ji,jj) ) / REAL( jp24, wp ) 912 907 END DO 913 908 END DO … … 991 986 !!--------------------------------------------------------------------- 992 987 993 IF ( ky == 1 ) THEN ; zday = REAL( kday ) - 0.5994 ELSEIF( ky == 3 ) THEN ; zday = REAL( kday ) - 1.995 ELSE ; zday = REAL( kday )988 IF ( ky == 1 ) THEN ; zday = REAL( kday, wp ) - 0.5 989 ELSEIF( ky == 3 ) THEN ; zday = REAL( kday, wp ) - 1. 990 ELSE ; zday = REAL( kday, wp ) 996 991 ENDIF 997 992 998 zp = rpi * ( 2.0 * zday - 367.0 ) / yearday993 zp = rpi * ( 2.0 * zday - 367.0 ) / REAL(nyear_len(1), wp) 999 994 1000 995 pdecl = a0 &
Note: See TracChangeset
for help on using the changeset viewer.