source: codes/icosagcm/trunk/src/etat0_start_file.f90 @ 347

Last change on this file since 347 was 347, checked in by dubos, 9 years ago

Synced with aquaplanet branch HEAT@45 - tested with DCMIP4

File size: 2.1 KB
Line 
1MODULE etat0_start_file_mod
2
3
4
5
6CONTAINS
7 
8   
9  SUBROUTINE etat0(f_ps,f_phis,f_theta_rhodz,f_u, f_q)
10  USE icosa
11  USE restart_mod
12  USE wind_mod
13  USE write_field_mod
14  USE time_mod
15  USE transfert_mod
16  IMPLICIT NONE
17    TYPE(t_field),POINTER :: f_ps(:)
18    TYPE(t_field),POINTER :: f_phis(:)
19    TYPE(t_field),POINTER :: f_theta_rhodz(:)
20    TYPE(t_field),POINTER :: f_u(:)
21    TYPE(t_field),POINTER :: f_q(:)
22 
23    TYPE(t_field),POINTER,SAVE :: f_ulon(:)
24    TYPE(t_field),POINTER,SAVE :: f_ulat(:)
25
26    LOGICAL :: etat0_start_file_colocated=.FALSE.
27    INTEGER :: ind
28
29      CALL getin("etat0_start_file_colocated",etat0_start_file_colocated) 
30
31      IF (.NOT. etat0_start_file_colocated) THEN   
32        CALL allocate_field(f_ulon,field_t,type_real,llm,name='ulon')
33        CALL allocate_field(f_ulat,field_t,type_real,llm,name='ulat')
34        CALL read_start(itau0,f_ps,f_phis,f_theta_rhodz,f_u, f_q)
35        CALL transfert_request(f_ps,req_i1)
36        CALL transfert_request(f_phis,req_i1)
37        CALL transfert_request(f_theta_rhodz,req_i1)
38        CALL transfert_request(f_q,req_i1)
39        CALL transfert_request(f_u,req_e1_vect)
40        CALL transfert_request(f_u,req_e0_vect)
41        CALL un2ulonlat(f_u,f_ulon,f_ulat)
42
43        CALL deallocate_field(f_ulon)
44        CALL deallocate_field(f_ulat)
45
46      ELSE
47        CALL allocate_field(f_ulon,field_t,type_real,llm,name='ulon')
48        CALL allocate_field(f_ulat,field_t,type_real,llm,name='ulat')
49        CALL read_start(itau0,f_ps,f_phis,f_theta_rhodz,f_ulon,f_ulat, f_q)
50        CALL transfert_request(f_ulat,req_i1)
51        CALL transfert_request(f_ulon,req_i1)
52
53        CALL ulonlat2un(f_ulon,f_ulat,f_u)
54
55        CALL transfert_request(f_ps,req_i1)
56        CALL transfert_request(f_phis,req_i1)
57        CALL transfert_request(f_theta_rhodz,req_i1)
58        CALL transfert_request(f_q,req_i1)
59        CALL transfert_request(f_u,req_e1_vect)
60       
61        CALL deallocate_field(f_ulon)
62        CALL deallocate_field(f_ulat)
63      ENDIF
64
65      CALL bcast(itau0)
66      CALL getin("etat0_start_iteration",itau0)       
67
68  END SUBROUTINE etat0
69 
70 
71END MODULE etat0_start_file_mod
Note: See TracBrowser for help on using the repository browser.