Changeset 1326
- Timestamp:
- Aug 19, 2014, 12:42:32 AM (10 years ago)
- Location:
- trunk/LMDZ.GENERIC
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.GENERIC/README
r1325 r1326 1045 1045 == 18/08/2014 == JL 1046 1046 - fixed variable type declaration bug in ave_stelspec 1047 - corrected insolation calculation in locked and inclined case (proper calculation of sub solar longitude and declination) -
trunk/LMDZ.GENERIC/libf/phystd/comsaison_h.F90
r1315 r1326 6 6 integer isaison 7 7 logical callsais 8 real dist_star,declin 8 real dist_star,declin,right_ascen 9 9 10 10 real, allocatable, dimension(:) :: mu0,fract 11 !$OMP THREADPRIVATE(isaison,callsais,dist_star,declin,mu0,fract)12 11 13 12 end module comsaison_h -
trunk/LMDZ.GENERIC/libf/phystd/orbite.F
r1308 r1326 1 subroutine orbite(pls,pdist_star,pdecli) 2 3 use planete_mod, only: p_elips, e_elips, timeperi, obliquit 1 subroutine orbite(pls,pdist_star,pdecli,pright_ascenc) 4 2 implicit none 5 3 … … 19 17 ! pdist_star Distance Star-Planet in UA 20 18 ! pdecli declinaison ( in radians ) 19 ! pright_ascenc right ascension ( in radians ) 21 20 ! 22 21 !======================================================================= … … 25 24 c ------------- 26 25 27 !#include "planete.h"26 #include "planete.h" 28 27 #include "comcstfi.h" 29 28 … … 31 30 c ---------- 32 31 33 REAL pday,pdist_star,pdecli,p ls,i32 REAL pday,pdist_star,pdecli,pright_ascenc,pls,i 34 33 35 34 c----------------------------------------------------------------------- … … 45 44 pdecli = asin (sin(pls)*sin(obliquit*pi/180.)) 46 45 47 c 46 c********************* version after 01/01/2000 ******* 48 47 c i=obliquit*pi/180. 49 48 c pdecli=asin(sin(pls)*sin(i)/sqrt(sin(pls)**2+ … … 51 50 c ****************************************************** 52 51 52 c right ascencion 53 If((pls.lt.pi/2.d0)) then 54 pright_ascenc= atan(tan(pls)*cos(obliquit*pi/180.)) 55 else if((pls.gt.pi/2.d0).and.(pls.lt.3.d0*pi/2.d0)) then 56 pright_ascenc= pi+atan(tan(pls)*cos(obliquit*pi/180.)) 57 else if((pls.gt.3.d0*pi/2.d0)) then 58 pright_ascenc= 2.d0*pi+atan(tan(pls)*cos(obliquit*pi/180.)) 59 else if (Abs(pls-pi/2.d0).le.1.d-10) then 60 pright_ascenc= pi/2.d0 61 else 62 pright_ascenc=-pi/2.d0 63 end if 64 53 65 RETURN 54 66 END -
trunk/LMDZ.GENERIC/libf/phystd/physiq.F90
r1315 r1326 235 235 236 236 real zls ! solar longitude (rad) 237 real zlss ! sub solar point longitude (rad) 237 238 real zday ! date (time since Ls=0, in martian days) 238 239 real zzlay(ngrid,nlayer) ! altitude at the middle of the layers … … 250 251 real zdtdif(ngrid,nlayer) ! (K/s) 251 252 real zdvadj(ngrid,nlayer),zduadj(ngrid,nlayer) ! (m.s-2) 253 real zdvtid(ngrid,nlayer),zdutid(ngrid,nlayer) ! (m.s-2) 252 254 real zdhadj(ngrid,nlayer) ! (K/s) 253 255 real zdtgw(ngrid,nlayer) ! (K/s) … … 844 846 ! Compute local stellar zenith angles 845 847 ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 846 call orbite(zls,dist_star,declin )848 call orbite(zls,dist_star,declin,right_ascen) 847 849 848 850 if (tlocked) then 851 ! JL14 corrects tidally resonant (and inclined) cases. nres=omega_rot/omega_orb 852 zlss=Mod(-(2.*pi*(zday/year_day)*nres - right_ascen),2.*pi) 849 853 ztim1=SIN(declin) 850 ! ztim2=COS(declin)*COS(2.*pi*(zday/year_day) - zls*nres) 851 ! ztim3=-COS(declin)*SIN(2.*pi*(zday/year_day) - zls*nres) 852 ! JL12 corrects tidally resonant cases. nres=omega_rot/omega_orb 853 ztim2=COS(declin)*COS(2.*pi*(zday/year_day)*nres - zls) 854 ztim3=-COS(declin)*SIN(2.*pi*(zday/year_day)*nres - zls) 854 ztim2=COS(declin)*COS(zlss) 855 ztim3=COS(declin)*SIN(zlss) 856 855 857 856 858 call stelang(ngrid,sinlon,coslon,sinlat,coslat, & … … 858 860 859 861 elseif (diurnal) then 860 ztim1=SIN(declin) 861 ztim2=COS(declin)*COS(2.*pi*(zday-.5)) 862 ztim3=-COS(declin)*SIN(2.*pi*(zday-.5)) 863 864 call stelang(ngrid,sinlon,coslon,sinlat,coslat, & 862 zlss=-2.*pi*(zday-.5) 863 ztim1=SIN(declin) 864 ztim2=COS(declin)*COS(2.*pi*(zday-.5)) 865 ztim3=-COS(declin)*SIN(2.*pi*(zday-.5)) 866 867 call stelang(ngrid,sinlon,coslon,sinlat,coslat, & 865 868 ztim1,ztim2,ztim3,mu0,fract, flatten) 866 869 else if(diurnal .eqv. .false.) then … … 2067 2070 2068 2071 call writediagfi(ngrid,"Ls","solar longitude","deg",0,zls*180./pi) 2072 call writediagfi(ngrid,"Lss","sub solar longitude","deg",0,zlss*180./pi) 2073 call writediagfi(ngrid,"RA","right ascension","deg",0,right_ascen*180./pi) 2074 call writediagfi(ngrid,"Declin","solar declination","deg",0,declin*180./pi) 2069 2075 call writediagfi(ngrid,"tsurf","Surface temperature","K",2,tsurf) 2070 2076 call writediagfi(ngrid,"ps","Surface pressure","Pa",2,ps)
Note: See TracChangeset
for help on using the changeset viewer.