Changeset 369 for IOIPSL


Ignore:
Timestamp:
07/30/08 10:50:16 (16 years ago)
Author:
bellier
Message:

Suppressed a bug in case of very short records.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • IOIPSL/trunk/tools/flio_rbld.f90

    r330 r369  
    9191  INTEGER,DIMENSION(:),ALLOCATABLE :: dom_att,d_d_i,d_s_g 
    9292  INTEGER,DIMENSION(:,:),ALLOCATABLE :: d_s_l,d_p_f,d_p_l,d_h_s,d_h_e 
    93   LOGICAL :: l_cgd,l_cof,l_col,l_o_f,l_o_l 
     93  LOGICAL :: l_cgd,l_cof,l_col,l_o_f,l_o_m,l_o_l 
    9494  CHARACTER(LEN=chlen) :: c_d_n 
    9595!- 
     
    663663          io_cm(:) = io_n(:); 
    664664!-------- If needed, allocate offset 
    665           l_o_f = .FALSE.; l_o_l = .FALSE.; 
     665          l_o_f = .FALSE.; l_o_m = .TRUE.; l_o_l = .FALSE.; 
    666666          IF (TRIM(c_d_n) == "apple") THEN 
    667667            ALLOCATE(ia_sf(i),io_sf(i),io_cf(i)) 
     
    704704            ENDIF 
    705705!---------- if needed, redefine start and count for dimensions 
    706             l_o_f = .FALSE.; l_o_l = .FALSE.; 
     706            l_o_f = .FALSE.; l_o_m = .TRUE.; l_o_l = .FALSE.; 
    707707            DO id=1,v_d_nb(iv) 
    708708              DO i=1,SIZE(d_d_i) 
     
    748748              ENDDO 
    749749            ENDDO 
     750            l_o_m = ALL(io_cm /= 0) 
    750751          ELSE 
    751752!---------- the data can be read/write in one piece 
     
    764765              WRITE (UNIT=*,FMT=*) "io_cf : ",io_cf(:) 
    765766            ENDIF 
    766             WRITE (UNIT=*,FMT=*) "ia_sm : ",ia_sm(:) 
    767             WRITE (UNIT=*,FMT=*) "io_sm : ",io_sm(:) 
    768             WRITE (UNIT=*,FMT=*) "io_cm : ",io_cm(:) 
     767            WRITE (UNIT=*,FMT=*) "l_o_m : ",l_o_m 
     768            IF (l_o_m) THEN 
     769              WRITE (UNIT=*,FMT=*) "ia_sm : ",ia_sm(:) 
     770              WRITE (UNIT=*,FMT=*) "io_sm : ",io_sm(:) 
     771              WRITE (UNIT=*,FMT=*) "io_cm : ",io_cm(:) 
     772            ENDIF 
    769773            WRITE (UNIT=*,FMT=*) "l_o_l : ",l_o_l 
    770774            IF (l_o_l) THEN 
     
    787791!?            ALLOCATE(i1_1d(io_n(1))) 
    788792!?            CALL fliogetv (f_id_i,TRIM(f_v_nm(iv)),i1_1d, & 
    789 !? &           start=io_i(:),count=io_n(:)) 
     793!? &            start=io_i(:),count=io_n(:)) 
    790794!?            IF (l_o_f) THEN 
    791795!?              ib(1:1) = ia_sf(1:1); ie(1:1) = ib(1:1)+io_cf(1:1)-1; 
     
    794798!? &              start=io_sf(:),count=io_cf(:)) 
    795799!?            ENDIF 
    796 !?            ib(1:1) = ia_sm(1:1); ie(1:1) = ib(1:1)+io_cm(1:1)-1; 
    797 !?            CALL flioputv (f_id_o,TRIM(f_v_nm(iv)), & 
    798 !? &            i1_1d(ib(1):ie(1)), & 
    799 !? &            start=io_sm(:),count=io_cm(:)) 
     800!?            IF (l_o_m) THEN 
     801!?              ib(1:1) = ia_sm(1:1); ie(1:1) = ib(1:1)+io_cm(1:1)-1; 
     802!?              CALL flioputv (f_id_o,TRIM(f_v_nm(iv)), & 
     803!? &              i1_1d(ib(1):ie(1)), & 
     804!? &              start=io_sm(:),count=io_cm(:)) 
     805!?            ENDIF 
    800806!?            IF (l_o_l) THEN 
    801807!?              ib(1:1) = ia_sl(1:1); ie(1:1) = ib(1:1)+io_cl(1:1)-1; 
     
    815821!? &              start=io_sf(:),count=io_cf(:)) 
    816822!?            ENDIF 
    817 !?            ib(1:2) = ia_sm(1:2); ie(1:2) = ib(1:2)+io_cm(1:2)-1; 
    818 !?            CALL flioputv (f_id_o,TRIM(f_v_nm(iv)), & 
    819 !? &            i1_2d(ib(1):ie(1),ib(2):ie(2)), & 
    820 !? &            start=io_sm(:),count=io_cm(:)) 
     823!?            IF (l_o_m) THEN 
     824!?              ib(1:2) = ia_sm(1:2); ie(1:2) = ib(1:2)+io_cm(1:2)-1; 
     825!?              CALL flioputv (f_id_o,TRIM(f_v_nm(iv)), & 
     826!? &              i1_2d(ib(1):ie(1),ib(2):ie(2)), & 
     827!? &              start=io_sm(:),count=io_cm(:)) 
     828!?            ENDIF 
    821829!?            IF (l_o_l) THEN 
    822830!?              ib(1:2) = ia_sl(1:2); ie(1:2) = ib(1:2)+io_cl(1:2)-1; 
     
    836844!? &              start=io_sf(:),count=io_cf(:)) 
    837845!?            ENDIF 
    838 !?            ib(1:3) = ia_sm(1:3); ie(1:3) = ib(1:3)+io_cm(1:3)-1; 
    839 !?            CALL flioputv (f_id_o,TRIM(f_v_nm(iv)), & 
    840 !? &            i1_3d(ib(1):ie(1),ib(2):ie(2),ib(3):ie(3)), & 
    841 !? &            start=io_sm(:),count=io_cm(:)) 
     846!?            IF (l_o_m) THEN 
     847!?              ib(1:3) = ia_sm(1:3); ie(1:3) = ib(1:3)+io_cm(1:3)-1; 
     848!?              CALL flioputv (f_id_o,TRIM(f_v_nm(iv)), & 
     849!? &              i1_3d(ib(1):ie(1),ib(2):ie(2),ib(3):ie(3)), & 
     850!? &              start=io_sm(:),count=io_cm(:)) 
     851!?            ENDIF 
    842852!?            IF (l_o_l) THEN 
    843853!?              ib(1:3) = ia_sl(1:3); ie(1:3) = ib(1:3)+io_cl(1:3)-1; 
     
    858868!? &              start=io_sf(:),count=io_cf(:)) 
    859869!?            ENDIF 
    860 !?            ib(1:4) = ia_sm(1:4); ie(1:4) = ib(1:4)+io_cm(1:4)-1; 
    861 !?            CALL flioputv (f_id_o,TRIM(f_v_nm(iv)), & 
    862 !? &            i1_4d(ib(1):ie(1),ib(2):ie(2), & 
    863 !? &                  ib(3):ie(3),ib(4):ie(4)), & 
    864 !? &            start=io_sm(:),count=io_cm(:)) 
     870!?            IF (l_o_m) THEN 
     871!?              ib(1:4) = ia_sm(1:4); ie(1:4) = ib(1:4)+io_cm(1:4)-1; 
     872!?              CALL flioputv (f_id_o,TRIM(f_v_nm(iv)), & 
     873!? &              i1_4d(ib(1):ie(1),ib(2):ie(2), & 
     874!? &                    ib(3):ie(3),ib(4):ie(4)), & 
     875!? &              start=io_sm(:),count=io_cm(:)) 
     876!?            ENDIF 
    865877!?            IF (l_o_l) THEN 
    866878!?              ib(1:4) = ia_sl(1:4); ie(1:4) = ib(1:4)+io_cl(1:4)-1; 
     
    882894!? &              start=io_sf(:),count=io_cf(:)) 
    883895!?            ENDIF 
    884 !?            ib(1:5) = ia_sm(1:5); ie(1:5) = ib(1:5)+io_cm(1:5)-1; 
    885 !?            CALL flioputv (f_id_o,TRIM(f_v_nm(iv)), & 
    886 !? &            i1_5d(ib(1):ie(1),ib(2):ie(2),ib(3):ie(3), & 
    887 !? &                  ib(4):ie(4),ib(5):ie(5)), & 
    888 !? &            start=io_sm(:),count=io_cm(:)) 
     896!?            IF (l_o_m) THEN 
     897!?              ib(1:5) = ia_sm(1:5); ie(1:5) = ib(1:5)+io_cm(1:5)-1; 
     898!?              CALL flioputv (f_id_o,TRIM(f_v_nm(iv)), & 
     899!? &              i1_5d(ib(1):ie(1),ib(2):ie(2),ib(3):ie(3), & 
     900!? &                    ib(4):ie(4),ib(5):ie(5)), & 
     901!? &              start=io_sm(:),count=io_cm(:)) 
     902!?            ENDIF 
    889903!?            IF (l_o_l) THEN 
    890904!?              ib(1:5) = ia_sl(1:5); ie(1:5) = ib(1:5)+io_cl(1:5)-1; 
     
    912926 &                start=io_sf(:),count=io_cf(:)) 
    913927              ENDIF 
    914               ib(1:1) = ia_sm(1:1); ie(1:1) = ib(1:1)+io_cm(1:1)-1; 
    915               CALL flioputv (f_id_o,TRIM(f_v_nm(iv)), & 
    916  &              i2_1d(ib(1):ie(1)), & 
    917  &              start=io_sm(:),count=io_cm(:)) 
     928              IF (l_o_m) THEN 
     929                ib(1:1) = ia_sm(1:1); ie(1:1) = ib(1:1)+io_cm(1:1)-1; 
     930                CALL flioputv (f_id_o,TRIM(f_v_nm(iv)), & 
     931 &                i2_1d(ib(1):ie(1)), & 
     932 &                start=io_sm(:),count=io_cm(:)) 
     933              ENDIF 
    918934              IF (l_o_l) THEN 
    919935                ib(1:1) = ia_sl(1:1); ie(1:1) = ib(1:1)+io_cl(1:1)-1; 
     
    933949 &                start=io_sf(:),count=io_cf(:)) 
    934950              ENDIF 
    935               ib(1:2) = ia_sm(1:2); ie(1:2) = ib(1:2)+io_cm(1:2)-1; 
    936               CALL flioputv (f_id_o,TRIM(f_v_nm(iv)), & 
    937  &              i2_2d(ib(1):ie(1),ib(2):ie(2)), & 
    938  &              start=io_sm(:),count=io_cm(:)) 
     951              IF (l_o_m) THEN 
     952                ib(1:2) = ia_sm(1:2); ie(1:2) = ib(1:2)+io_cm(1:2)-1; 
     953                CALL flioputv (f_id_o,TRIM(f_v_nm(iv)), & 
     954 &                i2_2d(ib(1):ie(1),ib(2):ie(2)), & 
     955 &                start=io_sm(:),count=io_cm(:)) 
     956              ENDIF 
    939957              IF (l_o_l) THEN 
    940958                ib(1:2) = ia_sl(1:2); ie(1:2) = ib(1:2)+io_cl(1:2)-1; 
     
    954972 &                start=io_sf(:),count=io_cf(:)) 
    955973              ENDIF 
    956               ib(1:3) = ia_sm(1:3); ie(1:3) = ib(1:3)+io_cm(1:3)-1; 
    957               CALL flioputv (f_id_o,TRIM(f_v_nm(iv)), & 
    958  &              i2_3d(ib(1):ie(1),ib(2):ie(2),ib(3):ie(3)), & 
    959  &              start=io_sm(:),count=io_cm(:)) 
     974              IF (l_o_m) THEN 
     975                ib(1:3) = ia_sm(1:3); ie(1:3) = ib(1:3)+io_cm(1:3)-1; 
     976                CALL flioputv (f_id_o,TRIM(f_v_nm(iv)), & 
     977 &                i2_3d(ib(1):ie(1),ib(2):ie(2),ib(3):ie(3)), & 
     978 &                start=io_sm(:),count=io_cm(:)) 
     979              ENDIF 
    960980              IF (l_o_l) THEN 
    961981                ib(1:3) = ia_sl(1:3); ie(1:3) = ib(1:3)+io_cl(1:3)-1; 
     
    976996 &                start=io_sf(:),count=io_cf(:)) 
    977997              ENDIF 
    978               ib(1:4) = ia_sm(1:4); ie(1:4) = ib(1:4)+io_cm(1:4)-1; 
    979               CALL flioputv (f_id_o,TRIM(f_v_nm(iv)), & 
    980  &              i2_4d(ib(1):ie(1),ib(2):ie(2), & 
    981  &                    ib(3):ie(3),ib(4):ie(4)), & 
    982  &              start=io_sm(:),count=io_cm(:)) 
     998              IF (l_o_m) THEN 
     999                ib(1:4) = ia_sm(1:4); ie(1:4) = ib(1:4)+io_cm(1:4)-1; 
     1000                CALL flioputv (f_id_o,TRIM(f_v_nm(iv)), & 
     1001 &                i2_4d(ib(1):ie(1),ib(2):ie(2), & 
     1002 &                      ib(3):ie(3),ib(4):ie(4)), & 
     1003 &                start=io_sm(:),count=io_cm(:)) 
     1004              ENDIF 
    9831005              IF (l_o_l) THEN 
    9841006                ib(1:4) = ia_sl(1:4); ie(1:4) = ib(1:4)+io_cl(1:4)-1; 
     
    10001022 &                start=io_sf(:),count=io_cf(:)) 
    10011023              ENDIF 
    1002               ib(1:5) = ia_sm(1:5); ie(1:5) = ib(1:5)+io_cm(1:5)-1; 
    1003               CALL flioputv (f_id_o,TRIM(f_v_nm(iv)), & 
    1004  &              i2_5d(ib(1):ie(1),ib(2):ie(2),ib(3):ie(3), & 
    1005  &                    ib(4):ie(4),ib(5):ie(5)), & 
    1006  &              start=io_sm(:),count=io_cm(:)) 
     1024              IF (l_o_m) THEN 
     1025                ib(1:5) = ia_sm(1:5); ie(1:5) = ib(1:5)+io_cm(1:5)-1; 
     1026                CALL flioputv (f_id_o,TRIM(f_v_nm(iv)), & 
     1027 &                i2_5d(ib(1):ie(1),ib(2):ie(2),ib(3):ie(3), & 
     1028 &                      ib(4):ie(4),ib(5):ie(5)), & 
     1029 &                start=io_sm(:),count=io_cm(:)) 
     1030              ENDIF 
    10071031              IF (l_o_l) THEN 
    10081032                ib(1:5) = ia_sl(1:5); ie(1:5) = ib(1:5)+io_cl(1:5)-1; 
     
    10291053 &                start=io_sf(:),count=io_cf(:)) 
    10301054              ENDIF 
    1031               ib(1:1) = ia_sm(1:1); ie(1:1) = ib(1:1)+io_cm(1:1)-1; 
    1032               CALL flioputv (f_id_o,TRIM(f_v_nm(iv)), & 
    1033  &              i4_1d(ib(1):ie(1)), & 
    1034  &              start=io_sm(:),count=io_cm(:)) 
     1055              IF (l_o_m) THEN 
     1056                ib(1:1) = ia_sm(1:1); ie(1:1) = ib(1:1)+io_cm(1:1)-1; 
     1057                CALL flioputv (f_id_o,TRIM(f_v_nm(iv)), & 
     1058 &                i4_1d(ib(1):ie(1)), & 
     1059 &                start=io_sm(:),count=io_cm(:)) 
     1060              ENDIF 
    10351061              IF (l_o_l) THEN 
    10361062                ib(1:1) = ia_sl(1:1); ie(1:1) = ib(1:1)+io_cl(1:1)-1; 
     
    10501076 &                start=io_sf(:),count=io_cf(:)) 
    10511077              ENDIF 
    1052               ib(1:2) = ia_sm(1:2); ie(1:2) = ib(1:2)+io_cm(1:2)-1; 
    1053               CALL flioputv (f_id_o,TRIM(f_v_nm(iv)), & 
    1054  &              i4_2d(ib(1):ie(1),ib(2):ie(2)), & 
    1055  &              start=io_sm(:),count=io_cm(:)) 
     1078              IF (l_o_m) THEN 
     1079                ib(1:2) = ia_sm(1:2); ie(1:2) = ib(1:2)+io_cm(1:2)-1; 
     1080                CALL flioputv (f_id_o,TRIM(f_v_nm(iv)), & 
     1081 &                i4_2d(ib(1):ie(1),ib(2):ie(2)), & 
     1082 &                start=io_sm(:),count=io_cm(:)) 
     1083              ENDIF 
    10561084              IF (l_o_l) THEN 
    10571085                ib(1:2) = ia_sl(1:2); ie(1:2) = ib(1:2)+io_cl(1:2)-1; 
     
    10711099 &                start=io_sf(:),count=io_cf(:)) 
    10721100              ENDIF 
    1073               ib(1:3) = ia_sm(1:3); ie(1:3) = ib(1:3)+io_cm(1:3)-1; 
    1074               CALL flioputv (f_id_o,TRIM(f_v_nm(iv)), & 
    1075  &              i4_3d(ib(1):ie(1),ib(2):ie(2),ib(3):ie(3)), & 
    1076  &              start=io_sm(:),count=io_cm(:)) 
     1101              IF (l_o_m) THEN 
     1102                ib(1:3) = ia_sm(1:3); ie(1:3) = ib(1:3)+io_cm(1:3)-1; 
     1103                CALL flioputv (f_id_o,TRIM(f_v_nm(iv)), & 
     1104 &                i4_3d(ib(1):ie(1),ib(2):ie(2),ib(3):ie(3)), & 
     1105 &                start=io_sm(:),count=io_cm(:)) 
     1106              ENDIF 
    10771107              IF (l_o_l) THEN 
    10781108                ib(1:3) = ia_sl(1:3); ie(1:3) = ib(1:3)+io_cl(1:3)-1; 
     
    10931123 &                start=io_sf(:),count=io_cf(:)) 
    10941124              ENDIF 
    1095               ib(1:4) = ia_sm(1:4); ie(1:4) = ib(1:4)+io_cm(1:4)-1; 
    1096               CALL flioputv (f_id_o,TRIM(f_v_nm(iv)), & 
    1097  &              i4_4d(ib(1):ie(1),ib(2):ie(2), & 
    1098  &                    ib(3):ie(3),ib(4):ie(4)), & 
    1099  &              start=io_sm(:),count=io_cm(:)) 
     1125              IF (l_o_m) THEN 
     1126                ib(1:4) = ia_sm(1:4); ie(1:4) = ib(1:4)+io_cm(1:4)-1; 
     1127                CALL flioputv (f_id_o,TRIM(f_v_nm(iv)), & 
     1128 &                i4_4d(ib(1):ie(1),ib(2):ie(2), & 
     1129 &                      ib(3):ie(3),ib(4):ie(4)), & 
     1130 &                start=io_sm(:),count=io_cm(:)) 
     1131              ENDIF 
    11001132              IF (l_o_l) THEN 
    11011133                ib(1:4) = ia_sl(1:4); ie(1:4) = ib(1:4)+io_cl(1:4)-1; 
     
    11171149 &                start=io_sf(:),count=io_cf(:)) 
    11181150              ENDIF 
    1119               ib(1:5) = ia_sm(1:5); ie(1:5) = ib(1:5)+io_cm(1:5)-1; 
    1120               CALL flioputv (f_id_o,TRIM(f_v_nm(iv)), & 
    1121  &              i4_5d(ib(1):ie(1),ib(2):ie(2),ib(3):ie(3), & 
    1122  &                    ib(4):ie(4),ib(5):ie(5)), & 
    1123  &              start=io_sm(:),count=io_cm(:)) 
     1151              IF (l_o_m) THEN 
     1152                ib(1:5) = ia_sm(1:5); ie(1:5) = ib(1:5)+io_cm(1:5)-1; 
     1153                CALL flioputv (f_id_o,TRIM(f_v_nm(iv)), & 
     1154 &                i4_5d(ib(1):ie(1),ib(2):ie(2),ib(3):ie(3), & 
     1155 &                      ib(4):ie(4),ib(5):ie(5)), & 
     1156 &                start=io_sm(:),count=io_cm(:)) 
     1157              ENDIF 
    11241158              IF (l_o_l) THEN 
    11251159                ib(1:5) = ia_sl(1:5); ie(1:5) = ib(1:5)+io_cl(1:5)-1; 
     
    11461180 &                start=io_sf(:),count=io_cf(:)) 
    11471181              ENDIF 
    1148               ib(1:1) = ia_sm(1:1); ie(1:1) = ib(1:1)+io_cm(1:1)-1; 
    1149               CALL flioputv (f_id_o,TRIM(f_v_nm(iv)), & 
    1150  &              r4_1d(ib(1):ie(1)), & 
    1151  &              start=io_sm(:),count=io_cm(:)) 
     1182              IF (l_o_m) THEN 
     1183                ib(1:1) = ia_sm(1:1); ie(1:1) = ib(1:1)+io_cm(1:1)-1; 
     1184                CALL flioputv (f_id_o,TRIM(f_v_nm(iv)), & 
     1185 &                r4_1d(ib(1):ie(1)), & 
     1186 &                start=io_sm(:),count=io_cm(:)) 
     1187              ENDIF 
    11521188              IF (l_o_l) THEN 
    11531189                ib(1:1) = ia_sl(1:1); ie(1:1) = ib(1:1)+io_cl(1:1)-1; 
     
    11671203 &                start=io_sf(:),count=io_cf(:)) 
    11681204              ENDIF 
    1169               ib(1:2) = ia_sm(1:2); ie(1:2) = ib(1:2)+io_cm(1:2)-1; 
    1170               CALL flioputv (f_id_o,TRIM(f_v_nm(iv)), & 
    1171  &              r4_2d(ib(1):ie(1),ib(2):ie(2)), & 
    1172  &              start=io_sm(:),count=io_cm(:)) 
     1205              IF (l_o_m) THEN 
     1206                ib(1:2) = ia_sm(1:2); ie(1:2) = ib(1:2)+io_cm(1:2)-1; 
     1207                CALL flioputv (f_id_o,TRIM(f_v_nm(iv)), & 
     1208 &                r4_2d(ib(1):ie(1),ib(2):ie(2)), & 
     1209 &                start=io_sm(:),count=io_cm(:)) 
     1210              ENDIF 
    11731211              IF (l_o_l) THEN 
    11741212                ib(1:2) = ia_sl(1:2); ie(1:2) = ib(1:2)+io_cl(1:2)-1; 
     
    11881226 &                start=io_sf(:),count=io_cf(:)) 
    11891227              ENDIF 
    1190               ib(1:3) = ia_sm(1:3); ie(1:3) = ib(1:3)+io_cm(1:3)-1; 
    1191               CALL flioputv (f_id_o,TRIM(f_v_nm(iv)), & 
    1192  &              r4_3d(ib(1):ie(1),ib(2):ie(2),ib(3):ie(3)), & 
    1193  &              start=io_sm(:),count=io_cm(:)) 
     1228              IF (l_o_m) THEN 
     1229                ib(1:3) = ia_sm(1:3); ie(1:3) = ib(1:3)+io_cm(1:3)-1; 
     1230                CALL flioputv (f_id_o,TRIM(f_v_nm(iv)), & 
     1231 &                r4_3d(ib(1):ie(1),ib(2):ie(2),ib(3):ie(3)), & 
     1232 &                start=io_sm(:),count=io_cm(:)) 
     1233              ENDIF 
    11941234              IF (l_o_l) THEN 
    11951235                ib(1:3) = ia_sl(1:3); ie(1:3) = ib(1:3)+io_cl(1:3)-1; 
     
    12101250 &                start=io_sf(:),count=io_cf(:)) 
    12111251              ENDIF 
    1212               ib(1:4) = ia_sm(1:4); ie(1:4) = ib(1:4)+io_cm(1:4)-1; 
    1213               CALL flioputv (f_id_o,TRIM(f_v_nm(iv)), & 
    1214  &              r4_4d(ib(1):ie(1),ib(2):ie(2), & 
    1215  &                    ib(3):ie(3),ib(4):ie(4)), & 
    1216  &              start=io_sm(:),count=io_cm(:)) 
     1252              IF (l_o_m) THEN 
     1253                ib(1:4) = ia_sm(1:4); ie(1:4) = ib(1:4)+io_cm(1:4)-1; 
     1254                CALL flioputv (f_id_o,TRIM(f_v_nm(iv)), & 
     1255 &                r4_4d(ib(1):ie(1),ib(2):ie(2), & 
     1256 &                      ib(3):ie(3),ib(4):ie(4)), & 
     1257 &                start=io_sm(:),count=io_cm(:)) 
     1258              ENDIF 
    12171259              IF (l_o_l) THEN 
    12181260                ib(1:4) = ia_sl(1:4); ie(1:4) = ib(1:4)+io_cl(1:4)-1; 
     
    12341276 &                start=io_sf(:),count=io_cf(:)) 
    12351277              ENDIF 
    1236               ib(1:5) = ia_sm(1:5); ie(1:5) = ib(1:5)+io_cm(1:5)-1; 
    1237               CALL flioputv (f_id_o,TRIM(f_v_nm(iv)), & 
    1238  &              r4_5d(ib(1):ie(1),ib(2):ie(2),ib(3):ie(3), & 
    1239  &                    ib(4):ie(4),ib(5):ie(5)), & 
    1240  &              start=io_sm(:),count=io_cm(:)) 
     1278              IF (l_o_m) THEN 
     1279                ib(1:5) = ia_sm(1:5); ie(1:5) = ib(1:5)+io_cm(1:5)-1; 
     1280                CALL flioputv (f_id_o,TRIM(f_v_nm(iv)), & 
     1281 &                r4_5d(ib(1):ie(1),ib(2):ie(2),ib(3):ie(3), & 
     1282 &                      ib(4):ie(4),ib(5):ie(5)), & 
     1283 &                start=io_sm(:),count=io_cm(:)) 
     1284              ENDIF 
    12411285              IF (l_o_l) THEN 
    12421286                ib(1:5) = ia_sl(1:5); ie(1:5) = ib(1:5)+io_cl(1:5)-1; 
     
    12631307 &                start=io_sf(:),count=io_cf(:)) 
    12641308              ENDIF 
    1265               ib(1:1) = ia_sm(1:1); ie(1:1) = ib(1:1)+io_cm(1:1)-1; 
    1266               CALL flioputv (f_id_o,TRIM(f_v_nm(iv)), & 
    1267  &              r8_1d(ib(1):ie(1)), & 
    1268  &              start=io_sm(:),count=io_cm(:)) 
     1309              IF (l_o_m) THEN 
     1310                ib(1:1) = ia_sm(1:1); ie(1:1) = ib(1:1)+io_cm(1:1)-1; 
     1311                CALL flioputv (f_id_o,TRIM(f_v_nm(iv)), & 
     1312 &                r8_1d(ib(1):ie(1)), & 
     1313 &                start=io_sm(:),count=io_cm(:)) 
     1314              ENDIF 
    12691315              IF (l_o_l) THEN 
    12701316                ib(1:1) = ia_sl(1:1); ie(1:1) = ib(1:1)+io_cl(1:1)-1; 
     
    12841330 &                start=io_sf(:),count=io_cf(:)) 
    12851331              ENDIF 
    1286               ib(1:2) = ia_sm(1:2); ie(1:2) = ib(1:2)+io_cm(1:2)-1; 
    1287               CALL flioputv (f_id_o,TRIM(f_v_nm(iv)), & 
    1288  &              r8_2d(ib(1):ie(1),ib(2):ie(2)), & 
    1289  &              start=io_sm(:),count=io_cm(:)) 
     1332              IF (l_o_m) THEN 
     1333                ib(1:2) = ia_sm(1:2); ie(1:2) = ib(1:2)+io_cm(1:2)-1; 
     1334                CALL flioputv (f_id_o,TRIM(f_v_nm(iv)), & 
     1335 &                r8_2d(ib(1):ie(1),ib(2):ie(2)), & 
     1336 &                start=io_sm(:),count=io_cm(:)) 
     1337              ENDIF 
    12901338              IF (l_o_l) THEN 
    12911339                ib(1:2) = ia_sl(1:2); ie(1:2) = ib(1:2)+io_cl(1:2)-1; 
     
    13051353 &                start=io_sf(:),count=io_cf(:)) 
    13061354              ENDIF 
    1307               ib(1:3) = ia_sm(1:3); ie(1:3) = ib(1:3)+io_cm(1:3)-1; 
    1308               CALL flioputv (f_id_o,TRIM(f_v_nm(iv)), & 
    1309  &              r8_3d(ib(1):ie(1),ib(2):ie(2),ib(3):ie(3)), & 
    1310  &              start=io_sm(:),count=io_cm(:)) 
     1355              IF (l_o_m) THEN 
     1356                ib(1:3) = ia_sm(1:3); ie(1:3) = ib(1:3)+io_cm(1:3)-1; 
     1357                CALL flioputv (f_id_o,TRIM(f_v_nm(iv)), & 
     1358 &                r8_3d(ib(1):ie(1),ib(2):ie(2),ib(3):ie(3)), & 
     1359 &                start=io_sm(:),count=io_cm(:)) 
     1360              ENDIF 
    13111361              IF (l_o_l) THEN 
    13121362                ib(1:3) = ia_sl(1:3); ie(1:3) = ib(1:3)+io_cl(1:3)-1; 
     
    13271377 &                start=io_sf(:),count=io_cf(:)) 
    13281378              ENDIF 
    1329               ib(1:4) = ia_sm(1:4); ie(1:4) = ib(1:4)+io_cm(1:4)-1; 
    1330               CALL flioputv (f_id_o,TRIM(f_v_nm(iv)), & 
    1331  &              r8_4d(ib(1):ie(1),ib(2):ie(2), & 
    1332  &                    ib(3):ie(3),ib(4):ie(4)), & 
    1333  &              start=io_sm(:),count=io_cm(:)) 
     1379              IF (l_o_m) THEN 
     1380                ib(1:4) = ia_sm(1:4); ie(1:4) = ib(1:4)+io_cm(1:4)-1; 
     1381                CALL flioputv (f_id_o,TRIM(f_v_nm(iv)), & 
     1382 &                r8_4d(ib(1):ie(1),ib(2):ie(2), & 
     1383 &                      ib(3):ie(3),ib(4):ie(4)), & 
     1384 &                start=io_sm(:),count=io_cm(:)) 
     1385              ENDIF 
    13341386              IF (l_o_l) THEN 
    13351387                ib(1:4) = ia_sl(1:4); ie(1:4) = ib(1:4)+io_cl(1:4)-1; 
     
    13511403 &                start=io_sf(:),count=io_cf(:)) 
    13521404              ENDIF 
    1353               ib(1:5) = ia_sm(1:5); ie(1:5) = ib(1:5)+io_cm(1:5)-1; 
    1354               CALL flioputv (f_id_o,TRIM(f_v_nm(iv)), & 
    1355  &              r8_5d(ib(1):ie(1),ib(2):ie(2),ib(3):ie(3), & 
    1356  &                    ib(4):ie(4),ib(5):ie(5)), & 
    1357  &              start=io_sm(:),count=io_cm(:)) 
     1405              IF (l_o_m) THEN 
     1406                ib(1:5) = ia_sm(1:5); ie(1:5) = ib(1:5)+io_cm(1:5)-1; 
     1407                CALL flioputv (f_id_o,TRIM(f_v_nm(iv)), & 
     1408 &                r8_5d(ib(1):ie(1),ib(2):ie(2),ib(3):ie(3), & 
     1409 &                      ib(4):ie(4),ib(5):ie(5)), & 
     1410 &                start=io_sm(:),count=io_cm(:)) 
     1411              ENDIF 
    13581412              IF (l_o_l) THEN 
    13591413                ib(1:5) = ia_sl(1:5); ie(1:5) = ib(1:5)+io_cl(1:5)-1; 
Note: See TracChangeset for help on using the changeset viewer.