[882] | 1 | MODULE read_metric_mod |
---|
| 2 | |
---|
[1012] | 3 | |
---|
[882] | 4 | CONTAINS |
---|
| 5 | |
---|
| 6 | |
---|
| 7 | SUBROUTINE read_metric |
---|
| 8 | USE icosa |
---|
| 9 | USE xios_mod |
---|
| 10 | USE omp_para |
---|
[1012] | 11 | USE checksum_mod |
---|
[882] | 12 | IMPLICIT NONE |
---|
| 13 | TYPE(t_field),POINTER,SAVE :: f_xcell(:),f_ycell(:),f_zcell(:) |
---|
| 14 | REAL(rstd), POINTER :: xcell(:), ycell(:), zcell(:) |
---|
| 15 | TYPE(t_domain),POINTER :: d |
---|
| 16 | INTEGER :: ind,i,j,n |
---|
| 17 | CHARACTER(len=255) :: etat0_type |
---|
[1012] | 18 | LOGICAL :: read_metric_=.FALSE. |
---|
[882] | 19 | |
---|
| 20 | CALL getin('etat0',etat0_type) |
---|
| 21 | CALL getin('read_metric', read_metric_) |
---|
| 22 | |
---|
| 23 | CALL allocate_field(f_xcell,field_t,type_real,name='xcell') |
---|
| 24 | CALL allocate_field(f_ycell,field_t,type_real,name='ycell') |
---|
| 25 | CALL allocate_field(f_zcell,field_t,type_real,name='zcell') |
---|
| 26 | |
---|
| 27 | CALL xios_set_context_input |
---|
| 28 | CALL xios_init_write_field_input |
---|
| 29 | |
---|
| 30 | IF (TRIM(etat0_type)=='start_file' .AND. read_metric_) THEN |
---|
| 31 | |
---|
| 32 | CALL xios_read_field("xcell_start",f_xcell) |
---|
| 33 | CALL xios_read_field("ycell_start",f_ycell) |
---|
| 34 | CALL xios_read_field("zcell_start",f_zcell) |
---|
| 35 | |
---|
| 36 | DO ind=1,ndomain |
---|
| 37 | IF (.NOT. assigned_domain(ind) .OR. .NOT. is_omp_level_master) CYCLE |
---|
| 38 | d=>domain(ind) |
---|
| 39 | CALL swap_dimensions(ind) |
---|
| 40 | xcell=f_xcell(ind) |
---|
| 41 | ycell=f_ycell(ind) |
---|
| 42 | zcell=f_zcell(ind) |
---|
| 43 | |
---|
| 44 | DO j=jj_begin,jj_end |
---|
| 45 | DO i=ii_begin,ii_end |
---|
| 46 | n=(j-1)*iim+i |
---|
| 47 | d%xyz(1,i,j) = xcell(n) |
---|
| 48 | d%xyz(2,i,j) = ycell(n) |
---|
| 49 | d%xyz(3,i,j) = zcell(n) |
---|
| 50 | ENDDO |
---|
| 51 | ENDDO |
---|
| 52 | ENDDO |
---|
| 53 | ENDIF |
---|
| 54 | |
---|
[887] | 55 | CALL xios_write_field_finalize |
---|
[882] | 56 | CALL xios_set_context |
---|
| 57 | |
---|
| 58 | END SUBROUTINE read_metric |
---|
| 59 | |
---|
| 60 | |
---|
| 61 | |
---|
| 62 | END MODULE read_metric_mod |
---|