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

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

devel : towards Fortran driver for unstructured/LAM meshes

File size: 1.4 KB
RevLine 
[171]1MODULE output_field_mod
[714]2  USE genmod
3  USE xios_mod
4  USE profiling_mod
5  IMPLICIT NONE
6  SAVE
[171]7  PRIVATE
[714]8
[186]9  LOGICAL,SAVE :: xios_output 
10!$OMP THREADPRIVATE(xios_output)     
11  LOGICAL,SAVE :: enable_io   
12!$OMP THREADPRIVATE(enable_io)     
[171]13
[714]14  INTEGER :: id_output
15
[186]16  PUBLIC enable_io,xios_output,output_field_init,output_field,output_field_finalize
[171]17
18CONTAINS
19 
20  SUBROUTINE output_field_init
[186]21  USE getin_mod
[856]22  USE grid_param
[171]23  IMPLICIT NONE
24
[714]25    CALL register_id('output',id_output)
26
[186]27    enable_io=.TRUE.
28    CALL getin('enable_io',enable_io)
29
[171]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
[856]38       IF(grid_type == grid_ico) CALL xios_init_write_field
[171]39    ENDIF
40  END SUBROUTINE output_field_init
41
42  SUBROUTINE output_field(name_in,field)
43    USE field_mod
[347]44    USE write_field_mod
[171]45    IMPLICIT NONE 
[714]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
[171]53       CALL writeField(name_in,field)
[714]54    ENDIF
55    CALL exit_profile(id_output)
[171]56
57  END SUBROUTINE output_field
58
59  SUBROUTINE output_field_finalize
[714]60    USE ioipsl
61    IMPLICIT NONE
[171]62   
63    IF (xios_output) THEN
[714]64       CALL xios_write_field_finalize
[171]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.