Changeset 550 for XIOS/trunk/src/interface
- Timestamp:
- 02/10/15 14:23:02 (9 years ago)
- Location:
- XIOS/trunk/src/interface
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/trunk/src/interface/c_attr/iccalendar_wrapper_attr.cpp
r549 r550 18 18 typedef xios::CCalendarWrapper* calendar_wrapper_Ptr; 19 19 20 void cxios_set_calendar_wrapper_day_length(calendar_wrapper_Ptr calendar_wrapper_hdl, int day_length) 21 { 22 CTimer::get("XIOS").resume(); 23 calendar_wrapper_hdl->day_length.setValue(day_length); 24 CTimer::get("XIOS").suspend(); 25 } 26 27 void cxios_get_calendar_wrapper_day_length(calendar_wrapper_Ptr calendar_wrapper_hdl, int* day_length) 28 { 29 *day_length = calendar_wrapper_hdl->day_length.getInheritedValue(); 30 } 31 32 bool cxios_is_defined_calendar_wrapper_day_length(calendar_wrapper_Ptr calendar_wrapper_hdl ) 33 { 34 CTimer::get("XIOS").resume(); 35 return calendar_wrapper_hdl->day_length.hasInheritedValue(); 36 CTimer::get("XIOS").suspend(); 37 } 38 39 40 41 void cxios_set_calendar_wrapper_leap_year_drift(calendar_wrapper_Ptr calendar_wrapper_hdl, double leap_year_drift) 42 { 43 CTimer::get("XIOS").resume(); 44 calendar_wrapper_hdl->leap_year_drift.setValue(leap_year_drift); 45 CTimer::get("XIOS").suspend(); 46 } 47 48 void cxios_get_calendar_wrapper_leap_year_drift(calendar_wrapper_Ptr calendar_wrapper_hdl, double* leap_year_drift) 49 { 50 *leap_year_drift = calendar_wrapper_hdl->leap_year_drift.getInheritedValue(); 51 } 52 53 bool cxios_is_defined_calendar_wrapper_leap_year_drift(calendar_wrapper_Ptr calendar_wrapper_hdl ) 54 { 55 CTimer::get("XIOS").resume(); 56 return calendar_wrapper_hdl->leap_year_drift.hasInheritedValue(); 57 CTimer::get("XIOS").suspend(); 58 } 59 60 61 62 void cxios_set_calendar_wrapper_leap_year_drift_offset(calendar_wrapper_Ptr calendar_wrapper_hdl, double leap_year_drift_offset) 63 { 64 CTimer::get("XIOS").resume(); 65 calendar_wrapper_hdl->leap_year_drift_offset.setValue(leap_year_drift_offset); 66 CTimer::get("XIOS").suspend(); 67 } 68 69 void cxios_get_calendar_wrapper_leap_year_drift_offset(calendar_wrapper_Ptr calendar_wrapper_hdl, double* leap_year_drift_offset) 70 { 71 *leap_year_drift_offset = calendar_wrapper_hdl->leap_year_drift_offset.getInheritedValue(); 72 } 73 74 bool cxios_is_defined_calendar_wrapper_leap_year_drift_offset(calendar_wrapper_Ptr calendar_wrapper_hdl ) 75 { 76 CTimer::get("XIOS").resume(); 77 return calendar_wrapper_hdl->leap_year_drift_offset.hasInheritedValue(); 78 CTimer::get("XIOS").suspend(); 79 } 80 81 82 83 void cxios_set_calendar_wrapper_leap_year_month(calendar_wrapper_Ptr calendar_wrapper_hdl, int leap_year_month) 84 { 85 CTimer::get("XIOS").resume(); 86 calendar_wrapper_hdl->leap_year_month.setValue(leap_year_month); 87 CTimer::get("XIOS").suspend(); 88 } 89 90 void cxios_get_calendar_wrapper_leap_year_month(calendar_wrapper_Ptr calendar_wrapper_hdl, int* leap_year_month) 91 { 92 *leap_year_month = calendar_wrapper_hdl->leap_year_month.getInheritedValue(); 93 } 94 95 bool cxios_is_defined_calendar_wrapper_leap_year_month(calendar_wrapper_Ptr calendar_wrapper_hdl ) 96 { 97 CTimer::get("XIOS").resume(); 98 return calendar_wrapper_hdl->leap_year_month.hasInheritedValue(); 99 CTimer::get("XIOS").suspend(); 100 } 101 102 103 104 void cxios_set_calendar_wrapper_month_lengths(calendar_wrapper_Ptr calendar_wrapper_hdl, int* month_lengths, int extent1) 105 { 106 CTimer::get("XIOS").resume(); 107 CArray<int,1> tmp(month_lengths,shape(extent1),neverDeleteData) ; 108 calendar_wrapper_hdl->month_lengths.reference(tmp.copy()); 109 CTimer::get("XIOS").suspend(); 110 } 111 112 void cxios_get_calendar_wrapper_month_lengths(calendar_wrapper_Ptr calendar_wrapper_hdl, int* month_lengths, int extent1) 113 { 114 CTimer::get("XIOS").resume(); 115 CArray<int,1> tmp(month_lengths,shape(extent1),neverDeleteData) ; 116 tmp=calendar_wrapper_hdl->month_lengths.getInheritedValue() ; 117 CTimer::get("XIOS").suspend(); 118 } 119 120 bool cxios_is_defined_calendar_wrapper_month_lengths(calendar_wrapper_Ptr calendar_wrapper_hdl ) 121 { 122 CTimer::get("XIOS").resume(); 123 return calendar_wrapper_hdl->month_lengths.hasInheritedValue(); 124 CTimer::get("XIOS").suspend(); 125 } 126 127 128 20 129 void cxios_set_calendar_wrapper_start_date(calendar_wrapper_Ptr calendar_wrapper_hdl, const char * start_date, int start_date_size) 21 130 { … … 134 243 135 244 245 void cxios_set_calendar_wrapper_year_length(calendar_wrapper_Ptr calendar_wrapper_hdl, int year_length) 246 { 247 CTimer::get("XIOS").resume(); 248 calendar_wrapper_hdl->year_length.setValue(year_length); 249 CTimer::get("XIOS").suspend(); 250 } 251 252 void cxios_get_calendar_wrapper_year_length(calendar_wrapper_Ptr calendar_wrapper_hdl, int* year_length) 253 { 254 *year_length = calendar_wrapper_hdl->year_length.getInheritedValue(); 255 } 256 257 bool cxios_is_defined_calendar_wrapper_year_length(calendar_wrapper_Ptr calendar_wrapper_hdl ) 258 { 259 CTimer::get("XIOS").resume(); 260 return calendar_wrapper_hdl->year_length.hasInheritedValue(); 261 CTimer::get("XIOS").suspend(); 262 } 263 264 265 136 266 137 267 } -
XIOS/trunk/src/interface/fortran/icalendar.F90
r549 r550 20 20 CONTAINS ! Fonctions disponibles pour les utilisateurs. 21 21 22 SUBROUTINE xios(define_calendar)(type, timestep, start_date, time_origin) 22 SUBROUTINE xios(define_calendar)(type, timestep, start_date, time_origin, & 23 day_length, month_lengths, year_length, & 24 leap_year_month, leap_year_drift, leap_year_drift_offset) 23 25 USE ICALENDAR_WRAPPER, ONLY : txios(calendar_wrapper), xios(get_default_calendar_wrapper_handle) 24 26 USE icalendar_wrapper_attr, ONLY : xios(set_calendar_wrapper_attr_hdl) … … 30 32 TYPE(txios(date)), OPTIONAL, INTENT(IN) :: start_date 31 33 TYPE(txios(date)), OPTIONAL, INTENT(IN) :: time_origin 34 INTEGER, OPTIONAL, INTENT(IN) :: day_length 35 INTEGER, OPTIONAL, INTENT(IN) :: month_lengths(:) 36 INTEGER, OPTIONAL, INTENT(IN) :: year_length 37 REAL (KIND=8), OPTIONAL, INTENT(IN) :: leap_year_drift 38 REAL (KIND=8), OPTIONAL, INTENT(IN) :: leap_year_drift_offset 39 INTEGER, OPTIONAL, INTENT(IN) :: leap_year_month 32 40 TYPE(txios(calendar_wrapper)) :: calendar_wrapper 33 41 … … 38 46 CALL xios(set_calendar_wrapper_attr_hdl)(calendar_wrapper, timestep=timestep) 39 47 END IF 48 IF (PRESENT(day_length)) THEN 49 CALL xios(set_calendar_wrapper_attr_hdl)(calendar_wrapper, day_length=day_length) 50 END IF 51 IF (PRESENT(month_lengths)) THEN 52 CALL xios(set_calendar_wrapper_attr_hdl)(calendar_wrapper, month_lengths=month_lengths) 53 END IF 54 IF (PRESENT(year_length)) THEN 55 CALL xios(set_calendar_wrapper_attr_hdl)(calendar_wrapper, year_length=year_length) 56 END IF 57 IF (PRESENT(leap_year_month)) THEN 58 CALL xios(set_calendar_wrapper_attr_hdl)(calendar_wrapper, leap_year_month=leap_year_month) 59 END IF 60 IF (PRESENT(leap_year_drift)) THEN 61 CALL xios(set_calendar_wrapper_attr_hdl)(calendar_wrapper, leap_year_drift=leap_year_drift) 62 END IF 63 IF (PRESENT(leap_year_drift_offset)) THEN 64 CALL xios(set_calendar_wrapper_attr_hdl)(calendar_wrapper, leap_year_drift_offset=leap_year_drift_offset) 65 END IF 40 66 41 67 CALL xios(create_calendar)(calendar_wrapper) -
XIOS/trunk/src/interface/fortran_attr/calendar_wrapper_interface_attr.F90
r549 r550 10 10 11 11 12 SUBROUTINE cxios_set_calendar_wrapper_day_length(calendar_wrapper_hdl, day_length) BIND(C) 13 USE ISO_C_BINDING 14 INTEGER (kind = C_INTPTR_T), VALUE :: calendar_wrapper_hdl 15 INTEGER (KIND=C_INT) , VALUE :: day_length 16 END SUBROUTINE cxios_set_calendar_wrapper_day_length 17 18 SUBROUTINE cxios_get_calendar_wrapper_day_length(calendar_wrapper_hdl, day_length) BIND(C) 19 USE ISO_C_BINDING 20 INTEGER (kind = C_INTPTR_T), VALUE :: calendar_wrapper_hdl 21 INTEGER (KIND=C_INT) :: day_length 22 END SUBROUTINE cxios_get_calendar_wrapper_day_length 23 24 FUNCTION cxios_is_defined_calendar_wrapper_day_length(calendar_wrapper_hdl ) BIND(C) 25 USE ISO_C_BINDING 26 LOGICAL(kind=C_BOOL) :: cxios_is_defined_calendar_wrapper_day_length 27 INTEGER (kind = C_INTPTR_T), VALUE :: calendar_wrapper_hdl 28 END FUNCTION cxios_is_defined_calendar_wrapper_day_length 29 30 31 SUBROUTINE cxios_set_calendar_wrapper_leap_year_drift(calendar_wrapper_hdl, leap_year_drift) BIND(C) 32 USE ISO_C_BINDING 33 INTEGER (kind = C_INTPTR_T), VALUE :: calendar_wrapper_hdl 34 REAL (KIND=C_DOUBLE) , VALUE :: leap_year_drift 35 END SUBROUTINE cxios_set_calendar_wrapper_leap_year_drift 36 37 SUBROUTINE cxios_get_calendar_wrapper_leap_year_drift(calendar_wrapper_hdl, leap_year_drift) BIND(C) 38 USE ISO_C_BINDING 39 INTEGER (kind = C_INTPTR_T), VALUE :: calendar_wrapper_hdl 40 REAL (KIND=C_DOUBLE) :: leap_year_drift 41 END SUBROUTINE cxios_get_calendar_wrapper_leap_year_drift 42 43 FUNCTION cxios_is_defined_calendar_wrapper_leap_year_drift(calendar_wrapper_hdl ) BIND(C) 44 USE ISO_C_BINDING 45 LOGICAL(kind=C_BOOL) :: cxios_is_defined_calendar_wrapper_leap_year_drift 46 INTEGER (kind = C_INTPTR_T), VALUE :: calendar_wrapper_hdl 47 END FUNCTION cxios_is_defined_calendar_wrapper_leap_year_drift 48 49 50 SUBROUTINE cxios_set_calendar_wrapper_leap_year_drift_offset(calendar_wrapper_hdl, leap_year_drift_offset) BIND(C) 51 USE ISO_C_BINDING 52 INTEGER (kind = C_INTPTR_T), VALUE :: calendar_wrapper_hdl 53 REAL (KIND=C_DOUBLE) , VALUE :: leap_year_drift_offset 54 END SUBROUTINE cxios_set_calendar_wrapper_leap_year_drift_offset 55 56 SUBROUTINE cxios_get_calendar_wrapper_leap_year_drift_offset(calendar_wrapper_hdl, leap_year_drift_offset) BIND(C) 57 USE ISO_C_BINDING 58 INTEGER (kind = C_INTPTR_T), VALUE :: calendar_wrapper_hdl 59 REAL (KIND=C_DOUBLE) :: leap_year_drift_offset 60 END SUBROUTINE cxios_get_calendar_wrapper_leap_year_drift_offset 61 62 FUNCTION cxios_is_defined_calendar_wrapper_leap_year_drift_offset(calendar_wrapper_hdl ) BIND(C) 63 USE ISO_C_BINDING 64 LOGICAL(kind=C_BOOL) :: cxios_is_defined_calendar_wrapper_leap_year_drift_offset 65 INTEGER (kind = C_INTPTR_T), VALUE :: calendar_wrapper_hdl 66 END FUNCTION cxios_is_defined_calendar_wrapper_leap_year_drift_offset 67 68 69 SUBROUTINE cxios_set_calendar_wrapper_leap_year_month(calendar_wrapper_hdl, leap_year_month) BIND(C) 70 USE ISO_C_BINDING 71 INTEGER (kind = C_INTPTR_T), VALUE :: calendar_wrapper_hdl 72 INTEGER (KIND=C_INT) , VALUE :: leap_year_month 73 END SUBROUTINE cxios_set_calendar_wrapper_leap_year_month 74 75 SUBROUTINE cxios_get_calendar_wrapper_leap_year_month(calendar_wrapper_hdl, leap_year_month) BIND(C) 76 USE ISO_C_BINDING 77 INTEGER (kind = C_INTPTR_T), VALUE :: calendar_wrapper_hdl 78 INTEGER (KIND=C_INT) :: leap_year_month 79 END SUBROUTINE cxios_get_calendar_wrapper_leap_year_month 80 81 FUNCTION cxios_is_defined_calendar_wrapper_leap_year_month(calendar_wrapper_hdl ) BIND(C) 82 USE ISO_C_BINDING 83 LOGICAL(kind=C_BOOL) :: cxios_is_defined_calendar_wrapper_leap_year_month 84 INTEGER (kind = C_INTPTR_T), VALUE :: calendar_wrapper_hdl 85 END FUNCTION cxios_is_defined_calendar_wrapper_leap_year_month 86 87 88 SUBROUTINE cxios_set_calendar_wrapper_month_lengths(calendar_wrapper_hdl, month_lengths, extent1) BIND(C) 89 USE ISO_C_BINDING 90 INTEGER (kind = C_INTPTR_T), VALUE :: calendar_wrapper_hdl 91 INTEGER (KIND=C_INT) , DIMENSION(*) :: month_lengths 92 INTEGER (kind = C_INT), VALUE :: extent1 93 END SUBROUTINE cxios_set_calendar_wrapper_month_lengths 94 95 SUBROUTINE cxios_get_calendar_wrapper_month_lengths(calendar_wrapper_hdl, month_lengths, extent1) BIND(C) 96 USE ISO_C_BINDING 97 INTEGER (kind = C_INTPTR_T), VALUE :: calendar_wrapper_hdl 98 INTEGER (KIND=C_INT) , DIMENSION(*) :: month_lengths 99 INTEGER (kind = C_INT), VALUE :: extent1 100 END SUBROUTINE cxios_get_calendar_wrapper_month_lengths 101 102 FUNCTION cxios_is_defined_calendar_wrapper_month_lengths(calendar_wrapper_hdl ) BIND(C) 103 USE ISO_C_BINDING 104 LOGICAL(kind=C_BOOL) :: cxios_is_defined_calendar_wrapper_month_lengths 105 INTEGER (kind = C_INTPTR_T), VALUE :: calendar_wrapper_hdl 106 END FUNCTION cxios_is_defined_calendar_wrapper_month_lengths 107 108 12 109 SUBROUTINE cxios_set_calendar_wrapper_start_date(calendar_wrapper_hdl, start_date, start_date_size) BIND(C) 13 110 USE ISO_C_BINDING … … 94 191 95 192 193 SUBROUTINE cxios_set_calendar_wrapper_year_length(calendar_wrapper_hdl, year_length) BIND(C) 194 USE ISO_C_BINDING 195 INTEGER (kind = C_INTPTR_T), VALUE :: calendar_wrapper_hdl 196 INTEGER (KIND=C_INT) , VALUE :: year_length 197 END SUBROUTINE cxios_set_calendar_wrapper_year_length 198 199 SUBROUTINE cxios_get_calendar_wrapper_year_length(calendar_wrapper_hdl, year_length) BIND(C) 200 USE ISO_C_BINDING 201 INTEGER (kind = C_INTPTR_T), VALUE :: calendar_wrapper_hdl 202 INTEGER (KIND=C_INT) :: year_length 203 END SUBROUTINE cxios_get_calendar_wrapper_year_length 204 205 FUNCTION cxios_is_defined_calendar_wrapper_year_length(calendar_wrapper_hdl ) BIND(C) 206 USE ISO_C_BINDING 207 LOGICAL(kind=C_BOOL) :: cxios_is_defined_calendar_wrapper_year_length 208 INTEGER (kind = C_INTPTR_T), VALUE :: calendar_wrapper_hdl 209 END FUNCTION cxios_is_defined_calendar_wrapper_year_length 210 211 96 212 END INTERFACE 97 213 -
XIOS/trunk/src/interface/fortran_attr/icalendar_wrapper_attr.F90
r549 r550 12 12 13 13 SUBROUTINE xios(set_calendar_wrapper_attr) & 14 ( calendar_wrapper_id, start_date, time_origin, timestep, type ) 14 ( calendar_wrapper_id, day_length, leap_year_drift, leap_year_drift_offset, leap_year_month & 15 , month_lengths, start_date, time_origin, timestep, type, year_length ) 15 16 16 17 IMPLICIT NONE 17 18 TYPE(txios(calendar_wrapper)) :: calendar_wrapper_hdl 18 19 CHARACTER(LEN=*), INTENT(IN) ::calendar_wrapper_id 20 INTEGER , OPTIONAL, INTENT(IN) :: day_length 21 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: leap_year_drift 22 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: leap_year_drift_offset 23 INTEGER , OPTIONAL, INTENT(IN) :: leap_year_month 24 INTEGER , OPTIONAL, INTENT(IN) :: month_lengths(:) 19 25 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: start_date 20 26 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: time_origin 21 27 TYPE(txios(duration)) , OPTIONAL, INTENT(IN) :: timestep 22 28 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: type 29 INTEGER , OPTIONAL, INTENT(IN) :: year_length 23 30 24 31 CALL xios(get_calendar_wrapper_handle)(calendar_wrapper_id,calendar_wrapper_hdl) 25 32 CALL xios(set_calendar_wrapper_attr_hdl_) & 26 ( calendar_wrapper_hdl, start_date, time_origin, timestep, type ) 33 ( calendar_wrapper_hdl, day_length, leap_year_drift, leap_year_drift_offset, leap_year_month & 34 , month_lengths, start_date, time_origin, timestep, type, year_length ) 27 35 28 36 END SUBROUTINE xios(set_calendar_wrapper_attr) 29 37 30 38 SUBROUTINE xios(set_calendar_wrapper_attr_hdl) & 31 ( calendar_wrapper_hdl, start_date, time_origin, timestep, type ) 32 33 IMPLICIT NONE 34 TYPE(txios(calendar_wrapper)) , INTENT(IN) :: calendar_wrapper_hdl 39 ( calendar_wrapper_hdl, day_length, leap_year_drift, leap_year_drift_offset, leap_year_month & 40 , month_lengths, start_date, time_origin, timestep, type, year_length ) 41 42 IMPLICIT NONE 43 TYPE(txios(calendar_wrapper)) , INTENT(IN) :: calendar_wrapper_hdl 44 INTEGER , OPTIONAL, INTENT(IN) :: day_length 45 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: leap_year_drift 46 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: leap_year_drift_offset 47 INTEGER , OPTIONAL, INTENT(IN) :: leap_year_month 48 INTEGER , OPTIONAL, INTENT(IN) :: month_lengths(:) 35 49 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: start_date 36 50 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: time_origin 37 51 TYPE(txios(duration)) , OPTIONAL, INTENT(IN) :: timestep 38 52 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: type 53 INTEGER , OPTIONAL, INTENT(IN) :: year_length 39 54 40 55 CALL xios(set_calendar_wrapper_attr_hdl_) & 41 ( calendar_wrapper_hdl, start_date, time_origin, timestep, type ) 56 ( calendar_wrapper_hdl, day_length, leap_year_drift, leap_year_drift_offset, leap_year_month & 57 , month_lengths, start_date, time_origin, timestep, type, year_length ) 42 58 43 59 END SUBROUTINE xios(set_calendar_wrapper_attr_hdl) 44 60 45 61 SUBROUTINE xios(set_calendar_wrapper_attr_hdl_) & 46 ( calendar_wrapper_hdl, start_date_, time_origin_, timestep_, type_ ) 47 48 IMPLICIT NONE 49 TYPE(txios(calendar_wrapper)) , INTENT(IN) :: calendar_wrapper_hdl 62 ( calendar_wrapper_hdl, day_length_, leap_year_drift_, leap_year_drift_offset_, leap_year_month_ & 63 , month_lengths_, start_date_, time_origin_, timestep_, type_, year_length_ ) 64 65 IMPLICIT NONE 66 TYPE(txios(calendar_wrapper)) , INTENT(IN) :: calendar_wrapper_hdl 67 INTEGER , OPTIONAL, INTENT(IN) :: day_length_ 68 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: leap_year_drift_ 69 REAL (KIND=8) , OPTIONAL, INTENT(IN) :: leap_year_drift_offset_ 70 INTEGER , OPTIONAL, INTENT(IN) :: leap_year_month_ 71 INTEGER , OPTIONAL, INTENT(IN) :: month_lengths_(:) 50 72 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: start_date_ 51 73 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: time_origin_ 52 74 TYPE(txios(duration)) , OPTIONAL, INTENT(IN) :: timestep_ 53 75 CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: type_ 76 INTEGER , OPTIONAL, INTENT(IN) :: year_length_ 77 78 IF (PRESENT(day_length_)) THEN 79 CALL cxios_set_calendar_wrapper_day_length(calendar_wrapper_hdl%daddr, day_length_) 80 ENDIF 81 82 IF (PRESENT(leap_year_drift_)) THEN 83 CALL cxios_set_calendar_wrapper_leap_year_drift(calendar_wrapper_hdl%daddr, leap_year_drift_) 84 ENDIF 85 86 IF (PRESENT(leap_year_drift_offset_)) THEN 87 CALL cxios_set_calendar_wrapper_leap_year_drift_offset(calendar_wrapper_hdl%daddr, leap_year_drift_offset_) 88 ENDIF 89 90 IF (PRESENT(leap_year_month_)) THEN 91 CALL cxios_set_calendar_wrapper_leap_year_month(calendar_wrapper_hdl%daddr, leap_year_month_) 92 ENDIF 93 94 IF (PRESENT(month_lengths_)) THEN 95 CALL cxios_set_calendar_wrapper_month_lengths(calendar_wrapper_hdl%daddr, month_lengths_,size(month_lengths_,1)) 96 ENDIF 54 97 55 98 IF (PRESENT(start_date_)) THEN … … 69 112 ENDIF 70 113 114 IF (PRESENT(year_length_)) THEN 115 CALL cxios_set_calendar_wrapper_year_length(calendar_wrapper_hdl%daddr, year_length_) 116 ENDIF 117 71 118 72 119 … … 74 121 75 122 SUBROUTINE xios(get_calendar_wrapper_attr) & 76 ( calendar_wrapper_id, start_date, time_origin, timestep, type ) 123 ( calendar_wrapper_id, day_length, leap_year_drift, leap_year_drift_offset, leap_year_month & 124 , month_lengths, start_date, time_origin, timestep, type, year_length ) 77 125 78 126 IMPLICIT NONE 79 127 TYPE(txios(calendar_wrapper)) :: calendar_wrapper_hdl 80 128 CHARACTER(LEN=*), INTENT(IN) ::calendar_wrapper_id 129 INTEGER , OPTIONAL, INTENT(OUT) :: day_length 130 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: leap_year_drift 131 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: leap_year_drift_offset 132 INTEGER , OPTIONAL, INTENT(OUT) :: leap_year_month 133 INTEGER , OPTIONAL, INTENT(OUT) :: month_lengths(:) 81 134 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: start_date 82 135 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: time_origin 83 136 TYPE(txios(duration)) , OPTIONAL, INTENT(OUT) :: timestep 84 137 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: type 138 INTEGER , OPTIONAL, INTENT(OUT) :: year_length 85 139 86 140 CALL xios(get_calendar_wrapper_handle)(calendar_wrapper_id,calendar_wrapper_hdl) 87 141 CALL xios(get_calendar_wrapper_attr_hdl_) & 88 ( calendar_wrapper_hdl, start_date, time_origin, timestep, type ) 142 ( calendar_wrapper_hdl, day_length, leap_year_drift, leap_year_drift_offset, leap_year_month & 143 , month_lengths, start_date, time_origin, timestep, type, year_length ) 89 144 90 145 END SUBROUTINE xios(get_calendar_wrapper_attr) 91 146 92 147 SUBROUTINE xios(get_calendar_wrapper_attr_hdl) & 93 ( calendar_wrapper_hdl, start_date, time_origin, timestep, type ) 94 95 IMPLICIT NONE 96 TYPE(txios(calendar_wrapper)) , INTENT(IN) :: calendar_wrapper_hdl 148 ( calendar_wrapper_hdl, day_length, leap_year_drift, leap_year_drift_offset, leap_year_month & 149 , month_lengths, start_date, time_origin, timestep, type, year_length ) 150 151 IMPLICIT NONE 152 TYPE(txios(calendar_wrapper)) , INTENT(IN) :: calendar_wrapper_hdl 153 INTEGER , OPTIONAL, INTENT(OUT) :: day_length 154 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: leap_year_drift 155 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: leap_year_drift_offset 156 INTEGER , OPTIONAL, INTENT(OUT) :: leap_year_month 157 INTEGER , OPTIONAL, INTENT(OUT) :: month_lengths(:) 97 158 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: start_date 98 159 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: time_origin 99 160 TYPE(txios(duration)) , OPTIONAL, INTENT(OUT) :: timestep 100 161 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: type 162 INTEGER , OPTIONAL, INTENT(OUT) :: year_length 101 163 102 164 CALL xios(get_calendar_wrapper_attr_hdl_) & 103 ( calendar_wrapper_hdl, start_date, time_origin, timestep, type ) 165 ( calendar_wrapper_hdl, day_length, leap_year_drift, leap_year_drift_offset, leap_year_month & 166 , month_lengths, start_date, time_origin, timestep, type, year_length ) 104 167 105 168 END SUBROUTINE xios(get_calendar_wrapper_attr_hdl) 106 169 107 170 SUBROUTINE xios(get_calendar_wrapper_attr_hdl_) & 108 ( calendar_wrapper_hdl, start_date_, time_origin_, timestep_, type_ ) 109 110 IMPLICIT NONE 111 TYPE(txios(calendar_wrapper)) , INTENT(IN) :: calendar_wrapper_hdl 171 ( calendar_wrapper_hdl, day_length_, leap_year_drift_, leap_year_drift_offset_, leap_year_month_ & 172 , month_lengths_, start_date_, time_origin_, timestep_, type_, year_length_ ) 173 174 IMPLICIT NONE 175 TYPE(txios(calendar_wrapper)) , INTENT(IN) :: calendar_wrapper_hdl 176 INTEGER , OPTIONAL, INTENT(OUT) :: day_length_ 177 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: leap_year_drift_ 178 REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: leap_year_drift_offset_ 179 INTEGER , OPTIONAL, INTENT(OUT) :: leap_year_month_ 180 INTEGER , OPTIONAL, INTENT(OUT) :: month_lengths_(:) 112 181 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: start_date_ 113 182 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: time_origin_ 114 183 TYPE(txios(duration)) , OPTIONAL, INTENT(OUT) :: timestep_ 115 184 CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: type_ 185 INTEGER , OPTIONAL, INTENT(OUT) :: year_length_ 186 187 IF (PRESENT(day_length_)) THEN 188 CALL cxios_get_calendar_wrapper_day_length(calendar_wrapper_hdl%daddr, day_length_) 189 ENDIF 190 191 IF (PRESENT(leap_year_drift_)) THEN 192 CALL cxios_get_calendar_wrapper_leap_year_drift(calendar_wrapper_hdl%daddr, leap_year_drift_) 193 ENDIF 194 195 IF (PRESENT(leap_year_drift_offset_)) THEN 196 CALL cxios_get_calendar_wrapper_leap_year_drift_offset(calendar_wrapper_hdl%daddr, leap_year_drift_offset_) 197 ENDIF 198 199 IF (PRESENT(leap_year_month_)) THEN 200 CALL cxios_get_calendar_wrapper_leap_year_month(calendar_wrapper_hdl%daddr, leap_year_month_) 201 ENDIF 202 203 IF (PRESENT(month_lengths_)) THEN 204 CALL cxios_get_calendar_wrapper_month_lengths(calendar_wrapper_hdl%daddr, month_lengths_,size(month_lengths_,1)) 205 ENDIF 116 206 117 207 IF (PRESENT(start_date_)) THEN … … 131 221 ENDIF 132 222 223 IF (PRESENT(year_length_)) THEN 224 CALL cxios_get_calendar_wrapper_year_length(calendar_wrapper_hdl%daddr, year_length_) 225 ENDIF 226 133 227 134 228 … … 136 230 137 231 SUBROUTINE xios(is_defined_calendar_wrapper_attr) & 138 ( calendar_wrapper_id, start_date, time_origin, timestep, type ) 232 ( calendar_wrapper_id, day_length, leap_year_drift, leap_year_drift_offset, leap_year_month & 233 , month_lengths, start_date, time_origin, timestep, type, year_length ) 139 234 140 235 IMPLICIT NONE 141 236 TYPE(txios(calendar_wrapper)) :: calendar_wrapper_hdl 142 237 CHARACTER(LEN=*), INTENT(IN) ::calendar_wrapper_id 238 LOGICAL, OPTIONAL, INTENT(OUT) :: day_length 239 LOGICAL(KIND=C_BOOL) :: day_length_tmp 240 LOGICAL, OPTIONAL, INTENT(OUT) :: leap_year_drift 241 LOGICAL(KIND=C_BOOL) :: leap_year_drift_tmp 242 LOGICAL, OPTIONAL, INTENT(OUT) :: leap_year_drift_offset 243 LOGICAL(KIND=C_BOOL) :: leap_year_drift_offset_tmp 244 LOGICAL, OPTIONAL, INTENT(OUT) :: leap_year_month 245 LOGICAL(KIND=C_BOOL) :: leap_year_month_tmp 246 LOGICAL, OPTIONAL, INTENT(OUT) :: month_lengths 247 LOGICAL(KIND=C_BOOL) :: month_lengths_tmp 143 248 LOGICAL, OPTIONAL, INTENT(OUT) :: start_date 144 249 LOGICAL(KIND=C_BOOL) :: start_date_tmp … … 149 254 LOGICAL, OPTIONAL, INTENT(OUT) :: type 150 255 LOGICAL(KIND=C_BOOL) :: type_tmp 256 LOGICAL, OPTIONAL, INTENT(OUT) :: year_length 257 LOGICAL(KIND=C_BOOL) :: year_length_tmp 151 258 152 259 CALL xios(get_calendar_wrapper_handle)(calendar_wrapper_id,calendar_wrapper_hdl) 153 260 CALL xios(is_defined_calendar_wrapper_attr_hdl_) & 154 ( calendar_wrapper_hdl, start_date, time_origin, timestep, type ) 261 ( calendar_wrapper_hdl, day_length, leap_year_drift, leap_year_drift_offset, leap_year_month & 262 , month_lengths, start_date, time_origin, timestep, type, year_length ) 155 263 156 264 END SUBROUTINE xios(is_defined_calendar_wrapper_attr) 157 265 158 266 SUBROUTINE xios(is_defined_calendar_wrapper_attr_hdl) & 159 ( calendar_wrapper_hdl, start_date, time_origin, timestep, type ) 160 161 IMPLICIT NONE 162 TYPE(txios(calendar_wrapper)) , INTENT(IN) :: calendar_wrapper_hdl 267 ( calendar_wrapper_hdl, day_length, leap_year_drift, leap_year_drift_offset, leap_year_month & 268 , month_lengths, start_date, time_origin, timestep, type, year_length ) 269 270 IMPLICIT NONE 271 TYPE(txios(calendar_wrapper)) , INTENT(IN) :: calendar_wrapper_hdl 272 LOGICAL, OPTIONAL, INTENT(OUT) :: day_length 273 LOGICAL(KIND=C_BOOL) :: day_length_tmp 274 LOGICAL, OPTIONAL, INTENT(OUT) :: leap_year_drift 275 LOGICAL(KIND=C_BOOL) :: leap_year_drift_tmp 276 LOGICAL, OPTIONAL, INTENT(OUT) :: leap_year_drift_offset 277 LOGICAL(KIND=C_BOOL) :: leap_year_drift_offset_tmp 278 LOGICAL, OPTIONAL, INTENT(OUT) :: leap_year_month 279 LOGICAL(KIND=C_BOOL) :: leap_year_month_tmp 280 LOGICAL, OPTIONAL, INTENT(OUT) :: month_lengths 281 LOGICAL(KIND=C_BOOL) :: month_lengths_tmp 163 282 LOGICAL, OPTIONAL, INTENT(OUT) :: start_date 164 283 LOGICAL(KIND=C_BOOL) :: start_date_tmp … … 169 288 LOGICAL, OPTIONAL, INTENT(OUT) :: type 170 289 LOGICAL(KIND=C_BOOL) :: type_tmp 290 LOGICAL, OPTIONAL, INTENT(OUT) :: year_length 291 LOGICAL(KIND=C_BOOL) :: year_length_tmp 171 292 172 293 CALL xios(is_defined_calendar_wrapper_attr_hdl_) & 173 ( calendar_wrapper_hdl, start_date, time_origin, timestep, type ) 294 ( calendar_wrapper_hdl, day_length, leap_year_drift, leap_year_drift_offset, leap_year_month & 295 , month_lengths, start_date, time_origin, timestep, type, year_length ) 174 296 175 297 END SUBROUTINE xios(is_defined_calendar_wrapper_attr_hdl) 176 298 177 299 SUBROUTINE xios(is_defined_calendar_wrapper_attr_hdl_) & 178 ( calendar_wrapper_hdl, start_date_, time_origin_, timestep_, type_ ) 179 180 IMPLICIT NONE 181 TYPE(txios(calendar_wrapper)) , INTENT(IN) :: calendar_wrapper_hdl 300 ( calendar_wrapper_hdl, day_length_, leap_year_drift_, leap_year_drift_offset_, leap_year_month_ & 301 , month_lengths_, start_date_, time_origin_, timestep_, type_, year_length_ ) 302 303 IMPLICIT NONE 304 TYPE(txios(calendar_wrapper)) , INTENT(IN) :: calendar_wrapper_hdl 305 LOGICAL, OPTIONAL, INTENT(OUT) :: day_length_ 306 LOGICAL(KIND=C_BOOL) :: day_length__tmp 307 LOGICAL, OPTIONAL, INTENT(OUT) :: leap_year_drift_ 308 LOGICAL(KIND=C_BOOL) :: leap_year_drift__tmp 309 LOGICAL, OPTIONAL, INTENT(OUT) :: leap_year_drift_offset_ 310 LOGICAL(KIND=C_BOOL) :: leap_year_drift_offset__tmp 311 LOGICAL, OPTIONAL, INTENT(OUT) :: leap_year_month_ 312 LOGICAL(KIND=C_BOOL) :: leap_year_month__tmp 313 LOGICAL, OPTIONAL, INTENT(OUT) :: month_lengths_ 314 LOGICAL(KIND=C_BOOL) :: month_lengths__tmp 182 315 LOGICAL, OPTIONAL, INTENT(OUT) :: start_date_ 183 316 LOGICAL(KIND=C_BOOL) :: start_date__tmp … … 188 321 LOGICAL, OPTIONAL, INTENT(OUT) :: type_ 189 322 LOGICAL(KIND=C_BOOL) :: type__tmp 323 LOGICAL, OPTIONAL, INTENT(OUT) :: year_length_ 324 LOGICAL(KIND=C_BOOL) :: year_length__tmp 325 326 IF (PRESENT(day_length_)) THEN 327 day_length__tmp=cxios_is_defined_calendar_wrapper_day_length(calendar_wrapper_hdl%daddr) 328 day_length_=day_length__tmp 329 ENDIF 330 331 IF (PRESENT(leap_year_drift_)) THEN 332 leap_year_drift__tmp=cxios_is_defined_calendar_wrapper_leap_year_drift(calendar_wrapper_hdl%daddr) 333 leap_year_drift_=leap_year_drift__tmp 334 ENDIF 335 336 IF (PRESENT(leap_year_drift_offset_)) THEN 337 leap_year_drift_offset__tmp=cxios_is_defined_calendar_wrapper_leap_year_drift_offset(calendar_wrapper_hdl%daddr) 338 leap_year_drift_offset_=leap_year_drift_offset__tmp 339 ENDIF 340 341 IF (PRESENT(leap_year_month_)) THEN 342 leap_year_month__tmp=cxios_is_defined_calendar_wrapper_leap_year_month(calendar_wrapper_hdl%daddr) 343 leap_year_month_=leap_year_month__tmp 344 ENDIF 345 346 IF (PRESENT(month_lengths_)) THEN 347 month_lengths__tmp=cxios_is_defined_calendar_wrapper_month_lengths(calendar_wrapper_hdl%daddr) 348 month_lengths_=month_lengths__tmp 349 ENDIF 190 350 191 351 IF (PRESENT(start_date_)) THEN … … 209 369 ENDIF 210 370 371 IF (PRESENT(year_length_)) THEN 372 year_length__tmp=cxios_is_defined_calendar_wrapper_year_length(calendar_wrapper_hdl%daddr) 373 year_length_=year_length__tmp 374 ENDIF 375 211 376 212 377
Note: See TracChangeset
for help on using the changeset viewer.