5 |
|
|
6 |
IMPLICIT NONE |
IMPLICIT NONE |
7 |
|
|
8 |
REAL, ALLOCATABLE, SAVE, DIMENSION(:, :):: qsol_2d |
REAL, ALLOCATABLE, SAVE:: qsol_2d(:, :) |
9 |
|
|
10 |
CONTAINS |
CONTAINS |
11 |
|
|
12 |
SUBROUTINE start_init_phys(tsol_2d) |
SUBROUTINE start_init_phys(tsol_2d) |
13 |
|
|
14 |
USE flincom, only: flininfo, flinopen_nozoom, flinget, flinclo |
USE flincom, only: flininfo, flinopen_nozoom, flinclo |
15 |
|
use flinget_m, only: flinget |
16 |
use conf_dat2d_m, only: conf_dat2d |
use conf_dat2d_m, only: conf_dat2d |
17 |
use inter_barxy_m, only: inter_barxy |
use inter_barxy_m, only: inter_barxy |
18 |
use gr_int_dyn_m, only: gr_int_dyn |
use gr_int_dyn_m, only: gr_int_dyn |
21 |
|
|
22 |
REAL, intent(out):: tsol_2d(:, :) |
REAL, intent(out):: tsol_2d(:, :) |
23 |
|
|
24 |
! LOCAL |
! Variables local to the procedure: |
25 |
|
|
26 |
INTEGER fid_phys, iml_phys, jml_phys |
INTEGER fid_phys, iml_phys, jml_phys |
27 |
REAL, ALLOCATABLE, DIMENSION(:, :):: lon_phys, lat_phys |
REAL, ALLOCATABLE, DIMENSION(:, :):: lon_phys, lat_phys |
31 |
INTEGER:: itau(1) |
INTEGER:: itau(1) |
32 |
INTEGER:: llm_tmp, ttm_tmp |
INTEGER:: llm_tmp, ttm_tmp |
33 |
|
|
|
CHARACTER(len=120) physfname |
|
|
LOGICAL:: check=.TRUE. |
|
|
|
|
34 |
REAL, ALLOCATABLE:: lon_rad(:), lat_rad(:) |
REAL, ALLOCATABLE:: lon_rad(:), lat_rad(:) |
35 |
REAL, ALLOCATABLE:: lon_ini(:), lat_ini(:) |
REAL, ALLOCATABLE:: lon_ini(:), lat_ini(:) |
36 |
REAL, ALLOCATABLE:: var_ana(:, :) |
REAL, ALLOCATABLE:: var_ana(:, :) |
40 |
|
|
41 |
print *, "Call sequence information: start_init_phys" |
print *, "Call sequence information: start_init_phys" |
42 |
if (any(shape(tsol_2d) /= (/iim + 1, jjm + 1/))) stop "start_init_phys" |
if (any(shape(tsol_2d) /= (/iim + 1, jjm + 1/))) stop "start_init_phys" |
43 |
physfname = 'ECPHY.nc' |
CALL flininfo('ECPHY.nc', iml_phys, jml_phys, llm_tmp, ttm_tmp, fid_phys) |
|
IF ( check ) print *, 'Opening the surface analysis' |
|
|
CALL flininfo(physfname, iml_phys, jml_phys, llm_tmp, ttm_tmp, fid_phys) |
|
44 |
|
|
45 |
ALLOCATE(lat_phys(iml_phys, jml_phys)) |
ALLOCATE(lat_phys(iml_phys, jml_phys)) |
46 |
ALLOCATE(lon_phys(iml_phys, jml_phys)) |
ALLOCATE(lon_phys(iml_phys, jml_phys)) |
47 |
ALLOCATE(levphys_ini(llm_tmp)) |
ALLOCATE(levphys_ini(llm_tmp)) |
48 |
|
|
49 |
CALL flinopen_nozoom(physfname, iml_phys, jml_phys, & |
CALL flinopen_nozoom(iml_phys, jml_phys, llm_tmp, lon_phys, lat_phys, & |
50 |
llm_tmp, lon_phys, lat_phys, levphys_ini, ttm_tmp, & |
levphys_ini, ttm_tmp, itau, date, dt, fid_phys) |
|
itau, date, dt, fid_phys) |
|
51 |
|
|
52 |
DEALLOCATE(levphys_ini) |
DEALLOCATE(levphys_ini) |
53 |
|
|
73 |
lat_ini(:) = lat_phys(1, :) |
lat_ini(:) = lat_phys(1, :) |
74 |
ENDIF |
ENDIF |
75 |
|
|
76 |
! We get the two standard varibales |
! We get the two standard variables |
77 |
! Surface temperature |
! 'ST': surface temperature |
|
! 'ST' : Surface temperature |
|
78 |
CALL flinget(fid_phys, 'ST', iml_phys, jml_phys, & |
CALL flinget(fid_phys, 'ST', iml_phys, jml_phys, & |
79 |
llm_tmp, ttm_tmp, 1, 1, var_ana) |
llm_tmp, ttm_tmp, 1, 1, var_ana) |
80 |
CALL conf_dat2d(lon_ini, lat_ini, lon_rad, lat_rad, var_ana) |
CALL conf_dat2d(lon_ini, lat_ini, lon_rad, lat_rad, var_ana) |