source: codes/icosagcm/devel/src/output/output_field.f90 @ 883

Last change on this file since 883 was 883, checked in by dubos, 5 years ago

devel/unstructured : XIOS output

File size: 1.4 KB
Line 
1MODULE output_field_mod
2  USE genmod
3  USE xios_mod
4  USE profiling_mod
5  IMPLICIT NONE
6  SAVE
7  PRIVATE
8
9  LOGICAL,SAVE :: xios_output 
10!$OMP THREADPRIVATE(xios_output)     
11  LOGICAL,SAVE :: enable_io   
12!$OMP THREADPRIVATE(enable_io)     
13
14  INTEGER :: id_output
15
16  PUBLIC enable_io,xios_output,output_field_init,output_field,output_field_finalize
17
18CONTAINS
19 
20  SUBROUTINE output_field_init
21  USE getin_mod
22  USE grid_param
23  IMPLICIT NONE
24
25    CALL register_id('output',id_output)
26
27    enable_io=.TRUE.
28    CALL getin('enable_io',enable_io)
29
30    IF (using_xios) THEN
31      xios_output=.TRUE.
32      CALL getin('xios_output',xios_output)
33    ELSE
34      xios_output=.FALSE.
35    ENDIF
36   
37    IF (xios_output) THEN
38       CALL xios_init_write_field
39    ENDIF
40  END SUBROUTINE output_field_init
41
42  SUBROUTINE output_field(name_in,field)
43    USE field_mod
44    USE write_field_mod
45    IMPLICIT NONE 
46    CHARACTER(LEN=*),INTENT(IN) :: name_in
47    TYPE(t_field),POINTER :: field(:)
48   
49    CALL enter_profile(id_output)
50    IF (xios_output) THEN
51       CALL xios_write_field(name_in,field)
52    ELSE
53       CALL writeField(name_in,field)
54    ENDIF
55    CALL exit_profile(id_output)
56
57  END SUBROUTINE output_field
58
59  SUBROUTINE output_field_finalize
60    USE ioipsl
61    IMPLICIT NONE
62   
63    IF (xios_output) THEN
64       CALL xios_write_field_finalize
65    ENDIF
66   
67  END SUBROUTINE output_field_finalize
68
69END MODULE output_field_mod
70 
Note: See TracBrowser for help on using the repository browser.