1 | ! lecture du climat de reference pour snowball |
---|
2 | module lect_clim_snowball |
---|
3 | |
---|
4 | use module3D_phy |
---|
5 | |
---|
6 | CHARACTER(LEN=100) :: file1 |
---|
7 | |
---|
8 | contains |
---|
9 | |
---|
10 | subroutine input_climat_ref() |
---|
11 | |
---|
12 | |
---|
13 | NAMELIST/clim_act/file1,annual,type_precip |
---|
14 | rewind(num_param) ! pour revenir au debut du fichier param_list.dat |
---|
15 | read(num_param,clim_act) |
---|
16 | ! formats pour les ecritures dans 42 |
---|
17 | 428 format(A) |
---|
18 | write(num_rep_42,428)'!___________________________________________________________' |
---|
19 | write(num_rep_42,428) '&clim_act ! nom du bloc ' |
---|
20 | write(num_rep_42,*) |
---|
21 | write(num_rep_42,*) 'file1 = ', file1 |
---|
22 | write(num_rep_42,*) 'annual = ', annual |
---|
23 | write(num_rep_42,*) 'type_precip = ', type_precip |
---|
24 | write(num_rep_42,*)'/' |
---|
25 | write(num_rep_42,428) '! file1 : climato de reference' |
---|
26 | write(num_rep_42,428) '! annual : .true. si fichier annuel' |
---|
27 | write(num_rep_42,428) '! type_precip : .true. si fichier precip liq' |
---|
28 | write(num_rep_42,*) |
---|
29 | |
---|
30 | file1=trim(DIRNAMEINP)//trim(file1) |
---|
31 | ! lecture du fichier climat actuel |
---|
32 | ! -------------------------------- |
---|
33 | open (11,file=trim(file1),status='old') |
---|
34 | read(11,*) |
---|
35 | read(11,*) |
---|
36 | read(11,*) |
---|
37 | IF (annual) THEN |
---|
38 | do J=1,NY |
---|
39 | do I=1,NX |
---|
40 | read(11,*) PRECIP0(I,J),TA0(I,J),TJ0(I,J) |
---|
41 | enddo |
---|
42 | enddo |
---|
43 | |
---|
44 | else ! climato mensuelle |
---|
45 | k=0 |
---|
46 | DO J=1,NY |
---|
47 | DO I=1,NX |
---|
48 | ! READ(11,'(24(e12.5,1x))') (Pm0(I,J,n),n=1,12),(Tm0(I,J,n),n=1,12) |
---|
49 | READ(11,*) (Pm0(I,J,n),n=1,12),(Tm0(I,J,n),n=1,12) |
---|
50 | ENDDO |
---|
51 | ENDDO |
---|
52 | TA0(:,:)= SUM(Tm0,dim=3)/12. |
---|
53 | TJ0(:,:)= Tm0(:,:,7) |
---|
54 | Tmois(:,:,:)= Tm0(:,:,:) |
---|
55 | ! Pm0(:,:,:)= Pm0(:,:,:)/12. ! pour etre en m/mois (didier donne les acc et precips /an) |
---|
56 | precip0(:,:)=SUM(Pm0,dim=3)/12 ! pour rester en m/an (les 12 mois sont chacun en m/an) |
---|
57 | precip0(i,j)=precip0(i,j)/100. ! de cm.a a m.a |
---|
58 | ENDIF |
---|
59 | CLOSE(11) |
---|
60 | |
---|
61 | !cdc test coherence Loveclim couple precip0(:,:)=precip0(:,:)*1000./ro ! passage en equivalent glace |
---|
62 | acc(:,:)=precip0(:,:) |
---|
63 | tann(:,:)=TA0(:,:) |
---|
64 | TJULY(:,:)=TJ0(:,:) |
---|
65 | |
---|
66 | end subroutine input_climat_ref |
---|
67 | |
---|
68 | |
---|
69 | end module lect_clim_snowball |
---|