Changeset 29 for XMLIO_SERVER/trunk/src/IOSERVER/mod_interface_ioipsl.f90
- Timestamp:
- 04/15/09 17:34:38 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XMLIO_SERVER/trunk/src/IOSERVER/mod_interface_ioipsl.f90
r28 r29 38 38 TYPE(field),POINTER :: pt_field 39 39 TYPE(grid),POINTER :: pt_grid 40 TYPE(zoom),POINTER :: pt_zoom 40 41 TYPE(axis),POINTER :: pt_axis 41 42 TYPE(domain),POINTER :: pt_domain … … 48 49 INTEGER :: ioipsl_domain_id 49 50 INTEGER :: i,j 51 CHARACTER(LEN=20) :: direction 50 52 51 53 CALL xmlio__close_definition … … 61 63 pt_grid=>pt_file_dep%grids%at(1)%pt 62 64 pt_domain=>pt_grid%domain 63 CALL set_ioipsl_domain_id(pt_grid,nb_server,server_rank,ioipsl_domain_id) 64 CALL histbeg(TRIM(pt_file%name),pt_domain%ni,pt_domain%lon, pt_domain%nj, pt_domain%lat, & 65 1, pt_domain%ni, 1, pt_domain%nj,initial_timestep, initial_date, timestep_value, & 66 ioipsl_hori_id, ioipsl_file_id,domain_id=ioipsl_domain_id) 67 68 DO j=1,pt_file_dep%axis%size 69 pt_axis=>pt_file_dep%axis%at(j)%pt 70 CALL sorted_list__find(axis_id,hash(Pt_axis%name),ioipsl_axis_id,found) 71 IF (.NOT. found) THEN 72 IF (TRIM(pt_axis%name) /= "none") THEN 73 CALL histvert(ioipsl_file_id, TRIM(pt_axis%name),TRIM(pt_axis%description), & 74 TRIM(pt_axis%unit), pt_axis%size,pt_axis%values, ioipsl_axis_id) 75 CALL sorted_list__add(axis_id,hash(Pt_axis%name),ioipsl_axis_id) 65 pt_zoom=>pt_file_dep%zooms%at(1)%pt 66 ! print *,TRIM(pt_file%name),' ',TRIM(pt_zoom%id) 67 ! print*,'Global --->',pt_zoom%ni_glo,pt_zoom%nj_glo,pt_zoom%ibegin_glo,pt_zoom%jbegin_glo 68 ! print*,'Local --->',pt_zoom%ni_loc,pt_zoom%nj_loc,pt_zoom%ibegin_loc,pt_zoom%jbegin_loc 69 70 IF (pt_zoom%ni_loc*pt_zoom%nj_loc > 0) THEN 71 72 IF ( (pt_zoom%ni_loc == pt_zoom%ni_glo) .AND. (pt_zoom%nj_loc == pt_zoom%nj_glo) ) THEN 73 74 CALL histbeg(TRIM(pt_file%name),pt_domain%ni,pt_domain%lon, pt_domain%nj, pt_domain%lat, & 75 pt_zoom%ibegin_loc, pt_zoom%ni_loc,pt_zoom%jbegin_loc,pt_zoom%nj_loc, & & 76 initial_timestep, initial_date, timestep_value, & 77 ioipsl_hori_id, ioipsl_file_id) 78 ELSE 79 80 CALL set_ioipsl_domain_id(pt_grid,nb_server,server_rank,ioipsl_domain_id) 81 CALL histbeg(TRIM(pt_file%name),pt_domain%ni,pt_domain%lon, pt_domain%nj, pt_domain%lat, & 82 pt_zoom%ibegin_loc, pt_zoom%ni_loc,pt_zoom%jbegin_loc,pt_zoom%nj_loc, & & 83 initial_timestep, initial_date, timestep_value, & 84 ioipsl_hori_id, ioipsl_file_id,domain_id=ioipsl_domain_id) 85 86 ENDIF 87 88 89 DO j=1,pt_file_dep%axis%size 90 pt_axis=>pt_file_dep%axis%at(j)%pt 91 CALL sorted_list__find(axis_id,hash(Pt_axis%name),ioipsl_axis_id,found) 92 IF (.NOT. found) THEN 93 IF (TRIM(pt_axis%name) /= "none") THEN 94 95 IF (pt_axis%has_positive) THEN 96 IF (pt_axis%positive) THEN 97 direction="up" 98 ELSE 99 direction="down" 100 ENDIF 101 ELSE 102 direction='unknown' 103 ENDIF 104 105 CALL histvert(ioipsl_file_id, TRIM(pt_axis%name),TRIM(pt_axis%description), & 106 TRIM(pt_axis%unit), pt_axis%size,pt_axis%values, ioipsl_axis_id, & 107 pdirect=direction) 108 CALL sorted_list__add(axis_id,hash(Pt_axis%name),ioipsl_axis_id) 109 ENDIF 76 110 ENDIF 77 END IF78 ENDDO79 80 DO j=1,pt_file_dep%fields%size81 pt_field=>pt_file_dep%fields%at(j)%pt82 IF (pt_field%axis%name=="none") THEN83 pt_field%internal(id_file)=ioipsl_file_id84 CALL histdef(ioipsl_file_id, TRIM(pt_field%name), pt_field%description,&85 & pt_field%unit, pt_field%grid%domain%ni, pt_field%grid%domain%nj,&86 & ioipsl_hori_id, 1, 1, 1, -99, 32, pt_field%operation, &87 & real(pt_field%freq_op), real(pt_file%output_freq) )88 ELSE89 pt_field%internal(id_file)=ioipsl_file_id90 CALL sorted_list__find(axis_id,hash(Pt_field%axis%name),ioipsl_axis_id,found)91 CALL histdef(ioipsl_file_id, TRIM(pt_field%name), pt_field%description,&92 & pt_field%unit, pt_field%grid%domain%ni, pt_field%grid%domain%nj,&93 & ioipsl_hori_id, pt_field%axis%size, 1, pt_field%axis%size,&94 & ioipsl_axis_id, 32, pt_field%operation, real(pt_field%freq_op), &95 & real(pt_file%output_freq) )96 END IF97 ENDDO98 CALL histend(ioipsl_file_id)111 ENDDO 112 113 DO j=1,pt_file_dep%fields%size 114 pt_field=>pt_file_dep%fields%at(j)%pt 115 IF (pt_field%axis%name=="none") THEN 116 pt_field%internal(id_file)=ioipsl_file_id 117 CALL histdef(ioipsl_file_id, TRIM(pt_field%name), pt_field%description, & 118 & pt_field%unit, pt_field%grid%domain%ni, pt_field%grid%domain%nj, & 119 & ioipsl_hori_id, 1, 1, 1, -99, 32, pt_field%operation, & 120 & real(pt_field%freq_op), real(pt_file%output_freq) ) 121 ELSE 122 pt_field%internal(id_file)=ioipsl_file_id 123 CALL sorted_list__find(axis_id,hash(Pt_field%axis%name),ioipsl_axis_id,found) 124 CALL histdef(ioipsl_file_id, TRIM(pt_field%name), pt_field%description, & 125 & pt_field%unit, pt_field%grid%domain%ni, pt_field%grid%domain%nj, & 126 & ioipsl_hori_id, pt_field%axis%size, 1, pt_field%axis%size, & 127 & ioipsl_axis_id, 32, pt_field%operation, real(pt_field%freq_op), & 128 & real(pt_file%output_freq) ) 129 ENDIF 130 ENDDO 131 CALL histend(ioipsl_file_id) 132 ENDIF 99 133 CALL sorted_list__delete(axis_id) 100 134 ENDDO … … 128 162 DO i=1,pt_field_base%field_out%size 129 163 pt_field=>pt_field_base%field_out%at(i)%pt%field 130 ioipsl_file_id=pt_field%internal(id_file) 131 CALL histwrite(ioipsl_file_id, TRIM(pt_field%name), timestep_number, var, size(var), nindex) 164 IF ( pt_field%zoom%ni_loc * pt_field%zoom%nj_loc > 0) THEN 165 ioipsl_file_id=pt_field%internal(id_file) 166 CALL histwrite(ioipsl_file_id, TRIM(pt_field%name), timestep_number, var, size(var), nindex) 167 ENDIF 132 168 ENDDO 133 169 ENDIF … … 158 194 DO i=1,pt_field_base%field_out%size 159 195 pt_field=>pt_field_base%field_out%at(i)%pt%field 160 ioipsl_file_id=pt_field%internal(id_file) 161 CALL histwrite(ioipsl_file_id, TRIM(pt_field%name), timestep_number, var, size(var), nindex) 196 IF ( pt_field%zoom%ni_loc * pt_field%zoom%nj_loc > 0) THEN 197 ioipsl_file_id=pt_field%internal(id_file) 198 CALL histwrite(ioipsl_file_id, TRIM(pt_field%name), timestep_number, var, size(var), nindex) 199 ENDIF 162 200 ENDDO 163 201 ENDIF
Note: See TracChangeset
for help on using the changeset viewer.