1 |
|
2 |
#include "ctrparam.h" |
3 |
|
4 |
! ========================================================== |
5 |
! |
6 |
! OBSSOLAR.F: This file contains subroitine obssolar.f |
7 |
! which reads observed solar constant |
8 |
! |
9 |
! ---------------------------------------------------------- |
10 |
! |
11 |
! Revision History: |
12 |
! |
13 |
! When Who What |
14 |
! ---- ---------- ------- |
15 |
! 070302 |
16 |
! |
17 |
! |
18 |
! ========================================================== |
19 |
|
20 |
subroutine obssolar(S0const,YEAR1) |
21 |
parameter (nyd=2000,nyd1=nyd+1) |
22 |
C |
23 |
C |
24 |
C For simulations with observed solar constant using equivalent |
25 |
C S0conts from file S0C_data |
26 |
C DATA are annual means, but they are |
27 |
C used as a data for the middle of the coresponding year |
28 |
C |
29 |
C |
30 |
dimension solar(nyd),solar1(nyd1),yearS0(nyd) |
31 |
common /solardata/S0C_data |
32 |
character * 120 S0C_data |
33 |
logical first |
34 |
data first /.true./ |
35 |
if(first)then |
36 |
print *,' Solar constant from observation ' |
37 |
open (unit=561,file=S0C_data, |
38 |
* status='OLD',form='formatted') |
39 |
do 50 i=1,nyd |
40 |
c read (561,501,end=500),ighgyr(i),tmp,xco2(i) |
41 |
read (561,*,end=500),yearS0(i),solar(i) |
42 |
c print *,yearS0(i),solar(i) |
43 |
50 continue |
44 |
500 continue |
45 |
close (561) |
46 |
ny=i-1 |
47 |
print *,'Last year for solardata is ',yearS0(ny) |
48 |
ny1=ny+1 |
49 |
ny2=ny+2 |
50 |
501 format(2f13.2) |
51 |
first=.false. |
52 |
endif |
53 |
year=year1 |
54 |
c print *,' year=',year |
55 |
if(year.lt.yearS0(1))year=yearS0(1) |
56 |
if(year.gt.yearS0(ny))year=yearS0(ny) |
57 |
i=year-yearS0(1)+1 |
58 |
dl=year-yearS0(i) |
59 |
c print *,' i=',i,' dl=',dl |
60 |
c print *,yearS0(i),yearS0(i+1) |
61 |
c print *,solar(i),solar(i+1) |
62 |
S0const=solar(i)*(1.-dl)+solar(i+1)*dl |
63 |
c print *,' year=',year,' S0x=',S0const |
64 |
return |
65 |
end |