[270] | 1 | MODULE IFILE |
---|
| 2 | USE, INTRINSIC :: ISO_C_BINDING |
---|
| 3 | USE FILE_INTERFACE |
---|
| 4 | USE FILEGROUP_INTERFACE |
---|
| 5 | |
---|
| 6 | TYPE XFileHandle |
---|
| 7 | INTEGER(kind = C_INTPTR_T) :: daddr |
---|
| 8 | END TYPE XFileHandle |
---|
| 9 | |
---|
| 10 | TYPE XFileGroupHandle |
---|
| 11 | INTEGER(kind = C_INTPTR_T) :: daddr |
---|
| 12 | END TYPE XFileGroupHandle |
---|
| 13 | |
---|
| 14 | !---------------------------------------------------------------------------- |
---|
| 15 | INTERFACE set_file_attributes |
---|
| 16 | MODULE PROCEDURE set_file_attributes_id,set_file_attributes_hdl |
---|
| 17 | END INTERFACE |
---|
| 18 | |
---|
| 19 | INTERFACE set_file_group_attributes |
---|
| 20 | MODULE PROCEDURE set_filegroup_attributes_id,set_filegroup_attributes_hdl |
---|
| 21 | END INTERFACE |
---|
| 22 | !---------------------------------------------------------------------------- |
---|
| 23 | |
---|
| 24 | CONTAINS ! Fonctions disponibles pour les utilisateurs. |
---|
| 25 | |
---|
[276] | 26 | SUBROUTINE set_file_attributes_id(file_id, name_ , description_, name_suffix_, output_freq_, output_level_, enabled_) |
---|
[270] | 27 | IMPLICIT NONE |
---|
| 28 | TYPE(XFileHandle) :: file_hdl |
---|
| 29 | CHARACTER(len = *) , INTENT(IN) :: file_id |
---|
| 30 | CHARACTER(len = *), OPTIONAL, INTENT(IN) :: name_ |
---|
| 31 | CHARACTER(len = *), OPTIONAL, INTENT(IN) :: description_ |
---|
[276] | 32 | CHARACTER(len = *), OPTIONAL, INTENT(IN) :: name_suffix_ |
---|
[270] | 33 | CHARACTER(len = *), OPTIONAL, INTENT(IN) :: output_freq_ |
---|
| 34 | INTEGER , OPTIONAL, INTENT(IN) :: output_level_ |
---|
| 35 | LOGICAL , OPTIONAL, INTENT(IN) :: enabled_ |
---|
| 36 | |
---|
| 37 | CALL file_handle_create(file_hdl, file_id) |
---|
[276] | 38 | CALL set_file_attributes_hdl(file_hdl, name_ , description_, name_suffix_, output_freq_, output_level_, enabled_) |
---|
[270] | 39 | |
---|
| 40 | END SUBROUTINE set_file_attributes_id |
---|
| 41 | |
---|
[276] | 42 | SUBROUTINE set_file_attributes_hdl(file_hdl, name_ , description_, name_suffix_, output_freq_, output_level_, enabled_) |
---|
[270] | 43 | TYPE(XFileHandle) , INTENT(IN) :: file_hdl |
---|
| 44 | CHARACTER(len = *), OPTIONAL, INTENT(IN) :: name_ |
---|
| 45 | CHARACTER(len = *), OPTIONAL, INTENT(IN) :: description_ |
---|
[276] | 46 | CHARACTER(len = *), OPTIONAL, INTENT(IN) :: name_suffix_ |
---|
[270] | 47 | CHARACTER(len = *), OPTIONAL, INTENT(IN) :: output_freq_ |
---|
| 48 | INTEGER , OPTIONAL, INTENT(IN) :: output_level_ |
---|
| 49 | LOGICAL(kind = 1) :: enabled__ |
---|
| 50 | LOGICAL , OPTIONAL, INTENT(IN) :: enabled_ |
---|
| 51 | |
---|
| 52 | enabled__ = enabled_ |
---|
| 53 | IF (PRESENT(name_)) THEN |
---|
| 54 | CALL xios_set_file_name(file_hdl%daddr, name_, len(name_)) |
---|
| 55 | END IF |
---|
| 56 | IF (PRESENT(description_)) THEN |
---|
| 57 | CALL xios_set_file_description(file_hdl%daddr, description_, len(description_)) |
---|
| 58 | END IF |
---|
[276] | 59 | IF (PRESENT(name_suffix_)) THEN |
---|
| 60 | CALL xios_set_file_name_suffix(file_hdl%daddr, name_suffix_, len(name_suffix_)) |
---|
| 61 | END IF |
---|
[270] | 62 | IF (PRESENT(output_freq_)) THEN |
---|
| 63 | CALL xios_set_file_output_freq(file_hdl%daddr, output_freq_, len(output_freq_)) |
---|
| 64 | END IF |
---|
| 65 | IF (PRESENT(output_level_)) THEN |
---|
| 66 | CALL xios_set_file_output_level(file_hdl%daddr, output_level_) |
---|
| 67 | END IF |
---|
| 68 | IF (PRESENT(enabled_)) THEN |
---|
| 69 | CALL xios_set_file_enabled(file_hdl%daddr, enabled__) |
---|
| 70 | END IF |
---|
| 71 | |
---|
| 72 | END SUBROUTINE set_file_attributes_hdl |
---|
| 73 | |
---|
[276] | 74 | SUBROUTINE set_filegroup_attributes_id(filegroup_id, name_ , description_, name_suffix_, output_freq_, output_level_, enabled_) |
---|
[270] | 75 | IMPLICIT NONE |
---|
| 76 | TYPE(XFileGroupHandle) :: filegroup_hdl |
---|
| 77 | CHARACTER(len = *) , INTENT(IN) :: filegroup_id |
---|
| 78 | CHARACTER(len = *), OPTIONAL, INTENT(IN) :: name_ |
---|
| 79 | CHARACTER(len = *), OPTIONAL, INTENT(IN) :: description_ |
---|
[276] | 80 | CHARACTER(len = *), OPTIONAL, INTENT(IN) :: name_suffix_ |
---|
[270] | 81 | CHARACTER(len = *), OPTIONAL, INTENT(IN) :: output_freq_ |
---|
| 82 | INTEGER , OPTIONAL, INTENT(IN) :: output_level_ |
---|
| 83 | LOGICAL , OPTIONAL, INTENT(IN) :: enabled_ |
---|
| 84 | |
---|
| 85 | CALL filegroup_handle_create(filegroup_hdl, filegroup_id) |
---|
[276] | 86 | CALL set_filegroup_attributes_hdl(filegroup_hdl, name_ , description_, name_suffix_, output_freq_, output_level_, enabled_) |
---|
[270] | 87 | |
---|
| 88 | END SUBROUTINE set_filegroup_attributes_id |
---|
| 89 | |
---|
[276] | 90 | SUBROUTINE set_filegroup_attributes_hdl(filegroup_hdl, name_ , description_, name_suffix_, output_freq_, output_level_, enabled_) |
---|
[270] | 91 | IMPLICIT NONE |
---|
| 92 | TYPE(XFileGroupHandle) , INTENT(IN) :: filegroup_hdl |
---|
| 93 | CHARACTER(len = *), OPTIONAL, INTENT(IN) :: name_ |
---|
| 94 | CHARACTER(len = *), OPTIONAL, INTENT(IN) :: description_ |
---|
[276] | 95 | CHARACTER(len = *), OPTIONAL, INTENT(IN) :: name_suffix_ |
---|
[270] | 96 | CHARACTER(len = *), OPTIONAL, INTENT(IN) :: output_freq_ |
---|
| 97 | INTEGER , OPTIONAL, INTENT(IN) :: output_level_ |
---|
| 98 | LOGICAL(kind = 1) :: enabled__ |
---|
| 99 | LOGICAL , OPTIONAL, INTENT(IN) :: enabled_ |
---|
| 100 | |
---|
| 101 | enabled__ = enabled_ |
---|
| 102 | IF (PRESENT(name_)) THEN |
---|
| 103 | CALL xios_set_filegroup_name(filegroup_hdl%daddr, name_, len(name_)) |
---|
| 104 | END IF |
---|
| 105 | IF (PRESENT(description_)) THEN |
---|
| 106 | CALL xios_set_filegroup_description(filegroup_hdl%daddr, description_, len(description_)) |
---|
| 107 | END IF |
---|
[276] | 108 | IF (PRESENT(name_suffix_)) THEN |
---|
| 109 | CALL xios_set_filegroup_name_suffix(filegroup_hdl%daddr, name_suffix_, len(name_suffix_)) |
---|
| 110 | END IF |
---|
[270] | 111 | IF (PRESENT(output_freq_)) THEN |
---|
| 112 | CALL xios_set_filegroup_output_freq(filegroup_hdl%daddr, output_freq_, len(output_freq_)) |
---|
| 113 | END IF |
---|
| 114 | IF (PRESENT(output_level_)) THEN |
---|
| 115 | CALL xios_set_filegroup_output_level(filegroup_hdl%daddr, output_level_) |
---|
| 116 | END IF |
---|
| 117 | IF (PRESENT(enabled_)) THEN |
---|
| 118 | CALL xios_set_filegroup_enabled(filegroup_hdl%daddr, enabled__) |
---|
| 119 | END IF |
---|
| 120 | |
---|
| 121 | END SUBROUTINE set_filegroup_attributes_hdl |
---|
| 122 | |
---|
| 123 | SUBROUTINE file_handle_create(ret, idt) |
---|
| 124 | IMPLICIT NONE |
---|
| 125 | TYPE(XFileHandle) , INTENT(OUT):: ret |
---|
| 126 | CHARACTER(len = *), INTENT(IN) :: idt |
---|
| 127 | CALL xios_file_handle_create(ret%daddr, idt, len(idt)) |
---|
| 128 | END SUBROUTINE file_handle_create |
---|
| 129 | |
---|
| 130 | SUBROUTINE filegroup_handle_create(ret, idt) |
---|
| 131 | IMPLICIT NONE |
---|
| 132 | TYPE(XFileGroupHandle), INTENT(OUT):: ret |
---|
| 133 | CHARACTER(len = *) , INTENT(IN) :: idt |
---|
| 134 | CALL xios_filegroup_handle_create(ret%daddr, idt, len(idt)) |
---|
| 135 | END SUBROUTINE filegroup_handle_create |
---|
[285] | 136 | |
---|
| 137 | LOGICAL FUNCTION file_valid_id(idt) |
---|
| 138 | IMPLICIT NONE |
---|
| 139 | CHARACTER(len = *) , INTENT(IN) :: idt |
---|
| 140 | LOGICAL (kind = 1) :: val |
---|
| 141 | CALL xios_file_valid_id(val, idt, len(idt)); |
---|
| 142 | file_valid_id = val |
---|
| 143 | END FUNCTION file_valid_id |
---|
| 144 | |
---|
| 145 | LOGICAL FUNCTION filegroup_valid_id(idt) |
---|
| 146 | IMPLICIT NONE |
---|
| 147 | CHARACTER(len = *) , INTENT(IN) :: idt |
---|
| 148 | LOGICAL (kind = 1) :: val |
---|
| 149 | CALL xios_filegroup_valid_id(val, idt, len(idt)); |
---|
| 150 | filegroup_valid_id = val |
---|
| 151 | END FUNCTION filegroup_valid_id |
---|
[270] | 152 | |
---|
| 153 | END MODULE IFILE |
---|