534     character(*), 
intent(in):: message
   535     character(*), 
intent(in):: answer
   536     character(*), 
intent(in):: check
   538     character(STRING):: pos_str
   539     character(STRING):: wrong, right
   550     err_flag = .not. trim(answer) == trim(check)
   559       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'   561       write(*,*) 
'  check' // trim(pos_str) // 
'  = ', trim(wrong)
   562       write(*,*) 
'    is NOT EQUAL to'   563       write(*,*) 
'  answer' // trim(pos_str) // 
' = ', trim(right)
   567       write(*,*) 
' *** MESSAGE [AssertEQ] *** Checking ' // trim(message) // 
' OK'   578     character(*), 
intent(in):: message
   579     character(*), 
intent(in):: answer(:)
   580     character(*), 
intent(in):: check(:)
   582     character(STRING):: pos_str
   583     character(STRING):: wrong, right
   585                         integer:: answer_shape(1), check_shape(1), pos(1)
   586     logical:: consist_shape(1)
   587     character(TOKEN):: pos_array(1)
   588     integer, 
allocatable:: mask_array(:)
   589     logical, 
allocatable:: judge(:)
   590     logical, 
allocatable:: judge_rev(:)
   593                                               character(STRING), 
allocatable:: answer_fixed_length(:)
   594     character(STRING), 
allocatable:: check_fixed_length(:)
   602     answer_shape = shape(answer)
   603     check_shape = shape(check)
   605     consist_shape = answer_shape == check_shape
   607     if (.not. all(consist_shape)) 
then   608       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'   610       write(*,*) 
'  shape of check is (', check_shape, 
')'   611       write(*,*) 
'    is INCORRECT'   612       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')'   618     allocate( mask_array( &
   620       &    answer_shape(1)  )  &
   625       &    answer_shape(1)  )  &
   628     allocate( judge_rev( &
   630       &    answer_shape(1)  )  &
   634     allocate( answer_fixed_length( &
   636       &    answer_shape(1)  )  &
   639     allocate( check_fixed_length( &
   644     answer_fixed_length = answer
   645     check_fixed_length = check
   647     judge = answer_fixed_length == check_fixed_length
   648     deallocate(answer_fixed_length, check_fixed_length)
   652     judge_rev = .not. judge
   653     err_flag = any(judge_rev)
   655     pos = maxloc(mask_array, judge_rev)
   667                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
   672         &    trim(adjustl(pos_array(1))) // 
')'   675     deallocate(mask_array, judge, judge_rev)
   681       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'   683       write(*,*) 
'  check' // trim(pos_str) // 
'  = ', trim(wrong)
   684       write(*,*) 
'    is NOT EQUAL to'   685       write(*,*) 
'  answer' // trim(pos_str) // 
' = ', trim(right)
   689       write(*,*) 
' *** MESSAGE [AssertEQ] *** Checking ' // trim(message) // 
' OK'   700     character(*), 
intent(in):: message
   701     character(*), 
intent(in):: answer(:,:)
   702     character(*), 
intent(in):: check(:,:)
   704     character(STRING):: pos_str
   705     character(STRING):: wrong, right
   707                         integer:: answer_shape(2), check_shape(2), pos(2)
   708     logical:: consist_shape(2)
   709     character(TOKEN):: pos_array(2)
   710     integer, 
allocatable:: mask_array(:,:)
   711     logical, 
allocatable:: judge(:,:)
   712     logical, 
allocatable:: judge_rev(:,:)
   715                                               character(STRING), 
allocatable:: answer_fixed_length(:,:)
   716     character(STRING), 
allocatable:: check_fixed_length(:,:)
   724     answer_shape = shape(answer)
   725     check_shape = shape(check)
   727     consist_shape = answer_shape == check_shape
   729     if (.not. all(consist_shape)) 
then   730       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'   732       write(*,*) 
'  shape of check is (', check_shape, 
')'   733       write(*,*) 
'    is INCORRECT'   734       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')'   740     allocate( mask_array( &
   743       &    answer_shape(2)  )  &
   749       &    answer_shape(2)  )  &
   752     allocate( judge_rev( &
   755       &    answer_shape(2)  )  &
   759     allocate( answer_fixed_length( &
   762       &    answer_shape(2)  )  &
   765     allocate( check_fixed_length( &
   771     answer_fixed_length = answer
   772     check_fixed_length = check
   774     judge = answer_fixed_length == check_fixed_length
   775     deallocate(answer_fixed_length, check_fixed_length)
   779     judge_rev = .not. judge
   780     err_flag = any(judge_rev)
   782     pos = maxloc(mask_array, judge_rev)
   796                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
   798       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
   802                               &    trim(adjustl(pos_array(1))) // 
',' // &
   804         &    trim(adjustl(pos_array(2))) // 
')'   807     deallocate(mask_array, judge, judge_rev)
   813       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'   815       write(*,*) 
'  check' // trim(pos_str) // 
'  = ', trim(wrong)
   816       write(*,*) 
'    is NOT EQUAL to'   817       write(*,*) 
'  answer' // trim(pos_str) // 
' = ', trim(right)
   821       write(*,*) 
' *** MESSAGE [AssertEQ] *** Checking ' // trim(message) // 
' OK'   832     character(*), 
intent(in):: message
   833     character(*), 
intent(in):: answer(:,:,:)
   834     character(*), 
intent(in):: check(:,:,:)
   836     character(STRING):: pos_str
   837     character(STRING):: wrong, right
   839                         integer:: answer_shape(3), check_shape(3), pos(3)
   840     logical:: consist_shape(3)
   841     character(TOKEN):: pos_array(3)
   842     integer, 
allocatable:: mask_array(:,:,:)
   843     logical, 
allocatable:: judge(:,:,:)
   844     logical, 
allocatable:: judge_rev(:,:,:)
   847                                               character(STRING), 
allocatable:: answer_fixed_length(:,:,:)
   848     character(STRING), 
allocatable:: check_fixed_length(:,:,:)
   856     answer_shape = shape(answer)
   857     check_shape = shape(check)
   859     consist_shape = answer_shape == check_shape
   861     if (.not. all(consist_shape)) 
then   862       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'   864       write(*,*) 
'  shape of check is (', check_shape, 
')'   865       write(*,*) 
'    is INCORRECT'   866       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')'   872     allocate( mask_array( &
   877       &    answer_shape(3)  )  &
   885       &    answer_shape(3)  )  &
   888     allocate( judge_rev( &
   893       &    answer_shape(3)  )  &
   897     allocate( answer_fixed_length( &
   902       &    answer_shape(3)  )  &
   905     allocate( check_fixed_length( &
   913     answer_fixed_length = answer
   914     check_fixed_length = check
   916     judge = answer_fixed_length == check_fixed_length
   917     deallocate(answer_fixed_length, check_fixed_length)
   921     judge_rev = .not. judge
   922     err_flag = any(judge_rev)
   924     pos = maxloc(mask_array, judge_rev)
   942                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
   944       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
   946       write(unit=pos_array(3), fmt=
"(i20)") pos(3)
   950                               &    trim(adjustl(pos_array(1))) // 
',' // &
   952         &    trim(adjustl(pos_array(2))) // 
',' // &
   954         &    trim(adjustl(pos_array(3))) // 
')'   957     deallocate(mask_array, judge, judge_rev)
   963       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'   965       write(*,*) 
'  check' // trim(pos_str) // 
'  = ', trim(wrong)
   966       write(*,*) 
'    is NOT EQUAL to'   967       write(*,*) 
'  answer' // trim(pos_str) // 
' = ', trim(right)
   971       write(*,*) 
' *** MESSAGE [AssertEQ] *** Checking ' // trim(message) // 
' OK'   982     character(*), 
intent(in):: message
   983     character(*), 
intent(in):: answer(:,:,:,:)
   984     character(*), 
intent(in):: check(:,:,:,:)
   986     character(STRING):: pos_str
   987     character(STRING):: wrong, right
   989                         integer:: answer_shape(4), check_shape(4), pos(4)
   990     logical:: consist_shape(4)
   991     character(TOKEN):: pos_array(4)
   992     integer, 
allocatable:: mask_array(:,:,:,:)
   993     logical, 
allocatable:: judge(:,:,:,:)
   994     logical, 
allocatable:: judge_rev(:,:,:,:)
   997                                               character(STRING), 
allocatable:: answer_fixed_length(:,:,:,:)
   998     character(STRING), 
allocatable:: check_fixed_length(:,:,:,:)
  1006     answer_shape = shape(answer)
  1007     check_shape = shape(check)
  1009     consist_shape = answer_shape == check_shape
  1011     if (.not. all(consist_shape)) 
then  1012       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  1014       write(*,*) 
'  shape of check is (', check_shape, 
')'  1015       write(*,*) 
'    is INCORRECT'  1016       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')'  1022     allocate( mask_array( &
  1023                             &    answer_shape(1), &
  1025       &    answer_shape(2), &
  1027       &    answer_shape(3), &
  1029       &    answer_shape(4)  )  &
  1033                             &    answer_shape(1), &
  1035       &    answer_shape(2), &
  1037       &    answer_shape(3), &
  1039       &    answer_shape(4)  )  &
  1042     allocate( judge_rev( &
  1043                             &    answer_shape(1), &
  1045       &    answer_shape(2), &
  1047       &    answer_shape(3), &
  1049       &    answer_shape(4)  )  &
  1053     allocate( answer_fixed_length( &
  1054                               &    answer_shape(1), &
  1056       &    answer_shape(2), &
  1058       &    answer_shape(3), &
  1060       &    answer_shape(4)  )  &
  1063     allocate( check_fixed_length( &
  1070       &    check_shape(4)  )  &
  1073     answer_fixed_length = answer
  1074     check_fixed_length = check
  1076     judge = answer_fixed_length == check_fixed_length
  1077     deallocate(answer_fixed_length, check_fixed_length)
  1081     judge_rev = .not. judge
  1082     err_flag = any(judge_rev)
  1084     pos = maxloc(mask_array, judge_rev)
  1106                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
  1108       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
  1110       write(unit=pos_array(3), fmt=
"(i20)") pos(3)
  1112       write(unit=pos_array(4), fmt=
"(i20)") pos(4)
  1116                               &    trim(adjustl(pos_array(1))) // 
',' // &
  1118         &    trim(adjustl(pos_array(2))) // 
',' // &
  1120         &    trim(adjustl(pos_array(3))) // 
',' // &
  1122         &    trim(adjustl(pos_array(4))) // 
')'  1125     deallocate(mask_array, judge, judge_rev)
  1131       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  1133       write(*,*) 
'  check' // trim(pos_str) // 
'  = ', trim(wrong)
  1134       write(*,*) 
'    is NOT EQUAL to'  1135       write(*,*) 
'  answer' // trim(pos_str) // 
' = ', trim(right)
  1139       write(*,*) 
' *** MESSAGE [AssertEQ] *** Checking ' // trim(message) // 
' OK'  1150     character(*), 
intent(in):: message
  1151     character(*), 
intent(in):: answer(:,:,:,:,:)
  1152     character(*), 
intent(in):: check(:,:,:,:,:)
  1154     character(STRING):: pos_str
  1155     character(STRING):: wrong, right
  1157                         integer:: answer_shape(5), check_shape(5), pos(5)
  1158     logical:: consist_shape(5)
  1159     character(TOKEN):: pos_array(5)
  1160     integer, 
allocatable:: mask_array(:,:,:,:,:)
  1161     logical, 
allocatable:: judge(:,:,:,:,:)
  1162     logical, 
allocatable:: judge_rev(:,:,:,:,:)
  1165                                               character(STRING), 
allocatable:: answer_fixed_length(:,:,:,:,:)
  1166     character(STRING), 
allocatable:: check_fixed_length(:,:,:,:,:)
  1174     answer_shape = shape(answer)
  1175     check_shape = shape(check)
  1177     consist_shape = answer_shape == check_shape
  1179     if (.not. all(consist_shape)) 
then  1180       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  1182       write(*,*) 
'  shape of check is (', check_shape, 
')'  1183       write(*,*) 
'    is INCORRECT'  1184       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')'  1190     allocate( mask_array( &
  1191                             &    answer_shape(1), &
  1193       &    answer_shape(2), &
  1195       &    answer_shape(3), &
  1197       &    answer_shape(4), &
  1199       &    answer_shape(5)  )  &
  1203                             &    answer_shape(1), &
  1205       &    answer_shape(2), &
  1207       &    answer_shape(3), &
  1209       &    answer_shape(4), &
  1211       &    answer_shape(5)  )  &
  1214     allocate( judge_rev( &
  1215                             &    answer_shape(1), &
  1217       &    answer_shape(2), &
  1219       &    answer_shape(3), &
  1221       &    answer_shape(4), &
  1223       &    answer_shape(5)  )  &
  1227     allocate( answer_fixed_length( &
  1228                               &    answer_shape(1), &
  1230       &    answer_shape(2), &
  1232       &    answer_shape(3), &
  1234       &    answer_shape(4), &
  1236       &    answer_shape(5)  )  &
  1239     allocate( check_fixed_length( &
  1248       &    check_shape(5)  )  &
  1251     answer_fixed_length = answer
  1252     check_fixed_length = check
  1254     judge = answer_fixed_length == check_fixed_length
  1255     deallocate(answer_fixed_length, check_fixed_length)
  1259     judge_rev = .not. judge
  1260     err_flag = any(judge_rev)
  1262     pos = maxloc(mask_array, judge_rev)
  1288                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
  1290       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
  1292       write(unit=pos_array(3), fmt=
"(i20)") pos(3)
  1294       write(unit=pos_array(4), fmt=
"(i20)") pos(4)
  1296       write(unit=pos_array(5), fmt=
"(i20)") pos(5)
  1300                               &    trim(adjustl(pos_array(1))) // 
',' // &
  1302         &    trim(adjustl(pos_array(2))) // 
',' // &
  1304         &    trim(adjustl(pos_array(3))) // 
',' // &
  1306         &    trim(adjustl(pos_array(4))) // 
',' // &
  1308         &    trim(adjustl(pos_array(5))) // 
')'  1311     deallocate(mask_array, judge, judge_rev)
  1317       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  1319       write(*,*) 
'  check' // trim(pos_str) // 
'  = ', trim(wrong)
  1320       write(*,*) 
'    is NOT EQUAL to'  1321       write(*,*) 
'  answer' // trim(pos_str) // 
' = ', trim(right)
  1325       write(*,*) 
' *** MESSAGE [AssertEQ] *** Checking ' // trim(message) // 
' OK'  1336     character(*), 
intent(in):: message
  1337     character(*), 
intent(in):: answer(:,:,:,:,:,:)
  1338     character(*), 
intent(in):: check(:,:,:,:,:,:)
  1340     character(STRING):: pos_str
  1341     character(STRING):: wrong, right
  1343                         integer:: answer_shape(6), check_shape(6), pos(6)
  1344     logical:: consist_shape(6)
  1345     character(TOKEN):: pos_array(6)
  1346     integer, 
allocatable:: mask_array(:,:,:,:,:,:)
  1347     logical, 
allocatable:: judge(:,:,:,:,:,:)
  1348     logical, 
allocatable:: judge_rev(:,:,:,:,:,:)
  1351                                               character(STRING), 
allocatable:: answer_fixed_length(:,:,:,:,:,:)
  1352     character(STRING), 
allocatable:: check_fixed_length(:,:,:,:,:,:)
  1360     answer_shape = shape(answer)
  1361     check_shape = shape(check)
  1363     consist_shape = answer_shape == check_shape
  1365     if (.not. all(consist_shape)) 
then  1366       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  1368       write(*,*) 
'  shape of check is (', check_shape, 
')'  1369       write(*,*) 
'    is INCORRECT'  1370       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')'  1376     allocate( mask_array( &
  1377                             &    answer_shape(1), &
  1379       &    answer_shape(2), &
  1381       &    answer_shape(3), &
  1383       &    answer_shape(4), &
  1385       &    answer_shape(5), &
  1387       &    answer_shape(6)  )  &
  1391                             &    answer_shape(1), &
  1393       &    answer_shape(2), &
  1395       &    answer_shape(3), &
  1397       &    answer_shape(4), &
  1399       &    answer_shape(5), &
  1401       &    answer_shape(6)  )  &
  1404     allocate( judge_rev( &
  1405                             &    answer_shape(1), &
  1407       &    answer_shape(2), &
  1409       &    answer_shape(3), &
  1411       &    answer_shape(4), &
  1413       &    answer_shape(5), &
  1415       &    answer_shape(6)  )  &
  1419     allocate( answer_fixed_length( &
  1420                               &    answer_shape(1), &
  1422       &    answer_shape(2), &
  1424       &    answer_shape(3), &
  1426       &    answer_shape(4), &
  1428       &    answer_shape(5), &
  1430       &    answer_shape(6)  )  &
  1433     allocate( check_fixed_length( &
  1444       &    check_shape(6)  )  &
  1447     answer_fixed_length = answer
  1448     check_fixed_length = check
  1450     judge = answer_fixed_length == check_fixed_length
  1451     deallocate(answer_fixed_length, check_fixed_length)
  1455     judge_rev = .not. judge
  1456     err_flag = any(judge_rev)
  1458     pos = maxloc(mask_array, judge_rev)
  1488                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
  1490       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
  1492       write(unit=pos_array(3), fmt=
"(i20)") pos(3)
  1494       write(unit=pos_array(4), fmt=
"(i20)") pos(4)
  1496       write(unit=pos_array(5), fmt=
"(i20)") pos(5)
  1498       write(unit=pos_array(6), fmt=
"(i20)") pos(6)
  1502                               &    trim(adjustl(pos_array(1))) // 
',' // &
  1504         &    trim(adjustl(pos_array(2))) // 
',' // &
  1506         &    trim(adjustl(pos_array(3))) // 
',' // &
  1508         &    trim(adjustl(pos_array(4))) // 
',' // &
  1510         &    trim(adjustl(pos_array(5))) // 
',' // &
  1512         &    trim(adjustl(pos_array(6))) // 
')'  1515     deallocate(mask_array, judge, judge_rev)
  1521       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  1523       write(*,*) 
'  check' // trim(pos_str) // 
'  = ', trim(wrong)
  1524       write(*,*) 
'    is NOT EQUAL to'  1525       write(*,*) 
'  answer' // trim(pos_str) // 
' = ', trim(right)
  1529       write(*,*) 
' *** MESSAGE [AssertEQ] *** Checking ' // trim(message) // 
' OK'  1540     character(*), 
intent(in):: message
  1541     character(*), 
intent(in):: answer(:,:,:,:,:,:,:)
  1542     character(*), 
intent(in):: check(:,:,:,:,:,:,:)
  1544     character(STRING):: pos_str
  1545     character(STRING):: wrong, right
  1547                         integer:: answer_shape(7), check_shape(7), pos(7)
  1548     logical:: consist_shape(7)
  1549     character(TOKEN):: pos_array(7)
  1550     integer, 
allocatable:: mask_array(:,:,:,:,:,:,:)
  1551     logical, 
allocatable:: judge(:,:,:,:,:,:,:)
  1552     logical, 
allocatable:: judge_rev(:,:,:,:,:,:,:)
  1555                                               character(STRING), 
allocatable:: answer_fixed_length(:,:,:,:,:,:,:)
  1556     character(STRING), 
allocatable:: check_fixed_length(:,:,:,:,:,:,:)
  1564     answer_shape = shape(answer)
  1565     check_shape = shape(check)
  1567     consist_shape = answer_shape == check_shape
  1569     if (.not. all(consist_shape)) 
then  1570       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  1572       write(*,*) 
'  shape of check is (', check_shape, 
')'  1573       write(*,*) 
'    is INCORRECT'  1574       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')'  1580     allocate( mask_array( &
  1581                             &    answer_shape(1), &
  1583       &    answer_shape(2), &
  1585       &    answer_shape(3), &
  1587       &    answer_shape(4), &
  1589       &    answer_shape(5), &
  1591       &    answer_shape(6), &
  1593       &    answer_shape(7)  )  &
  1597                             &    answer_shape(1), &
  1599       &    answer_shape(2), &
  1601       &    answer_shape(3), &
  1603       &    answer_shape(4), &
  1605       &    answer_shape(5), &
  1607       &    answer_shape(6), &
  1609       &    answer_shape(7)  )  &
  1612     allocate( judge_rev( &
  1613                             &    answer_shape(1), &
  1615       &    answer_shape(2), &
  1617       &    answer_shape(3), &
  1619       &    answer_shape(4), &
  1621       &    answer_shape(5), &
  1623       &    answer_shape(6), &
  1625       &    answer_shape(7)  )  &
  1629     allocate( answer_fixed_length( &
  1630                               &    answer_shape(1), &
  1632       &    answer_shape(2), &
  1634       &    answer_shape(3), &
  1636       &    answer_shape(4), &
  1638       &    answer_shape(5), &
  1640       &    answer_shape(6), &
  1642       &    answer_shape(7)  )  &
  1645     allocate( check_fixed_length( &
  1658       &    check_shape(7)  )  &
  1661     answer_fixed_length = answer
  1662     check_fixed_length = check
  1664     judge = answer_fixed_length == check_fixed_length
  1665     deallocate(answer_fixed_length, check_fixed_length)
  1669     judge_rev = .not. judge
  1670     err_flag = any(judge_rev)
  1672     pos = maxloc(mask_array, judge_rev)
  1706                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
  1708       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
  1710       write(unit=pos_array(3), fmt=
"(i20)") pos(3)
  1712       write(unit=pos_array(4), fmt=
"(i20)") pos(4)
  1714       write(unit=pos_array(5), fmt=
"(i20)") pos(5)
  1716       write(unit=pos_array(6), fmt=
"(i20)") pos(6)
  1718       write(unit=pos_array(7), fmt=
"(i20)") pos(7)
  1722                               &    trim(adjustl(pos_array(1))) // 
',' // &
  1724         &    trim(adjustl(pos_array(2))) // 
',' // &
  1726         &    trim(adjustl(pos_array(3))) // 
',' // &
  1728         &    trim(adjustl(pos_array(4))) // 
',' // &
  1730         &    trim(adjustl(pos_array(5))) // 
',' // &
  1732         &    trim(adjustl(pos_array(6))) // 
',' // &
  1734         &    trim(adjustl(pos_array(7))) // 
')'  1737     deallocate(mask_array, judge, judge_rev)
  1743       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  1745       write(*,*) 
'  check' // trim(pos_str) // 
'  = ', trim(wrong)
  1746       write(*,*) 
'    is NOT EQUAL to'  1747       write(*,*) 
'  answer' // trim(pos_str) // 
' = ', trim(right)
  1751       write(*,*) 
' *** MESSAGE [AssertEQ] *** Checking ' // trim(message) // 
' OK'  1762     character(*), 
intent(in):: message
  1763     integer, 
intent(in):: answer
  1764     integer, 
intent(in):: check
  1766     character(STRING):: pos_str
  1767     integer:: wrong, right
  1777     err_flag = .not. answer == check
  1786       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  1788       write(*,*) 
'  check' // trim(pos_str) // 
'  = ', wrong
  1789       write(*,*) 
'    is NOT EQUAL to'  1790       write(*,*) 
'  answer' // trim(pos_str) // 
' = ', right
  1794       write(*,*) 
' *** MESSAGE [AssertEQ] *** Checking ' // trim(message) // 
' OK'  1805     character(*), 
intent(in):: message
  1806     integer, 
intent(in):: answer(:)
  1807     integer, 
intent(in):: check(:)
  1809     character(STRING):: pos_str
  1810     integer:: wrong, right
  1812                         integer:: answer_shape(1), check_shape(1), pos(1)
  1813     logical:: consist_shape(1)
  1814     character(TOKEN):: pos_array(1)
  1815     integer, 
allocatable:: mask_array(:)
  1816     logical, 
allocatable:: judge(:)
  1817     logical, 
allocatable:: judge_rev(:)
  1826     answer_shape = shape(answer)
  1827     check_shape = shape(check)
  1829     consist_shape = answer_shape == check_shape
  1831     if (.not. all(consist_shape)) 
then  1832       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  1834       write(*,*) 
'  shape of check is (', check_shape, 
')'  1835       write(*,*) 
'    is INCORRECT'  1836       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')'  1842     allocate( mask_array( &
  1844       &    answer_shape(1)  )  &
  1849       &    answer_shape(1)  )  &
  1852     allocate( judge_rev( &
  1854       &    answer_shape(1)  )  &
  1858     judge = answer == check
  1862     judge_rev = .not. judge
  1863     err_flag = any(judge_rev)
  1865     pos = maxloc(mask_array, judge_rev)
  1877                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
  1882         &    trim(adjustl(pos_array(1))) // 
')'  1885     deallocate(mask_array, judge, judge_rev)
  1891       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  1893       write(*,*) 
'  check' // trim(pos_str) // 
'  = ', wrong
  1894       write(*,*) 
'    is NOT EQUAL to'  1895       write(*,*) 
'  answer' // trim(pos_str) // 
' = ', right
  1899       write(*,*) 
' *** MESSAGE [AssertEQ] *** Checking ' // trim(message) // 
' OK'  1910     character(*), 
intent(in):: message
  1911     integer, 
intent(in):: answer(:,:)
  1912     integer, 
intent(in):: check(:,:)
  1914     character(STRING):: pos_str
  1915     integer:: wrong, right
  1917                         integer:: answer_shape(2), check_shape(2), pos(2)
  1918     logical:: consist_shape(2)
  1919     character(TOKEN):: pos_array(2)
  1920     integer, 
allocatable:: mask_array(:,:)
  1921     logical, 
allocatable:: judge(:,:)
  1922     logical, 
allocatable:: judge_rev(:,:)
  1931     answer_shape = shape(answer)
  1932     check_shape = shape(check)
  1934     consist_shape = answer_shape == check_shape
  1936     if (.not. all(consist_shape)) 
then  1937       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  1939       write(*,*) 
'  shape of check is (', check_shape, 
')'  1940       write(*,*) 
'    is INCORRECT'  1941       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')'  1947     allocate( mask_array( &
  1948                             &    answer_shape(1), &
  1950       &    answer_shape(2)  )  &
  1954                             &    answer_shape(1), &
  1956       &    answer_shape(2)  )  &
  1959     allocate( judge_rev( &
  1960                             &    answer_shape(1), &
  1962       &    answer_shape(2)  )  &
  1966     judge = answer == check
  1970     judge_rev = .not. judge
  1971     err_flag = any(judge_rev)
  1973     pos = maxloc(mask_array, judge_rev)
  1987                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
  1989       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
  1993                               &    trim(adjustl(pos_array(1))) // 
',' // &
  1995         &    trim(adjustl(pos_array(2))) // 
')'  1998     deallocate(mask_array, judge, judge_rev)
  2004       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  2006       write(*,*) 
'  check' // trim(pos_str) // 
'  = ', wrong
  2007       write(*,*) 
'    is NOT EQUAL to'  2008       write(*,*) 
'  answer' // trim(pos_str) // 
' = ', right
  2012       write(*,*) 
' *** MESSAGE [AssertEQ] *** Checking ' // trim(message) // 
' OK'  2023     character(*), 
intent(in):: message
  2024     integer, 
intent(in):: answer(:,:,:)
  2025     integer, 
intent(in):: check(:,:,:)
  2027     character(STRING):: pos_str
  2028     integer:: wrong, right
  2030                         integer:: answer_shape(3), check_shape(3), pos(3)
  2031     logical:: consist_shape(3)
  2032     character(TOKEN):: pos_array(3)
  2033     integer, 
allocatable:: mask_array(:,:,:)
  2034     logical, 
allocatable:: judge(:,:,:)
  2035     logical, 
allocatable:: judge_rev(:,:,:)
  2044     answer_shape = shape(answer)
  2045     check_shape = shape(check)
  2047     consist_shape = answer_shape == check_shape
  2049     if (.not. all(consist_shape)) 
then  2050       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  2052       write(*,*) 
'  shape of check is (', check_shape, 
')'  2053       write(*,*) 
'    is INCORRECT'  2054       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')'  2060     allocate( mask_array( &
  2061                             &    answer_shape(1), &
  2063       &    answer_shape(2), &
  2065       &    answer_shape(3)  )  &
  2069                             &    answer_shape(1), &
  2071       &    answer_shape(2), &
  2073       &    answer_shape(3)  )  &
  2076     allocate( judge_rev( &
  2077                             &    answer_shape(1), &
  2079       &    answer_shape(2), &
  2081       &    answer_shape(3)  )  &
  2085     judge = answer == check
  2089     judge_rev = .not. judge
  2090     err_flag = any(judge_rev)
  2092     pos = maxloc(mask_array, judge_rev)
  2110                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
  2112       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
  2114       write(unit=pos_array(3), fmt=
"(i20)") pos(3)
  2118                               &    trim(adjustl(pos_array(1))) // 
',' // &
  2120         &    trim(adjustl(pos_array(2))) // 
',' // &
  2122         &    trim(adjustl(pos_array(3))) // 
')'  2125     deallocate(mask_array, judge, judge_rev)
  2131       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  2133       write(*,*) 
'  check' // trim(pos_str) // 
'  = ', wrong
  2134       write(*,*) 
'    is NOT EQUAL to'  2135       write(*,*) 
'  answer' // trim(pos_str) // 
' = ', right
  2139       write(*,*) 
' *** MESSAGE [AssertEQ] *** Checking ' // trim(message) // 
' OK'  2150     character(*), 
intent(in):: message
  2151     integer, 
intent(in):: answer(:,:,:,:)
  2152     integer, 
intent(in):: check(:,:,:,:)
  2154     character(STRING):: pos_str
  2155     integer:: wrong, right
  2157                         integer:: answer_shape(4), check_shape(4), pos(4)
  2158     logical:: consist_shape(4)
  2159     character(TOKEN):: pos_array(4)
  2160     integer, 
allocatable:: mask_array(:,:,:,:)
  2161     logical, 
allocatable:: judge(:,:,:,:)
  2162     logical, 
allocatable:: judge_rev(:,:,:,:)
  2171     answer_shape = shape(answer)
  2172     check_shape = shape(check)
  2174     consist_shape = answer_shape == check_shape
  2176     if (.not. all(consist_shape)) 
then  2177       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  2179       write(*,*) 
'  shape of check is (', check_shape, 
')'  2180       write(*,*) 
'    is INCORRECT'  2181       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')'  2187     allocate( mask_array( &
  2188                             &    answer_shape(1), &
  2190       &    answer_shape(2), &
  2192       &    answer_shape(3), &
  2194       &    answer_shape(4)  )  &
  2198                             &    answer_shape(1), &
  2200       &    answer_shape(2), &
  2202       &    answer_shape(3), &
  2204       &    answer_shape(4)  )  &
  2207     allocate( judge_rev( &
  2208                             &    answer_shape(1), &
  2210       &    answer_shape(2), &
  2212       &    answer_shape(3), &
  2214       &    answer_shape(4)  )  &
  2218     judge = answer == check
  2222     judge_rev = .not. judge
  2223     err_flag = any(judge_rev)
  2225     pos = maxloc(mask_array, judge_rev)
  2247                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
  2249       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
  2251       write(unit=pos_array(3), fmt=
"(i20)") pos(3)
  2253       write(unit=pos_array(4), fmt=
"(i20)") pos(4)
  2257                               &    trim(adjustl(pos_array(1))) // 
',' // &
  2259         &    trim(adjustl(pos_array(2))) // 
',' // &
  2261         &    trim(adjustl(pos_array(3))) // 
',' // &
  2263         &    trim(adjustl(pos_array(4))) // 
')'  2266     deallocate(mask_array, judge, judge_rev)
  2272       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  2274       write(*,*) 
'  check' // trim(pos_str) // 
'  = ', wrong
  2275       write(*,*) 
'    is NOT EQUAL to'  2276       write(*,*) 
'  answer' // trim(pos_str) // 
' = ', right
  2280       write(*,*) 
' *** MESSAGE [AssertEQ] *** Checking ' // trim(message) // 
' OK'  2291     character(*), 
intent(in):: message
  2292     integer, 
intent(in):: answer(:,:,:,:,:)
  2293     integer, 
intent(in):: check(:,:,:,:,:)
  2295     character(STRING):: pos_str
  2296     integer:: wrong, right
  2298                         integer:: answer_shape(5), check_shape(5), pos(5)
  2299     logical:: consist_shape(5)
  2300     character(TOKEN):: pos_array(5)
  2301     integer, 
allocatable:: mask_array(:,:,:,:,:)
  2302     logical, 
allocatable:: judge(:,:,:,:,:)
  2303     logical, 
allocatable:: judge_rev(:,:,:,:,:)
  2312     answer_shape = shape(answer)
  2313     check_shape = shape(check)
  2315     consist_shape = answer_shape == check_shape
  2317     if (.not. all(consist_shape)) 
then  2318       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  2320       write(*,*) 
'  shape of check is (', check_shape, 
')'  2321       write(*,*) 
'    is INCORRECT'  2322       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')'  2328     allocate( mask_array( &
  2329                             &    answer_shape(1), &
  2331       &    answer_shape(2), &
  2333       &    answer_shape(3), &
  2335       &    answer_shape(4), &
  2337       &    answer_shape(5)  )  &
  2341                             &    answer_shape(1), &
  2343       &    answer_shape(2), &
  2345       &    answer_shape(3), &
  2347       &    answer_shape(4), &
  2349       &    answer_shape(5)  )  &
  2352     allocate( judge_rev( &
  2353                             &    answer_shape(1), &
  2355       &    answer_shape(2), &
  2357       &    answer_shape(3), &
  2359       &    answer_shape(4), &
  2361       &    answer_shape(5)  )  &
  2365     judge = answer == check
  2369     judge_rev = .not. judge
  2370     err_flag = any(judge_rev)
  2372     pos = maxloc(mask_array, judge_rev)
  2398                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
  2400       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
  2402       write(unit=pos_array(3), fmt=
"(i20)") pos(3)
  2404       write(unit=pos_array(4), fmt=
"(i20)") pos(4)
  2406       write(unit=pos_array(5), fmt=
"(i20)") pos(5)
  2410                               &    trim(adjustl(pos_array(1))) // 
',' // &
  2412         &    trim(adjustl(pos_array(2))) // 
',' // &
  2414         &    trim(adjustl(pos_array(3))) // 
',' // &
  2416         &    trim(adjustl(pos_array(4))) // 
',' // &
  2418         &    trim(adjustl(pos_array(5))) // 
')'  2421     deallocate(mask_array, judge, judge_rev)
  2427       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  2429       write(*,*) 
'  check' // trim(pos_str) // 
'  = ', wrong
  2430       write(*,*) 
'    is NOT EQUAL to'  2431       write(*,*) 
'  answer' // trim(pos_str) // 
' = ', right
  2435       write(*,*) 
' *** MESSAGE [AssertEQ] *** Checking ' // trim(message) // 
' OK'  2446     character(*), 
intent(in):: message
  2447     integer, 
intent(in):: answer(:,:,:,:,:,:)
  2448     integer, 
intent(in):: check(:,:,:,:,:,:)
  2450     character(STRING):: pos_str
  2451     integer:: wrong, right
  2453                         integer:: answer_shape(6), check_shape(6), pos(6)
  2454     logical:: consist_shape(6)
  2455     character(TOKEN):: pos_array(6)
  2456     integer, 
allocatable:: mask_array(:,:,:,:,:,:)
  2457     logical, 
allocatable:: judge(:,:,:,:,:,:)
  2458     logical, 
allocatable:: judge_rev(:,:,:,:,:,:)
  2467     answer_shape = shape(answer)
  2468     check_shape = shape(check)
  2470     consist_shape = answer_shape == check_shape
  2472     if (.not. all(consist_shape)) 
then  2473       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  2475       write(*,*) 
'  shape of check is (', check_shape, 
')'  2476       write(*,*) 
'    is INCORRECT'  2477       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')'  2483     allocate( mask_array( &
  2484                             &    answer_shape(1), &
  2486       &    answer_shape(2), &
  2488       &    answer_shape(3), &
  2490       &    answer_shape(4), &
  2492       &    answer_shape(5), &
  2494       &    answer_shape(6)  )  &
  2498                             &    answer_shape(1), &
  2500       &    answer_shape(2), &
  2502       &    answer_shape(3), &
  2504       &    answer_shape(4), &
  2506       &    answer_shape(5), &
  2508       &    answer_shape(6)  )  &
  2511     allocate( judge_rev( &
  2512                             &    answer_shape(1), &
  2514       &    answer_shape(2), &
  2516       &    answer_shape(3), &
  2518       &    answer_shape(4), &
  2520       &    answer_shape(5), &
  2522       &    answer_shape(6)  )  &
  2526     judge = answer == check
  2530     judge_rev = .not. judge
  2531     err_flag = any(judge_rev)
  2533     pos = maxloc(mask_array, judge_rev)
  2563                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
  2565       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
  2567       write(unit=pos_array(3), fmt=
"(i20)") pos(3)
  2569       write(unit=pos_array(4), fmt=
"(i20)") pos(4)
  2571       write(unit=pos_array(5), fmt=
"(i20)") pos(5)
  2573       write(unit=pos_array(6), fmt=
"(i20)") pos(6)
  2577                               &    trim(adjustl(pos_array(1))) // 
',' // &
  2579         &    trim(adjustl(pos_array(2))) // 
',' // &
  2581         &    trim(adjustl(pos_array(3))) // 
',' // &
  2583         &    trim(adjustl(pos_array(4))) // 
',' // &
  2585         &    trim(adjustl(pos_array(5))) // 
',' // &
  2587         &    trim(adjustl(pos_array(6))) // 
')'  2590     deallocate(mask_array, judge, judge_rev)
  2596       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  2598       write(*,*) 
'  check' // trim(pos_str) // 
'  = ', wrong
  2599       write(*,*) 
'    is NOT EQUAL to'  2600       write(*,*) 
'  answer' // trim(pos_str) // 
' = ', right
  2604       write(*,*) 
' *** MESSAGE [AssertEQ] *** Checking ' // trim(message) // 
' OK'  2615     character(*), 
intent(in):: message
  2616     integer, 
intent(in):: answer(:,:,:,:,:,:,:)
  2617     integer, 
intent(in):: check(:,:,:,:,:,:,:)
  2619     character(STRING):: pos_str
  2620     integer:: wrong, right
  2622                         integer:: answer_shape(7), check_shape(7), pos(7)
  2623     logical:: consist_shape(7)
  2624     character(TOKEN):: pos_array(7)
  2625     integer, 
allocatable:: mask_array(:,:,:,:,:,:,:)
  2626     logical, 
allocatable:: judge(:,:,:,:,:,:,:)
  2627     logical, 
allocatable:: judge_rev(:,:,:,:,:,:,:)
  2636     answer_shape = shape(answer)
  2637     check_shape = shape(check)
  2639     consist_shape = answer_shape == check_shape
  2641     if (.not. all(consist_shape)) 
then  2642       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  2644       write(*,*) 
'  shape of check is (', check_shape, 
')'  2645       write(*,*) 
'    is INCORRECT'  2646       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')'  2652     allocate( mask_array( &
  2653                             &    answer_shape(1), &
  2655       &    answer_shape(2), &
  2657       &    answer_shape(3), &
  2659       &    answer_shape(4), &
  2661       &    answer_shape(5), &
  2663       &    answer_shape(6), &
  2665       &    answer_shape(7)  )  &
  2669                             &    answer_shape(1), &
  2671       &    answer_shape(2), &
  2673       &    answer_shape(3), &
  2675       &    answer_shape(4), &
  2677       &    answer_shape(5), &
  2679       &    answer_shape(6), &
  2681       &    answer_shape(7)  )  &
  2684     allocate( judge_rev( &
  2685                             &    answer_shape(1), &
  2687       &    answer_shape(2), &
  2689       &    answer_shape(3), &
  2691       &    answer_shape(4), &
  2693       &    answer_shape(5), &
  2695       &    answer_shape(6), &
  2697       &    answer_shape(7)  )  &
  2701     judge = answer == check
  2705     judge_rev = .not. judge
  2706     err_flag = any(judge_rev)
  2708     pos = maxloc(mask_array, judge_rev)
  2742                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
  2744       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
  2746       write(unit=pos_array(3), fmt=
"(i20)") pos(3)
  2748       write(unit=pos_array(4), fmt=
"(i20)") pos(4)
  2750       write(unit=pos_array(5), fmt=
"(i20)") pos(5)
  2752       write(unit=pos_array(6), fmt=
"(i20)") pos(6)
  2754       write(unit=pos_array(7), fmt=
"(i20)") pos(7)
  2758                               &    trim(adjustl(pos_array(1))) // 
',' // &
  2760         &    trim(adjustl(pos_array(2))) // 
',' // &
  2762         &    trim(adjustl(pos_array(3))) // 
',' // &
  2764         &    trim(adjustl(pos_array(4))) // 
',' // &
  2766         &    trim(adjustl(pos_array(5))) // 
',' // &
  2768         &    trim(adjustl(pos_array(6))) // 
',' // &
  2770         &    trim(adjustl(pos_array(7))) // 
')'  2773     deallocate(mask_array, judge, judge_rev)
  2779       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  2781       write(*,*) 
'  check' // trim(pos_str) // 
'  = ', wrong
  2782       write(*,*) 
'    is NOT EQUAL to'  2783       write(*,*) 
'  answer' // trim(pos_str) // 
' = ', right
  2787       write(*,*) 
' *** MESSAGE [AssertEQ] *** Checking ' // trim(message) // 
' OK'  2798     character(*), 
intent(in):: message
  2799     real, 
intent(in):: answer
  2800     real, 
intent(in):: check
  2802     character(STRING):: pos_str
  2813     err_flag = .not. answer == check
  2822       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  2824       write(*,*) 
'  check' // trim(pos_str) // 
'  = ', wrong
  2825       write(*,*) 
'    is NOT EQUAL to'  2826       write(*,*) 
'  answer' // trim(pos_str) // 
' = ', right
  2830       write(*,*) 
' *** MESSAGE [AssertEQ] *** Checking ' // trim(message) // 
' OK'  2841     character(*), 
intent(in):: message
  2842     real, 
intent(in):: answer(:)
  2843     real, 
intent(in):: check(:)
  2845     character(STRING):: pos_str
  2848                         integer:: answer_shape(1), check_shape(1), pos(1)
  2849     logical:: consist_shape(1)
  2850     character(TOKEN):: pos_array(1)
  2851     integer, 
allocatable:: mask_array(:)
  2852     logical, 
allocatable:: judge(:)
  2853     logical, 
allocatable:: judge_rev(:)
  2862     answer_shape = shape(answer)
  2863     check_shape = shape(check)
  2865     consist_shape = answer_shape == check_shape
  2867     if (.not. all(consist_shape)) 
then  2868       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  2870       write(*,*) 
'  shape of check is (', check_shape, 
')'  2871       write(*,*) 
'    is INCORRECT'  2872       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')'  2878     allocate( mask_array( &
  2880       &    answer_shape(1)  )  &
  2885       &    answer_shape(1)  )  &
  2888     allocate( judge_rev( &
  2890       &    answer_shape(1)  )  &
  2894     judge = answer == check
  2898     judge_rev = .not. judge
  2899     err_flag = any(judge_rev)
  2901     pos = maxloc(mask_array, judge_rev)
  2913                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
  2918         &    trim(adjustl(pos_array(1))) // 
')'  2921     deallocate(mask_array, judge, judge_rev)
  2927       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  2929       write(*,*) 
'  check' // trim(pos_str) // 
'  = ', wrong
  2930       write(*,*) 
'    is NOT EQUAL to'  2931       write(*,*) 
'  answer' // trim(pos_str) // 
' = ', right
  2935       write(*,*) 
' *** MESSAGE [AssertEQ] *** Checking ' // trim(message) // 
' OK'  2946     character(*), 
intent(in):: message
  2947     real, 
intent(in):: answer(:,:)
  2948     real, 
intent(in):: check(:,:)
  2950     character(STRING):: pos_str
  2953                         integer:: answer_shape(2), check_shape(2), pos(2)
  2954     logical:: consist_shape(2)
  2955     character(TOKEN):: pos_array(2)
  2956     integer, 
allocatable:: mask_array(:,:)
  2957     logical, 
allocatable:: judge(:,:)
  2958     logical, 
allocatable:: judge_rev(:,:)
  2967     answer_shape = shape(answer)
  2968     check_shape = shape(check)
  2970     consist_shape = answer_shape == check_shape
  2972     if (.not. all(consist_shape)) 
then  2973       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  2975       write(*,*) 
'  shape of check is (', check_shape, 
')'  2976       write(*,*) 
'    is INCORRECT'  2977       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')'  2983     allocate( mask_array( &
  2984                             &    answer_shape(1), &
  2986       &    answer_shape(2)  )  &
  2990                             &    answer_shape(1), &
  2992       &    answer_shape(2)  )  &
  2995     allocate( judge_rev( &
  2996                             &    answer_shape(1), &
  2998       &    answer_shape(2)  )  &
  3002     judge = answer == check
  3006     judge_rev = .not. judge
  3007     err_flag = any(judge_rev)
  3009     pos = maxloc(mask_array, judge_rev)
  3023                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
  3025       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
  3029                               &    trim(adjustl(pos_array(1))) // 
',' // &
  3031         &    trim(adjustl(pos_array(2))) // 
')'  3034     deallocate(mask_array, judge, judge_rev)
  3040       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  3042       write(*,*) 
'  check' // trim(pos_str) // 
'  = ', wrong
  3043       write(*,*) 
'    is NOT EQUAL to'  3044       write(*,*) 
'  answer' // trim(pos_str) // 
' = ', right
  3048       write(*,*) 
' *** MESSAGE [AssertEQ] *** Checking ' // trim(message) // 
' OK'  3059     character(*), 
intent(in):: message
  3060     real, 
intent(in):: answer(:,:,:)
  3061     real, 
intent(in):: check(:,:,:)
  3063     character(STRING):: pos_str
  3066                         integer:: answer_shape(3), check_shape(3), pos(3)
  3067     logical:: consist_shape(3)
  3068     character(TOKEN):: pos_array(3)
  3069     integer, 
allocatable:: mask_array(:,:,:)
  3070     logical, 
allocatable:: judge(:,:,:)
  3071     logical, 
allocatable:: judge_rev(:,:,:)
  3080     answer_shape = shape(answer)
  3081     check_shape = shape(check)
  3083     consist_shape = answer_shape == check_shape
  3085     if (.not. all(consist_shape)) 
then  3086       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  3088       write(*,*) 
'  shape of check is (', check_shape, 
')'  3089       write(*,*) 
'    is INCORRECT'  3090       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')'  3096     allocate( mask_array( &
  3097                             &    answer_shape(1), &
  3099       &    answer_shape(2), &
  3101       &    answer_shape(3)  )  &
  3105                             &    answer_shape(1), &
  3107       &    answer_shape(2), &
  3109       &    answer_shape(3)  )  &
  3112     allocate( judge_rev( &
  3113                             &    answer_shape(1), &
  3115       &    answer_shape(2), &
  3117       &    answer_shape(3)  )  &
  3121     judge = answer == check
  3125     judge_rev = .not. judge
  3126     err_flag = any(judge_rev)
  3128     pos = maxloc(mask_array, judge_rev)
  3146                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
  3148       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
  3150       write(unit=pos_array(3), fmt=
"(i20)") pos(3)
  3154                               &    trim(adjustl(pos_array(1))) // 
',' // &
  3156         &    trim(adjustl(pos_array(2))) // 
',' // &
  3158         &    trim(adjustl(pos_array(3))) // 
')'  3161     deallocate(mask_array, judge, judge_rev)
  3167       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  3169       write(*,*) 
'  check' // trim(pos_str) // 
'  = ', wrong
  3170       write(*,*) 
'    is NOT EQUAL to'  3171       write(*,*) 
'  answer' // trim(pos_str) // 
' = ', right
  3175       write(*,*) 
' *** MESSAGE [AssertEQ] *** Checking ' // trim(message) // 
' OK'  3186     character(*), 
intent(in):: message
  3187     real, 
intent(in):: answer(:,:,:,:)
  3188     real, 
intent(in):: check(:,:,:,:)
  3190     character(STRING):: pos_str
  3193                         integer:: answer_shape(4), check_shape(4), pos(4)
  3194     logical:: consist_shape(4)
  3195     character(TOKEN):: pos_array(4)
  3196     integer, 
allocatable:: mask_array(:,:,:,:)
  3197     logical, 
allocatable:: judge(:,:,:,:)
  3198     logical, 
allocatable:: judge_rev(:,:,:,:)
  3207     answer_shape = shape(answer)
  3208     check_shape = shape(check)
  3210     consist_shape = answer_shape == check_shape
  3212     if (.not. all(consist_shape)) 
then  3213       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  3215       write(*,*) 
'  shape of check is (', check_shape, 
')'  3216       write(*,*) 
'    is INCORRECT'  3217       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')'  3223     allocate( mask_array( &
  3224                             &    answer_shape(1), &
  3226       &    answer_shape(2), &
  3228       &    answer_shape(3), &
  3230       &    answer_shape(4)  )  &
  3234                             &    answer_shape(1), &
  3236       &    answer_shape(2), &
  3238       &    answer_shape(3), &
  3240       &    answer_shape(4)  )  &
  3243     allocate( judge_rev( &
  3244                             &    answer_shape(1), &
  3246       &    answer_shape(2), &
  3248       &    answer_shape(3), &
  3250       &    answer_shape(4)  )  &
  3254     judge = answer == check
  3258     judge_rev = .not. judge
  3259     err_flag = any(judge_rev)
  3261     pos = maxloc(mask_array, judge_rev)
  3283                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
  3285       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
  3287       write(unit=pos_array(3), fmt=
"(i20)") pos(3)
  3289       write(unit=pos_array(4), fmt=
"(i20)") pos(4)
  3293                               &    trim(adjustl(pos_array(1))) // 
',' // &
  3295         &    trim(adjustl(pos_array(2))) // 
',' // &
  3297         &    trim(adjustl(pos_array(3))) // 
',' // &
  3299         &    trim(adjustl(pos_array(4))) // 
')'  3302     deallocate(mask_array, judge, judge_rev)
  3308       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  3310       write(*,*) 
'  check' // trim(pos_str) // 
'  = ', wrong
  3311       write(*,*) 
'    is NOT EQUAL to'  3312       write(*,*) 
'  answer' // trim(pos_str) // 
' = ', right
  3316       write(*,*) 
' *** MESSAGE [AssertEQ] *** Checking ' // trim(message) // 
' OK'  3327     character(*), 
intent(in):: message
  3328     real, 
intent(in):: answer(:,:,:,:,:)
  3329     real, 
intent(in):: check(:,:,:,:,:)
  3331     character(STRING):: pos_str
  3334                         integer:: answer_shape(5), check_shape(5), pos(5)
  3335     logical:: consist_shape(5)
  3336     character(TOKEN):: pos_array(5)
  3337     integer, 
allocatable:: mask_array(:,:,:,:,:)
  3338     logical, 
allocatable:: judge(:,:,:,:,:)
  3339     logical, 
allocatable:: judge_rev(:,:,:,:,:)
  3348     answer_shape = shape(answer)
  3349     check_shape = shape(check)
  3351     consist_shape = answer_shape == check_shape
  3353     if (.not. all(consist_shape)) 
then  3354       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  3356       write(*,*) 
'  shape of check is (', check_shape, 
')'  3357       write(*,*) 
'    is INCORRECT'  3358       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')'  3364     allocate( mask_array( &
  3365                             &    answer_shape(1), &
  3367       &    answer_shape(2), &
  3369       &    answer_shape(3), &
  3371       &    answer_shape(4), &
  3373       &    answer_shape(5)  )  &
  3377                             &    answer_shape(1), &
  3379       &    answer_shape(2), &
  3381       &    answer_shape(3), &
  3383       &    answer_shape(4), &
  3385       &    answer_shape(5)  )  &
  3388     allocate( judge_rev( &
  3389                             &    answer_shape(1), &
  3391       &    answer_shape(2), &
  3393       &    answer_shape(3), &
  3395       &    answer_shape(4), &
  3397       &    answer_shape(5)  )  &
  3401     judge = answer == check
  3405     judge_rev = .not. judge
  3406     err_flag = any(judge_rev)
  3408     pos = maxloc(mask_array, judge_rev)
  3434                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
  3436       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
  3438       write(unit=pos_array(3), fmt=
"(i20)") pos(3)
  3440       write(unit=pos_array(4), fmt=
"(i20)") pos(4)
  3442       write(unit=pos_array(5), fmt=
"(i20)") pos(5)
  3446                               &    trim(adjustl(pos_array(1))) // 
',' // &
  3448         &    trim(adjustl(pos_array(2))) // 
',' // &
  3450         &    trim(adjustl(pos_array(3))) // 
',' // &
  3452         &    trim(adjustl(pos_array(4))) // 
',' // &
  3454         &    trim(adjustl(pos_array(5))) // 
')'  3457     deallocate(mask_array, judge, judge_rev)
  3463       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  3465       write(*,*) 
'  check' // trim(pos_str) // 
'  = ', wrong
  3466       write(*,*) 
'    is NOT EQUAL to'  3467       write(*,*) 
'  answer' // trim(pos_str) // 
' = ', right
  3471       write(*,*) 
' *** MESSAGE [AssertEQ] *** Checking ' // trim(message) // 
' OK'  3482     character(*), 
intent(in):: message
  3483     real, 
intent(in):: answer(:,:,:,:,:,:)
  3484     real, 
intent(in):: check(:,:,:,:,:,:)
  3486     character(STRING):: pos_str
  3489                         integer:: answer_shape(6), check_shape(6), pos(6)
  3490     logical:: consist_shape(6)
  3491     character(TOKEN):: pos_array(6)
  3492     integer, 
allocatable:: mask_array(:,:,:,:,:,:)
  3493     logical, 
allocatable:: judge(:,:,:,:,:,:)
  3494     logical, 
allocatable:: judge_rev(:,:,:,:,:,:)
  3503     answer_shape = shape(answer)
  3504     check_shape = shape(check)
  3506     consist_shape = answer_shape == check_shape
  3508     if (.not. all(consist_shape)) 
then  3509       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  3511       write(*,*) 
'  shape of check is (', check_shape, 
')'  3512       write(*,*) 
'    is INCORRECT'  3513       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')'  3519     allocate( mask_array( &
  3520                             &    answer_shape(1), &
  3522       &    answer_shape(2), &
  3524       &    answer_shape(3), &
  3526       &    answer_shape(4), &
  3528       &    answer_shape(5), &
  3530       &    answer_shape(6)  )  &
  3534                             &    answer_shape(1), &
  3536       &    answer_shape(2), &
  3538       &    answer_shape(3), &
  3540       &    answer_shape(4), &
  3542       &    answer_shape(5), &
  3544       &    answer_shape(6)  )  &
  3547     allocate( judge_rev( &
  3548                             &    answer_shape(1), &
  3550       &    answer_shape(2), &
  3552       &    answer_shape(3), &
  3554       &    answer_shape(4), &
  3556       &    answer_shape(5), &
  3558       &    answer_shape(6)  )  &
  3562     judge = answer == check
  3566     judge_rev = .not. judge
  3567     err_flag = any(judge_rev)
  3569     pos = maxloc(mask_array, judge_rev)
  3599                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
  3601       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
  3603       write(unit=pos_array(3), fmt=
"(i20)") pos(3)
  3605       write(unit=pos_array(4), fmt=
"(i20)") pos(4)
  3607       write(unit=pos_array(5), fmt=
"(i20)") pos(5)
  3609       write(unit=pos_array(6), fmt=
"(i20)") pos(6)
  3613                               &    trim(adjustl(pos_array(1))) // 
',' // &
  3615         &    trim(adjustl(pos_array(2))) // 
',' // &
  3617         &    trim(adjustl(pos_array(3))) // 
',' // &
  3619         &    trim(adjustl(pos_array(4))) // 
',' // &
  3621         &    trim(adjustl(pos_array(5))) // 
',' // &
  3623         &    trim(adjustl(pos_array(6))) // 
')'  3626     deallocate(mask_array, judge, judge_rev)
  3632       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  3634       write(*,*) 
'  check' // trim(pos_str) // 
'  = ', wrong
  3635       write(*,*) 
'    is NOT EQUAL to'  3636       write(*,*) 
'  answer' // trim(pos_str) // 
' = ', right
  3640       write(*,*) 
' *** MESSAGE [AssertEQ] *** Checking ' // trim(message) // 
' OK'  3651     character(*), 
intent(in):: message
  3652     real, 
intent(in):: answer(:,:,:,:,:,:,:)
  3653     real, 
intent(in):: check(:,:,:,:,:,:,:)
  3655     character(STRING):: pos_str
  3658                         integer:: answer_shape(7), check_shape(7), pos(7)
  3659     logical:: consist_shape(7)
  3660     character(TOKEN):: pos_array(7)
  3661     integer, 
allocatable:: mask_array(:,:,:,:,:,:,:)
  3662     logical, 
allocatable:: judge(:,:,:,:,:,:,:)
  3663     logical, 
allocatable:: judge_rev(:,:,:,:,:,:,:)
  3672     answer_shape = shape(answer)
  3673     check_shape = shape(check)
  3675     consist_shape = answer_shape == check_shape
  3677     if (.not. all(consist_shape)) 
then  3678       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  3680       write(*,*) 
'  shape of check is (', check_shape, 
')'  3681       write(*,*) 
'    is INCORRECT'  3682       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')'  3688     allocate( mask_array( &
  3689                             &    answer_shape(1), &
  3691       &    answer_shape(2), &
  3693       &    answer_shape(3), &
  3695       &    answer_shape(4), &
  3697       &    answer_shape(5), &
  3699       &    answer_shape(6), &
  3701       &    answer_shape(7)  )  &
  3705                             &    answer_shape(1), &
  3707       &    answer_shape(2), &
  3709       &    answer_shape(3), &
  3711       &    answer_shape(4), &
  3713       &    answer_shape(5), &
  3715       &    answer_shape(6), &
  3717       &    answer_shape(7)  )  &
  3720     allocate( judge_rev( &
  3721                             &    answer_shape(1), &
  3723       &    answer_shape(2), &
  3725       &    answer_shape(3), &
  3727       &    answer_shape(4), &
  3729       &    answer_shape(5), &
  3731       &    answer_shape(6), &
  3733       &    answer_shape(7)  )  &
  3737     judge = answer == check
  3741     judge_rev = .not. judge
  3742     err_flag = any(judge_rev)
  3744     pos = maxloc(mask_array, judge_rev)
  3778                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
  3780       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
  3782       write(unit=pos_array(3), fmt=
"(i20)") pos(3)
  3784       write(unit=pos_array(4), fmt=
"(i20)") pos(4)
  3786       write(unit=pos_array(5), fmt=
"(i20)") pos(5)
  3788       write(unit=pos_array(6), fmt=
"(i20)") pos(6)
  3790       write(unit=pos_array(7), fmt=
"(i20)") pos(7)
  3794                               &    trim(adjustl(pos_array(1))) // 
',' // &
  3796         &    trim(adjustl(pos_array(2))) // 
',' // &
  3798         &    trim(adjustl(pos_array(3))) // 
',' // &
  3800         &    trim(adjustl(pos_array(4))) // 
',' // &
  3802         &    trim(adjustl(pos_array(5))) // 
',' // &
  3804         &    trim(adjustl(pos_array(6))) // 
',' // &
  3806         &    trim(adjustl(pos_array(7))) // 
')'  3809     deallocate(mask_array, judge, judge_rev)
  3815       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  3817       write(*,*) 
'  check' // trim(pos_str) // 
'  = ', wrong
  3818       write(*,*) 
'    is NOT EQUAL to'  3819       write(*,*) 
'  answer' // trim(pos_str) // 
' = ', right
  3823       write(*,*) 
' *** MESSAGE [AssertEQ] *** Checking ' // trim(message) // 
' OK'  3834     character(*), 
intent(in):: message
  3835     real(DP), 
intent(in):: answer
  3836     real(DP), 
intent(in):: check
  3838     character(STRING):: pos_str
  3839     real(DP):: wrong, right
  3849     err_flag = .not. answer == check
  3858       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  3860       write(*,*) 
'  check' // trim(pos_str) // 
'  = ', wrong
  3861       write(*,*) 
'    is NOT EQUAL to'  3862       write(*,*) 
'  answer' // trim(pos_str) // 
' = ', right
  3866       write(*,*) 
' *** MESSAGE [AssertEQ] *** Checking ' // trim(message) // 
' OK'  3877     character(*), 
intent(in):: message
  3878     real(DP), 
intent(in):: answer(:)
  3879     real(DP), 
intent(in):: check(:)
  3881     character(STRING):: pos_str
  3882     real(DP):: wrong, right
  3884                         integer:: answer_shape(1), check_shape(1), pos(1)
  3885     logical:: consist_shape(1)
  3886     character(TOKEN):: pos_array(1)
  3887     integer, 
allocatable:: mask_array(:)
  3888     logical, 
allocatable:: judge(:)
  3889     logical, 
allocatable:: judge_rev(:)
  3898     answer_shape = shape(answer)
  3899     check_shape = shape(check)
  3901     consist_shape = answer_shape == check_shape
  3903     if (.not. all(consist_shape)) 
then  3904       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  3906       write(*,*) 
'  shape of check is (', check_shape, 
')'  3907       write(*,*) 
'    is INCORRECT'  3908       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')'  3914     allocate( mask_array( &
  3916       &    answer_shape(1)  )  &
  3921       &    answer_shape(1)  )  &
  3924     allocate( judge_rev( &
  3926       &    answer_shape(1)  )  &
  3930     judge = answer == check
  3934     judge_rev = .not. judge
  3935     err_flag = any(judge_rev)
  3937     pos = maxloc(mask_array, judge_rev)
  3949                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
  3954         &    trim(adjustl(pos_array(1))) // 
')'  3957     deallocate(mask_array, judge, judge_rev)
  3963       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  3965       write(*,*) 
'  check' // trim(pos_str) // 
'  = ', wrong
  3966       write(*,*) 
'    is NOT EQUAL to'  3967       write(*,*) 
'  answer' // trim(pos_str) // 
' = ', right
  3971       write(*,*) 
' *** MESSAGE [AssertEQ] *** Checking ' // trim(message) // 
' OK'  3982     character(*), 
intent(in):: message
  3983     real(DP), 
intent(in):: answer(:,:)
  3984     real(DP), 
intent(in):: check(:,:)
  3986     character(STRING):: pos_str
  3987     real(DP):: wrong, right
  3989                         integer:: answer_shape(2), check_shape(2), pos(2)
  3990     logical:: consist_shape(2)
  3991     character(TOKEN):: pos_array(2)
  3992     integer, 
allocatable:: mask_array(:,:)
  3993     logical, 
allocatable:: judge(:,:)
  3994     logical, 
allocatable:: judge_rev(:,:)
  4003     answer_shape = shape(answer)
  4004     check_shape = shape(check)
  4006     consist_shape = answer_shape == check_shape
  4008     if (.not. all(consist_shape)) 
then  4009       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  4011       write(*,*) 
'  shape of check is (', check_shape, 
')'  4012       write(*,*) 
'    is INCORRECT'  4013       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')'  4019     allocate( mask_array( &
  4020                             &    answer_shape(1), &
  4022       &    answer_shape(2)  )  &
  4026                             &    answer_shape(1), &
  4028       &    answer_shape(2)  )  &
  4031     allocate( judge_rev( &
  4032                             &    answer_shape(1), &
  4034       &    answer_shape(2)  )  &
  4038     judge = answer == check
  4042     judge_rev = .not. judge
  4043     err_flag = any(judge_rev)
  4045     pos = maxloc(mask_array, judge_rev)
  4059                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
  4061       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
  4065                               &    trim(adjustl(pos_array(1))) // 
',' // &
  4067         &    trim(adjustl(pos_array(2))) // 
')'  4070     deallocate(mask_array, judge, judge_rev)
  4076       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  4078       write(*,*) 
'  check' // trim(pos_str) // 
'  = ', wrong
  4079       write(*,*) 
'    is NOT EQUAL to'  4080       write(*,*) 
'  answer' // trim(pos_str) // 
' = ', right
  4084       write(*,*) 
' *** MESSAGE [AssertEQ] *** Checking ' // trim(message) // 
' OK'  4095     character(*), 
intent(in):: message
  4096     real(DP), 
intent(in):: answer(:,:,:)
  4097     real(DP), 
intent(in):: check(:,:,:)
  4099     character(STRING):: pos_str
  4100     real(DP):: wrong, right
  4102                         integer:: answer_shape(3), check_shape(3), pos(3)
  4103     logical:: consist_shape(3)
  4104     character(TOKEN):: pos_array(3)
  4105     integer, 
allocatable:: mask_array(:,:,:)
  4106     logical, 
allocatable:: judge(:,:,:)
  4107     logical, 
allocatable:: judge_rev(:,:,:)
  4116     answer_shape = shape(answer)
  4117     check_shape = shape(check)
  4119     consist_shape = answer_shape == check_shape
  4121     if (.not. all(consist_shape)) 
then  4122       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  4124       write(*,*) 
'  shape of check is (', check_shape, 
')'  4125       write(*,*) 
'    is INCORRECT'  4126       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')'  4132     allocate( mask_array( &
  4133                             &    answer_shape(1), &
  4135       &    answer_shape(2), &
  4137       &    answer_shape(3)  )  &
  4141                             &    answer_shape(1), &
  4143       &    answer_shape(2), &
  4145       &    answer_shape(3)  )  &
  4148     allocate( judge_rev( &
  4149                             &    answer_shape(1), &
  4151       &    answer_shape(2), &
  4153       &    answer_shape(3)  )  &
  4157     judge = answer == check
  4161     judge_rev = .not. judge
  4162     err_flag = any(judge_rev)
  4164     pos = maxloc(mask_array, judge_rev)
  4182                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
  4184       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
  4186       write(unit=pos_array(3), fmt=
"(i20)") pos(3)
  4190                               &    trim(adjustl(pos_array(1))) // 
',' // &
  4192         &    trim(adjustl(pos_array(2))) // 
',' // &
  4194         &    trim(adjustl(pos_array(3))) // 
')'  4197     deallocate(mask_array, judge, judge_rev)
  4203       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  4205       write(*,*) 
'  check' // trim(pos_str) // 
'  = ', wrong
  4206       write(*,*) 
'    is NOT EQUAL to'  4207       write(*,*) 
'  answer' // trim(pos_str) // 
' = ', right
  4211       write(*,*) 
' *** MESSAGE [AssertEQ] *** Checking ' // trim(message) // 
' OK'  4222     character(*), 
intent(in):: message
  4223     real(DP), 
intent(in):: answer(:,:,:,:)
  4224     real(DP), 
intent(in):: check(:,:,:,:)
  4226     character(STRING):: pos_str
  4227     real(DP):: wrong, right
  4229                         integer:: answer_shape(4), check_shape(4), pos(4)
  4230     logical:: consist_shape(4)
  4231     character(TOKEN):: pos_array(4)
  4232     integer, 
allocatable:: mask_array(:,:,:,:)
  4233     logical, 
allocatable:: judge(:,:,:,:)
  4234     logical, 
allocatable:: judge_rev(:,:,:,:)
  4243     answer_shape = shape(answer)
  4244     check_shape = shape(check)
  4246     consist_shape = answer_shape == check_shape
  4248     if (.not. all(consist_shape)) 
then  4249       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  4251       write(*,*) 
'  shape of check is (', check_shape, 
')'  4252       write(*,*) 
'    is INCORRECT'  4253       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')'  4259     allocate( mask_array( &
  4260                             &    answer_shape(1), &
  4262       &    answer_shape(2), &
  4264       &    answer_shape(3), &
  4266       &    answer_shape(4)  )  &
  4270                             &    answer_shape(1), &
  4272       &    answer_shape(2), &
  4274       &    answer_shape(3), &
  4276       &    answer_shape(4)  )  &
  4279     allocate( judge_rev( &
  4280                             &    answer_shape(1), &
  4282       &    answer_shape(2), &
  4284       &    answer_shape(3), &
  4286       &    answer_shape(4)  )  &
  4290     judge = answer == check
  4294     judge_rev = .not. judge
  4295     err_flag = any(judge_rev)
  4297     pos = maxloc(mask_array, judge_rev)
  4319                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
  4321       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
  4323       write(unit=pos_array(3), fmt=
"(i20)") pos(3)
  4325       write(unit=pos_array(4), fmt=
"(i20)") pos(4)
  4329                               &    trim(adjustl(pos_array(1))) // 
',' // &
  4331         &    trim(adjustl(pos_array(2))) // 
',' // &
  4333         &    trim(adjustl(pos_array(3))) // 
',' // &
  4335         &    trim(adjustl(pos_array(4))) // 
')'  4338     deallocate(mask_array, judge, judge_rev)
  4344       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  4346       write(*,*) 
'  check' // trim(pos_str) // 
'  = ', wrong
  4347       write(*,*) 
'    is NOT EQUAL to'  4348       write(*,*) 
'  answer' // trim(pos_str) // 
' = ', right
  4352       write(*,*) 
' *** MESSAGE [AssertEQ] *** Checking ' // trim(message) // 
' OK'  4363     character(*), 
intent(in):: message
  4364     real(DP), 
intent(in):: answer(:,:,:,:,:)
  4365     real(DP), 
intent(in):: check(:,:,:,:,:)
  4367     character(STRING):: pos_str
  4368     real(DP):: wrong, right
  4370                         integer:: answer_shape(5), check_shape(5), pos(5)
  4371     logical:: consist_shape(5)
  4372     character(TOKEN):: pos_array(5)
  4373     integer, 
allocatable:: mask_array(:,:,:,:,:)
  4374     logical, 
allocatable:: judge(:,:,:,:,:)
  4375     logical, 
allocatable:: judge_rev(:,:,:,:,:)
  4384     answer_shape = shape(answer)
  4385     check_shape = shape(check)
  4387     consist_shape = answer_shape == check_shape
  4389     if (.not. all(consist_shape)) 
then  4390       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  4392       write(*,*) 
'  shape of check is (', check_shape, 
')'  4393       write(*,*) 
'    is INCORRECT'  4394       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')'  4400     allocate( mask_array( &
  4401                             &    answer_shape(1), &
  4403       &    answer_shape(2), &
  4405       &    answer_shape(3), &
  4407       &    answer_shape(4), &
  4409       &    answer_shape(5)  )  &
  4413                             &    answer_shape(1), &
  4415       &    answer_shape(2), &
  4417       &    answer_shape(3), &
  4419       &    answer_shape(4), &
  4421       &    answer_shape(5)  )  &
  4424     allocate( judge_rev( &
  4425                             &    answer_shape(1), &
  4427       &    answer_shape(2), &
  4429       &    answer_shape(3), &
  4431       &    answer_shape(4), &
  4433       &    answer_shape(5)  )  &
  4437     judge = answer == check
  4441     judge_rev = .not. judge
  4442     err_flag = any(judge_rev)
  4444     pos = maxloc(mask_array, judge_rev)
  4470                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
  4472       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
  4474       write(unit=pos_array(3), fmt=
"(i20)") pos(3)
  4476       write(unit=pos_array(4), fmt=
"(i20)") pos(4)
  4478       write(unit=pos_array(5), fmt=
"(i20)") pos(5)
  4482                               &    trim(adjustl(pos_array(1))) // 
',' // &
  4484         &    trim(adjustl(pos_array(2))) // 
',' // &
  4486         &    trim(adjustl(pos_array(3))) // 
',' // &
  4488         &    trim(adjustl(pos_array(4))) // 
',' // &
  4490         &    trim(adjustl(pos_array(5))) // 
')'  4493     deallocate(mask_array, judge, judge_rev)
  4499       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  4501       write(*,*) 
'  check' // trim(pos_str) // 
'  = ', wrong
  4502       write(*,*) 
'    is NOT EQUAL to'  4503       write(*,*) 
'  answer' // trim(pos_str) // 
' = ', right
  4507       write(*,*) 
' *** MESSAGE [AssertEQ] *** Checking ' // trim(message) // 
' OK'  4518     character(*), 
intent(in):: message
  4519     real(DP), 
intent(in):: answer(:,:,:,:,:,:)
  4520     real(DP), 
intent(in):: check(:,:,:,:,:,:)
  4522     character(STRING):: pos_str
  4523     real(DP):: wrong, right
  4525                         integer:: answer_shape(6), check_shape(6), pos(6)
  4526     logical:: consist_shape(6)
  4527     character(TOKEN):: pos_array(6)
  4528     integer, 
allocatable:: mask_array(:,:,:,:,:,:)
  4529     logical, 
allocatable:: judge(:,:,:,:,:,:)
  4530     logical, 
allocatable:: judge_rev(:,:,:,:,:,:)
  4539     answer_shape = shape(answer)
  4540     check_shape = shape(check)
  4542     consist_shape = answer_shape == check_shape
  4544     if (.not. all(consist_shape)) 
then  4545       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  4547       write(*,*) 
'  shape of check is (', check_shape, 
')'  4548       write(*,*) 
'    is INCORRECT'  4549       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')'  4555     allocate( mask_array( &
  4556                             &    answer_shape(1), &
  4558       &    answer_shape(2), &
  4560       &    answer_shape(3), &
  4562       &    answer_shape(4), &
  4564       &    answer_shape(5), &
  4566       &    answer_shape(6)  )  &
  4570                             &    answer_shape(1), &
  4572       &    answer_shape(2), &
  4574       &    answer_shape(3), &
  4576       &    answer_shape(4), &
  4578       &    answer_shape(5), &
  4580       &    answer_shape(6)  )  &
  4583     allocate( judge_rev( &
  4584                             &    answer_shape(1), &
  4586       &    answer_shape(2), &
  4588       &    answer_shape(3), &
  4590       &    answer_shape(4), &
  4592       &    answer_shape(5), &
  4594       &    answer_shape(6)  )  &
  4598     judge = answer == check
  4602     judge_rev = .not. judge
  4603     err_flag = any(judge_rev)
  4605     pos = maxloc(mask_array, judge_rev)
  4635                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
  4637       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
  4639       write(unit=pos_array(3), fmt=
"(i20)") pos(3)
  4641       write(unit=pos_array(4), fmt=
"(i20)") pos(4)
  4643       write(unit=pos_array(5), fmt=
"(i20)") pos(5)
  4645       write(unit=pos_array(6), fmt=
"(i20)") pos(6)
  4649                               &    trim(adjustl(pos_array(1))) // 
',' // &
  4651         &    trim(adjustl(pos_array(2))) // 
',' // &
  4653         &    trim(adjustl(pos_array(3))) // 
',' // &
  4655         &    trim(adjustl(pos_array(4))) // 
',' // &
  4657         &    trim(adjustl(pos_array(5))) // 
',' // &
  4659         &    trim(adjustl(pos_array(6))) // 
')'  4662     deallocate(mask_array, judge, judge_rev)
  4668       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  4670       write(*,*) 
'  check' // trim(pos_str) // 
'  = ', wrong
  4671       write(*,*) 
'    is NOT EQUAL to'  4672       write(*,*) 
'  answer' // trim(pos_str) // 
' = ', right
  4676       write(*,*) 
' *** MESSAGE [AssertEQ] *** Checking ' // trim(message) // 
' OK'  4687     character(*), 
intent(in):: message
  4688     real(DP), 
intent(in):: answer(:,:,:,:,:,:,:)
  4689     real(DP), 
intent(in):: check(:,:,:,:,:,:,:)
  4691     character(STRING):: pos_str
  4692     real(DP):: wrong, right
  4694                         integer:: answer_shape(7), check_shape(7), pos(7)
  4695     logical:: consist_shape(7)
  4696     character(TOKEN):: pos_array(7)
  4697     integer, 
allocatable:: mask_array(:,:,:,:,:,:,:)
  4698     logical, 
allocatable:: judge(:,:,:,:,:,:,:)
  4699     logical, 
allocatable:: judge_rev(:,:,:,:,:,:,:)
  4708     answer_shape = shape(answer)
  4709     check_shape = shape(check)
  4711     consist_shape = answer_shape == check_shape
  4713     if (.not. all(consist_shape)) 
then  4714       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  4716       write(*,*) 
'  shape of check is (', check_shape, 
')'  4717       write(*,*) 
'    is INCORRECT'  4718       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')'  4724     allocate( mask_array( &
  4725                             &    answer_shape(1), &
  4727       &    answer_shape(2), &
  4729       &    answer_shape(3), &
  4731       &    answer_shape(4), &
  4733       &    answer_shape(5), &
  4735       &    answer_shape(6), &
  4737       &    answer_shape(7)  )  &
  4741                             &    answer_shape(1), &
  4743       &    answer_shape(2), &
  4745       &    answer_shape(3), &
  4747       &    answer_shape(4), &
  4749       &    answer_shape(5), &
  4751       &    answer_shape(6), &
  4753       &    answer_shape(7)  )  &
  4756     allocate( judge_rev( &
  4757                             &    answer_shape(1), &
  4759       &    answer_shape(2), &
  4761       &    answer_shape(3), &
  4763       &    answer_shape(4), &
  4765       &    answer_shape(5), &
  4767       &    answer_shape(6), &
  4769       &    answer_shape(7)  )  &
  4773     judge = answer == check
  4777     judge_rev = .not. judge
  4778     err_flag = any(judge_rev)
  4780     pos = maxloc(mask_array, judge_rev)
  4814                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
  4816       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
  4818       write(unit=pos_array(3), fmt=
"(i20)") pos(3)
  4820       write(unit=pos_array(4), fmt=
"(i20)") pos(4)
  4822       write(unit=pos_array(5), fmt=
"(i20)") pos(5)
  4824       write(unit=pos_array(6), fmt=
"(i20)") pos(6)
  4826       write(unit=pos_array(7), fmt=
"(i20)") pos(7)
  4830                               &    trim(adjustl(pos_array(1))) // 
',' // &
  4832         &    trim(adjustl(pos_array(2))) // 
',' // &
  4834         &    trim(adjustl(pos_array(3))) // 
',' // &
  4836         &    trim(adjustl(pos_array(4))) // 
',' // &
  4838         &    trim(adjustl(pos_array(5))) // 
',' // &
  4840         &    trim(adjustl(pos_array(6))) // 
',' // &
  4842         &    trim(adjustl(pos_array(7))) // 
')'  4845     deallocate(mask_array, judge, judge_rev)
  4851       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  4853       write(*,*) 
'  check' // trim(pos_str) // 
'  = ', wrong
  4854       write(*,*) 
'    is NOT EQUAL to'  4855       write(*,*) 
'  answer' // trim(pos_str) // 
' = ', right
  4859       write(*,*) 
' *** MESSAGE [AssertEQ] *** Checking ' // trim(message) // 
' OK'  4868     character(*), 
intent(in):: message
  4869     logical, 
intent(in):: answer
  4870     logical, 
intent(in):: check
  4872                         character(STRING):: answer_str
  4873     character(STRING):: check_str
  4881       answer_str = 
".true."  4883       answer_str = 
".false."  4887       check_str = 
".true."  4889       check_str = 
".false."  4902     character(*), 
intent(in):: message
  4903     logical, 
intent(in):: answer(:)
  4904     logical, 
intent(in):: check(:)
  4906                         integer:: answer_shape(1), check_shape(1), i
  4907     logical, 
allocatable:: answer_tmp(:), check_tmp(:)
  4908     character(STRING), 
allocatable:: answer_str_tmp(:), check_str_tmp(:)
  4909     character(STRING), 
allocatable:: answer_str(:)
  4910     character(STRING), 
allocatable:: check_str(:)
  4917     allocate(answer_tmp(
size(answer)))
  4918     allocate(check_tmp(
size(check)))
  4919     allocate(answer_str_tmp(
size(answer)))
  4920     allocate(check_str_tmp(
size(check)))
  4921     answer_tmp = pack(answer, .true.)
  4922     check_tmp = pack(check, .true.)
  4924     do i = 1, 
size(answer_tmp)
  4925       if (answer_tmp(i)) 
then  4926         answer_str_tmp(i) = 
'.true.'  4928         answer_str_tmp(i) = 
'.false.'  4932     do i = 1, 
size(check_tmp)
  4933       if (check_tmp(i)) 
then  4934         check_str_tmp(i) = 
'.true.'  4936         check_str_tmp(i) = 
'.false.'  4940     answer_shape = shape(answer)
  4941     check_shape = shape(check)
  4943     allocate( answer_str( &
  4945       &    answer_shape(1)  )  &
  4948     allocate( check_str( &
  4950       &    check_shape(1)  )  &
  4953     answer_str = reshape(answer_str_tmp, answer_shape)
  4954     check_str = reshape(check_str_tmp, check_shape)
  4960                         deallocate(answer_str, answer_tmp, answer_str_tmp)
  4961     deallocate(check_str, check_tmp, check_str_tmp)
  4968     character(*), 
intent(in):: message
  4969     logical, 
intent(in):: answer(:,:)
  4970     logical, 
intent(in):: check(:,:)
  4972                         integer:: answer_shape(2), check_shape(2), i
  4973     logical, 
allocatable:: answer_tmp(:), check_tmp(:)
  4974     character(STRING), 
allocatable:: answer_str_tmp(:), check_str_tmp(:)
  4975     character(STRING), 
allocatable:: answer_str(:,:)
  4976     character(STRING), 
allocatable:: check_str(:,:)
  4983     allocate(answer_tmp(
size(answer)))
  4984     allocate(check_tmp(
size(check)))
  4985     allocate(answer_str_tmp(
size(answer)))
  4986     allocate(check_str_tmp(
size(check)))
  4987     answer_tmp = pack(answer, .true.)
  4988     check_tmp = pack(check, .true.)
  4990     do i = 1, 
size(answer_tmp)
  4991       if (answer_tmp(i)) 
then  4992         answer_str_tmp(i) = 
'.true.'  4994         answer_str_tmp(i) = 
'.false.'  4998     do i = 1, 
size(check_tmp)
  4999       if (check_tmp(i)) 
then  5000         check_str_tmp(i) = 
'.true.'  5002         check_str_tmp(i) = 
'.false.'  5006     answer_shape = shape(answer)
  5007     check_shape = shape(check)
  5009     allocate( answer_str( &
  5010                             &    answer_shape(1), &
  5012       &    answer_shape(2)  )  &
  5015     allocate( check_str( &
  5018       &    check_shape(2)  )  &
  5021     answer_str = reshape(answer_str_tmp, answer_shape)
  5022     check_str = reshape(check_str_tmp, check_shape)
  5028                         deallocate(answer_str, answer_tmp, answer_str_tmp)
  5029     deallocate(check_str, check_tmp, check_str_tmp)
  5036     character(*), 
intent(in):: message
  5037     logical, 
intent(in):: answer(:,:,:)
  5038     logical, 
intent(in):: check(:,:,:)
  5040                         integer:: answer_shape(3), check_shape(3), i
  5041     logical, 
allocatable:: answer_tmp(:), check_tmp(:)
  5042     character(STRING), 
allocatable:: answer_str_tmp(:), check_str_tmp(:)
  5043     character(STRING), 
allocatable:: answer_str(:,:,:)
  5044     character(STRING), 
allocatable:: check_str(:,:,:)
  5051     allocate(answer_tmp(
size(answer)))
  5052     allocate(check_tmp(
size(check)))
  5053     allocate(answer_str_tmp(
size(answer)))
  5054     allocate(check_str_tmp(
size(check)))
  5055     answer_tmp = pack(answer, .true.)
  5056     check_tmp = pack(check, .true.)
  5058     do i = 1, 
size(answer_tmp)
  5059       if (answer_tmp(i)) 
then  5060         answer_str_tmp(i) = 
'.true.'  5062         answer_str_tmp(i) = 
'.false.'  5066     do i = 1, 
size(check_tmp)
  5067       if (check_tmp(i)) 
then  5068         check_str_tmp(i) = 
'.true.'  5070         check_str_tmp(i) = 
'.false.'  5074     answer_shape = shape(answer)
  5075     check_shape = shape(check)
  5077     allocate( answer_str( &
  5078                             &    answer_shape(1), &
  5080       &    answer_shape(2), &
  5082       &    answer_shape(3)  )  &
  5085     allocate( check_str( &
  5090       &    check_shape(3)  )  &
  5093     answer_str = reshape(answer_str_tmp, answer_shape)
  5094     check_str = reshape(check_str_tmp, check_shape)
  5100                         deallocate(answer_str, answer_tmp, answer_str_tmp)
  5101     deallocate(check_str, check_tmp, check_str_tmp)
  5108     character(*), 
intent(in):: message
  5109     logical, 
intent(in):: answer(:,:,:,:)
  5110     logical, 
intent(in):: check(:,:,:,:)
  5112                         integer:: answer_shape(4), check_shape(4), i
  5113     logical, 
allocatable:: answer_tmp(:), check_tmp(:)
  5114     character(STRING), 
allocatable:: answer_str_tmp(:), check_str_tmp(:)
  5115     character(STRING), 
allocatable:: answer_str(:,:,:,:)
  5116     character(STRING), 
allocatable:: check_str(:,:,:,:)
  5123     allocate(answer_tmp(
size(answer)))
  5124     allocate(check_tmp(
size(check)))
  5125     allocate(answer_str_tmp(
size(answer)))
  5126     allocate(check_str_tmp(
size(check)))
  5127     answer_tmp = pack(answer, .true.)
  5128     check_tmp = pack(check, .true.)
  5130     do i = 1, 
size(answer_tmp)
  5131       if (answer_tmp(i)) 
then  5132         answer_str_tmp(i) = 
'.true.'  5134         answer_str_tmp(i) = 
'.false.'  5138     do i = 1, 
size(check_tmp)
  5139       if (check_tmp(i)) 
then  5140         check_str_tmp(i) = 
'.true.'  5142         check_str_tmp(i) = 
'.false.'  5146     answer_shape = shape(answer)
  5147     check_shape = shape(check)
  5149     allocate( answer_str( &
  5150                             &    answer_shape(1), &
  5152       &    answer_shape(2), &
  5154       &    answer_shape(3), &
  5156       &    answer_shape(4)  )  &
  5159     allocate( check_str( &
  5166       &    check_shape(4)  )  &
  5169     answer_str = reshape(answer_str_tmp, answer_shape)
  5170     check_str = reshape(check_str_tmp, check_shape)
  5176                         deallocate(answer_str, answer_tmp, answer_str_tmp)
  5177     deallocate(check_str, check_tmp, check_str_tmp)
  5184     character(*), 
intent(in):: message
  5185     logical, 
intent(in):: answer(:,:,:,:,:)
  5186     logical, 
intent(in):: check(:,:,:,:,:)
  5188                         integer:: answer_shape(5), check_shape(5), i
  5189     logical, 
allocatable:: answer_tmp(:), check_tmp(:)
  5190     character(STRING), 
allocatable:: answer_str_tmp(:), check_str_tmp(:)
  5191     character(STRING), 
allocatable:: answer_str(:,:,:,:,:)
  5192     character(STRING), 
allocatable:: check_str(:,:,:,:,:)
  5199     allocate(answer_tmp(
size(answer)))
  5200     allocate(check_tmp(
size(check)))
  5201     allocate(answer_str_tmp(
size(answer)))
  5202     allocate(check_str_tmp(
size(check)))
  5203     answer_tmp = pack(answer, .true.)
  5204     check_tmp = pack(check, .true.)
  5206     do i = 1, 
size(answer_tmp)
  5207       if (answer_tmp(i)) 
then  5208         answer_str_tmp(i) = 
'.true.'  5210         answer_str_tmp(i) = 
'.false.'  5214     do i = 1, 
size(check_tmp)
  5215       if (check_tmp(i)) 
then  5216         check_str_tmp(i) = 
'.true.'  5218         check_str_tmp(i) = 
'.false.'  5222     answer_shape = shape(answer)
  5223     check_shape = shape(check)
  5225     allocate( answer_str( &
  5226                             &    answer_shape(1), &
  5228       &    answer_shape(2), &
  5230       &    answer_shape(3), &
  5232       &    answer_shape(4), &
  5234       &    answer_shape(5)  )  &
  5237     allocate( check_str( &
  5246       &    check_shape(5)  )  &
  5249     answer_str = reshape(answer_str_tmp, answer_shape)
  5250     check_str = reshape(check_str_tmp, check_shape)
  5256                         deallocate(answer_str, answer_tmp, answer_str_tmp)
  5257     deallocate(check_str, check_tmp, check_str_tmp)
  5264     character(*), 
intent(in):: message
  5265     logical, 
intent(in):: answer(:,:,:,:,:,:)
  5266     logical, 
intent(in):: check(:,:,:,:,:,:)
  5268                         integer:: answer_shape(6), check_shape(6), i
  5269     logical, 
allocatable:: answer_tmp(:), check_tmp(:)
  5270     character(STRING), 
allocatable:: answer_str_tmp(:), check_str_tmp(:)
  5271     character(STRING), 
allocatable:: answer_str(:,:,:,:,:,:)
  5272     character(STRING), 
allocatable:: check_str(:,:,:,:,:,:)
  5279     allocate(answer_tmp(
size(answer)))
  5280     allocate(check_tmp(
size(check)))
  5281     allocate(answer_str_tmp(
size(answer)))
  5282     allocate(check_str_tmp(
size(check)))
  5283     answer_tmp = pack(answer, .true.)
  5284     check_tmp = pack(check, .true.)
  5286     do i = 1, 
size(answer_tmp)
  5287       if (answer_tmp(i)) 
then  5288         answer_str_tmp(i) = 
'.true.'  5290         answer_str_tmp(i) = 
'.false.'  5294     do i = 1, 
size(check_tmp)
  5295       if (check_tmp(i)) 
then  5296         check_str_tmp(i) = 
'.true.'  5298         check_str_tmp(i) = 
'.false.'  5302     answer_shape = shape(answer)
  5303     check_shape = shape(check)
  5305     allocate( answer_str( &
  5306                             &    answer_shape(1), &
  5308       &    answer_shape(2), &
  5310       &    answer_shape(3), &
  5312       &    answer_shape(4), &
  5314       &    answer_shape(5), &
  5316       &    answer_shape(6)  )  &
  5319     allocate( check_str( &
  5330       &    check_shape(6)  )  &
  5333     answer_str = reshape(answer_str_tmp, answer_shape)
  5334     check_str = reshape(check_str_tmp, check_shape)
  5340                         deallocate(answer_str, answer_tmp, answer_str_tmp)
  5341     deallocate(check_str, check_tmp, check_str_tmp)
  5348     character(*), 
intent(in):: message
  5349     logical, 
intent(in):: answer(:,:,:,:,:,:,:)
  5350     logical, 
intent(in):: check(:,:,:,:,:,:,:)
  5352                         integer:: answer_shape(7), check_shape(7), i
  5353     logical, 
allocatable:: answer_tmp(:), check_tmp(:)
  5354     character(STRING), 
allocatable:: answer_str_tmp(:), check_str_tmp(:)
  5355     character(STRING), 
allocatable:: answer_str(:,:,:,:,:,:,:)
  5356     character(STRING), 
allocatable:: check_str(:,:,:,:,:,:,:)
  5363     allocate(answer_tmp(
size(answer)))
  5364     allocate(check_tmp(
size(check)))
  5365     allocate(answer_str_tmp(
size(answer)))
  5366     allocate(check_str_tmp(
size(check)))
  5367     answer_tmp = pack(answer, .true.)
  5368     check_tmp = pack(check, .true.)
  5370     do i = 1, 
size(answer_tmp)
  5371       if (answer_tmp(i)) 
then  5372         answer_str_tmp(i) = 
'.true.'  5374         answer_str_tmp(i) = 
'.false.'  5378     do i = 1, 
size(check_tmp)
  5379       if (check_tmp(i)) 
then  5380         check_str_tmp(i) = 
'.true.'  5382         check_str_tmp(i) = 
'.false.'  5386     answer_shape = shape(answer)
  5387     check_shape = shape(check)
  5389     allocate( answer_str( &
  5390                             &    answer_shape(1), &
  5392       &    answer_shape(2), &
  5394       &    answer_shape(3), &
  5396       &    answer_shape(4), &
  5398       &    answer_shape(5), &
  5400       &    answer_shape(6), &
  5402       &    answer_shape(7)  )  &
  5405     allocate( check_str( &
  5418       &    check_shape(7)  )  &
  5421     answer_str = reshape(answer_str_tmp, answer_shape)
  5422     check_str = reshape(check_str_tmp, check_shape)
  5428                         deallocate(answer_str, answer_tmp, answer_str_tmp)
  5429     deallocate(check_str, check_tmp, check_str_tmp)
  5435     & message, answer, check, significant_digits, ignore_digits )
  5439     character(*), 
intent(in):: message
  5440     real, 
intent(in):: answer
  5441     real, 
intent(in):: check
  5442     integer, 
intent(in):: significant_digits
  5443     integer, 
intent(in):: ignore_digits
  5445     character(STRING):: pos_str
  5446     real:: wrong, right_max, right_min
  5447     character(STRING):: pos_str_space
  5448     integer:: pos_str_len
  5457     if ( significant_digits < 1 ) 
then  5458       write(*,*) 
' *** Error [AssertEQ] *** '  5459       write(*,*) 
'  Specify a number more than 1 to "significant_digits"'  5463     if ( answer < 0.0 .and. check < 0.0 ) 
then  5467         &       - 0.1 ** significant_digits ) &
  5468         & + 0.1 ** (- ignore_digits)
  5473         &       + 0.1 ** significant_digits ) &
  5474         & - 0.1 ** (- ignore_digits)
  5480         &       + 0.1 ** significant_digits ) &
  5481         & + 0.1 ** (- ignore_digits)
  5486         &       - 0.1 ** significant_digits ) &
  5487         & - 0.1 ** (- ignore_digits)
  5491     right_max = answer_max
  5492     right_min = answer_min
  5493     if ( right_max < right_min ) 
then  5494       right_tmp = right_max
  5495       right_max = right_min
  5496       right_min = right_tmp
  5499     err_flag = .not. (answer_max > check .and. check > answer_min)
  5507       pos_str_len = len_trim(pos_str)
  5509       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  5511       write(*,*) 
'  check' // trim(pos_str)  // 
'  = ', wrong
  5512       write(*,*) 
'    is NOT EQUAL to'  5513       write(*,*) 
'        ' // pos_str_space(1:pos_str_len) &
  5514         &                                     // 
'   ', right_min, 
' < '  5515       write(*,*) 
'  answer' // trim(pos_str)  // 
' < ', right_max
  5519       write(*,*) 
' *** MESSAGE [AssertEQ] *** Checking ' // trim(message) // 
' OK'  5527     & message, answer, check, significant_digits, ignore_digits )
  5531     character(*), 
intent(in):: message
  5532     real, 
intent(in):: answer(:)
  5533     real, 
intent(in):: check(:)
  5534     integer, 
intent(in):: significant_digits
  5535     integer, 
intent(in):: ignore_digits
  5537     character(STRING):: pos_str
  5538     real:: wrong, right_max, right_min
  5539     character(STRING):: pos_str_space
  5540     integer:: pos_str_len
  5543                         integer:: answer_shape(1), check_shape(1), pos(1)
  5544     logical:: consist_shape(1)
  5545     character(TOKEN):: pos_array(1)
  5546     integer, 
allocatable:: mask_array(:)
  5547     logical, 
allocatable:: judge(:)
  5548     logical, 
allocatable:: judge_rev(:)
  5549     logical, 
allocatable:: answer_negative(:)
  5550     logical, 
allocatable:: check_negative(:)
  5551     logical, 
allocatable:: both_negative(:)
  5552     real, 
allocatable:: answer_max(:)
  5553     real, 
allocatable:: answer_min(:)
  5558     if ( significant_digits < 1 ) 
then  5559       write(*,*) 
' *** Error [AssertEQ] *** '  5560       write(*,*) 
'  Specify a number more than 1 to "significant_digits"'  5564     answer_shape = shape(answer)
  5565     check_shape = shape(check)
  5567     consist_shape = answer_shape == check_shape
  5569     if (.not. all(consist_shape)) 
then  5570       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  5572       write(*,*) 
'  shape of check is (', check_shape, 
')'  5573       write(*,*) 
'    is INCORRECT'  5574       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')'  5580     allocate( mask_array( &
  5582       &    answer_shape(1)  )  &
  5587       &    answer_shape(1)  )  &
  5590     allocate( judge_rev( &
  5592       &    answer_shape(1)  )  &
  5595     allocate( answer_negative( &
  5597       &    answer_shape(1)  )  &
  5600     allocate( check_negative( &
  5602       &    answer_shape(1)  )  &
  5605     allocate( both_negative( &
  5607       &    answer_shape(1)  )  &
  5610     allocate( answer_max( &
  5612       &    answer_shape(1)  )  &
  5615     allocate( answer_min( &
  5617       &    answer_shape(1)  )  &
  5620     answer_negative = answer < 0.0
  5621     check_negative = check < 0.0
  5622     both_negative = answer_negative .and. check_negative
  5624     where (both_negative)
  5628         &       - 0.1 ** significant_digits ) &
  5629         & + 0.1 ** (- ignore_digits)
  5634         &       + 0.1 ** significant_digits ) &
  5635         & - 0.1 ** (- ignore_digits)
  5640         &       + 0.1 ** significant_digits ) &
  5641         & + 0.1 ** (- ignore_digits)
  5646         &       - 0.1 ** significant_digits ) &
  5647         & - 0.1 ** (- ignore_digits)
  5650     judge = answer_max > check .and. check > answer_min
  5651     judge_rev = .not. judge
  5652     err_flag = any(judge_rev)
  5654     pos = maxloc(mask_array, judge_rev)
  5662       right_max = answer_max( &
  5666       right_min = answer_min( &
  5670       if ( right_max < right_min ) 
then  5671         right_tmp = right_max
  5672         right_max = right_min
  5673         right_min = right_tmp
  5676                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
  5681         &    trim(adjustl(pos_array(1))) // 
')'  5684     deallocate(mask_array, judge, judge_rev)
  5685     deallocate(answer_negative, check_negative, both_negative)
  5686     deallocate(answer_max, answer_min)
  5692       pos_str_len = len_trim(pos_str)
  5694       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  5696       write(*,*) 
'  check' // trim(pos_str)  // 
'  = ', wrong
  5697       write(*,*) 
'    is NOT EQUAL to'  5698       write(*,*) 
'        ' // pos_str_space(1:pos_str_len) &
  5699         &                                     // 
'   ', right_min, 
' < '  5700       write(*,*) 
'  answer' // trim(pos_str)  // 
' < ', right_max
  5704       write(*,*) 
' *** MESSAGE [AssertEQ] *** Checking ' // trim(message) // 
' OK'  5712     & message, answer, check, significant_digits, ignore_digits )
  5716     character(*), 
intent(in):: message
  5717     real, 
intent(in):: answer(:,:)
  5718     real, 
intent(in):: check(:,:)
  5719     integer, 
intent(in):: significant_digits
  5720     integer, 
intent(in):: ignore_digits
  5722     character(STRING):: pos_str
  5723     real:: wrong, right_max, right_min
  5724     character(STRING):: pos_str_space
  5725     integer:: pos_str_len
  5728                         integer:: answer_shape(2), check_shape(2), pos(2)
  5729     logical:: consist_shape(2)
  5730     character(TOKEN):: pos_array(2)
  5731     integer, 
allocatable:: mask_array(:,:)
  5732     logical, 
allocatable:: judge(:,:)
  5733     logical, 
allocatable:: judge_rev(:,:)
  5734     logical, 
allocatable:: answer_negative(:,:)
  5735     logical, 
allocatable:: check_negative(:,:)
  5736     logical, 
allocatable:: both_negative(:,:)
  5737     real, 
allocatable:: answer_max(:,:)
  5738     real, 
allocatable:: answer_min(:,:)
  5743     if ( significant_digits < 1 ) 
then  5744       write(*,*) 
' *** Error [AssertEQ] *** '  5745       write(*,*) 
'  Specify a number more than 1 to "significant_digits"'  5749     answer_shape = shape(answer)
  5750     check_shape = shape(check)
  5752     consist_shape = answer_shape == check_shape
  5754     if (.not. all(consist_shape)) 
then  5755       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  5757       write(*,*) 
'  shape of check is (', check_shape, 
')'  5758       write(*,*) 
'    is INCORRECT'  5759       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')'  5765     allocate( mask_array( &
  5766                             &    answer_shape(1), &
  5768       &    answer_shape(2)  )  &
  5772                             &    answer_shape(1), &
  5774       &    answer_shape(2)  )  &
  5777     allocate( judge_rev( &
  5778                             &    answer_shape(1), &
  5780       &    answer_shape(2)  )  &
  5783     allocate( answer_negative( &
  5784                             &    answer_shape(1), &
  5786       &    answer_shape(2)  )  &
  5789     allocate( check_negative( &
  5790                             &    answer_shape(1), &
  5792       &    answer_shape(2)  )  &
  5795     allocate( both_negative( &
  5796                             &    answer_shape(1), &
  5798       &    answer_shape(2)  )  &
  5801     allocate( answer_max( &
  5802                             &    answer_shape(1), &
  5804       &    answer_shape(2)  )  &
  5807     allocate( answer_min( &
  5808                             &    answer_shape(1), &
  5810       &    answer_shape(2)  )  &
  5813     answer_negative = answer < 0.0
  5814     check_negative = check < 0.0
  5815     both_negative = answer_negative .and. check_negative
  5817     where (both_negative)
  5821         &       - 0.1 ** significant_digits ) &
  5822         & + 0.1 ** (- ignore_digits)
  5827         &       + 0.1 ** significant_digits ) &
  5828         & - 0.1 ** (- ignore_digits)
  5833         &       + 0.1 ** significant_digits ) &
  5834         & + 0.1 ** (- ignore_digits)
  5839         &       - 0.1 ** significant_digits ) &
  5840         & - 0.1 ** (- ignore_digits)
  5843     judge = answer_max > check .and. check > answer_min
  5844     judge_rev = .not. judge
  5845     err_flag = any(judge_rev)
  5847     pos = maxloc(mask_array, judge_rev)
  5856       right_max = answer_max( &
  5861       right_min = answer_min( &
  5866       if ( right_max < right_min ) 
then  5867         right_tmp = right_max
  5868         right_max = right_min
  5869         right_min = right_tmp
  5872                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
  5874       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
  5878                               &    trim(adjustl(pos_array(1))) // 
',' // &
  5880         &    trim(adjustl(pos_array(2))) // 
')'  5883     deallocate(mask_array, judge, judge_rev)
  5884     deallocate(answer_negative, check_negative, both_negative)
  5885     deallocate(answer_max, answer_min)
  5891       pos_str_len = len_trim(pos_str)
  5893       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  5895       write(*,*) 
'  check' // trim(pos_str)  // 
'  = ', wrong
  5896       write(*,*) 
'    is NOT EQUAL to'  5897       write(*,*) 
'        ' // pos_str_space(1:pos_str_len) &
  5898         &                                     // 
'   ', right_min, 
' < '  5899       write(*,*) 
'  answer' // trim(pos_str)  // 
' < ', right_max
  5903       write(*,*) 
' *** MESSAGE [AssertEQ] *** Checking ' // trim(message) // 
' OK'  5911     & message, answer, check, significant_digits, ignore_digits )
  5915     character(*), 
intent(in):: message
  5916     real, 
intent(in):: answer(:,:,:)
  5917     real, 
intent(in):: check(:,:,:)
  5918     integer, 
intent(in):: significant_digits
  5919     integer, 
intent(in):: ignore_digits
  5921     character(STRING):: pos_str
  5922     real:: wrong, right_max, right_min
  5923     character(STRING):: pos_str_space
  5924     integer:: pos_str_len
  5927                         integer:: answer_shape(3), check_shape(3), pos(3)
  5928     logical:: consist_shape(3)
  5929     character(TOKEN):: pos_array(3)
  5930     integer, 
allocatable:: mask_array(:,:,:)
  5931     logical, 
allocatable:: judge(:,:,:)
  5932     logical, 
allocatable:: judge_rev(:,:,:)
  5933     logical, 
allocatable:: answer_negative(:,:,:)
  5934     logical, 
allocatable:: check_negative(:,:,:)
  5935     logical, 
allocatable:: both_negative(:,:,:)
  5936     real, 
allocatable:: answer_max(:,:,:)
  5937     real, 
allocatable:: answer_min(:,:,:)
  5942     if ( significant_digits < 1 ) 
then  5943       write(*,*) 
' *** Error [AssertEQ] *** '  5944       write(*,*) 
'  Specify a number more than 1 to "significant_digits"'  5948     answer_shape = shape(answer)
  5949     check_shape = shape(check)
  5951     consist_shape = answer_shape == check_shape
  5953     if (.not. all(consist_shape)) 
then  5954       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  5956       write(*,*) 
'  shape of check is (', check_shape, 
')'  5957       write(*,*) 
'    is INCORRECT'  5958       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')'  5964     allocate( mask_array( &
  5965                             &    answer_shape(1), &
  5967       &    answer_shape(2), &
  5969       &    answer_shape(3)  )  &
  5973                             &    answer_shape(1), &
  5975       &    answer_shape(2), &
  5977       &    answer_shape(3)  )  &
  5980     allocate( judge_rev( &
  5981                             &    answer_shape(1), &
  5983       &    answer_shape(2), &
  5985       &    answer_shape(3)  )  &
  5988     allocate( answer_negative( &
  5989                             &    answer_shape(1), &
  5991       &    answer_shape(2), &
  5993       &    answer_shape(3)  )  &
  5996     allocate( check_negative( &
  5997                             &    answer_shape(1), &
  5999       &    answer_shape(2), &
  6001       &    answer_shape(3)  )  &
  6004     allocate( both_negative( &
  6005                             &    answer_shape(1), &
  6007       &    answer_shape(2), &
  6009       &    answer_shape(3)  )  &
  6012     allocate( answer_max( &
  6013                             &    answer_shape(1), &
  6015       &    answer_shape(2), &
  6017       &    answer_shape(3)  )  &
  6020     allocate( answer_min( &
  6021                             &    answer_shape(1), &
  6023       &    answer_shape(2), &
  6025       &    answer_shape(3)  )  &
  6028     answer_negative = answer < 0.0
  6029     check_negative = check < 0.0
  6030     both_negative = answer_negative .and. check_negative
  6032     where (both_negative)
  6036         &       - 0.1 ** significant_digits ) &
  6037         & + 0.1 ** (- ignore_digits)
  6042         &       + 0.1 ** significant_digits ) &
  6043         & - 0.1 ** (- ignore_digits)
  6048         &       + 0.1 ** significant_digits ) &
  6049         & + 0.1 ** (- ignore_digits)
  6054         &       - 0.1 ** significant_digits ) &
  6055         & - 0.1 ** (- ignore_digits)
  6058     judge = answer_max > check .and. check > answer_min
  6059     judge_rev = .not. judge
  6060     err_flag = any(judge_rev)
  6062     pos = maxloc(mask_array, judge_rev)
  6073       right_max = answer_max( &
  6080       right_min = answer_min( &
  6087       if ( right_max < right_min ) 
then  6088         right_tmp = right_max
  6089         right_max = right_min
  6090         right_min = right_tmp
  6093                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
  6095       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
  6097       write(unit=pos_array(3), fmt=
"(i20)") pos(3)
  6101                               &    trim(adjustl(pos_array(1))) // 
',' // &
  6103         &    trim(adjustl(pos_array(2))) // 
',' // &
  6105         &    trim(adjustl(pos_array(3))) // 
')'  6108     deallocate(mask_array, judge, judge_rev)
  6109     deallocate(answer_negative, check_negative, both_negative)
  6110     deallocate(answer_max, answer_min)
  6116       pos_str_len = len_trim(pos_str)
  6118       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  6120       write(*,*) 
'  check' // trim(pos_str)  // 
'  = ', wrong
  6121       write(*,*) 
'    is NOT EQUAL to'  6122       write(*,*) 
'        ' // pos_str_space(1:pos_str_len) &
  6123         &                                     // 
'   ', right_min, 
' < '  6124       write(*,*) 
'  answer' // trim(pos_str)  // 
' < ', right_max
  6128       write(*,*) 
' *** MESSAGE [AssertEQ] *** Checking ' // trim(message) // 
' OK'  6136     & message, answer, check, significant_digits, ignore_digits )
  6140     character(*), 
intent(in):: message
  6141     real, 
intent(in):: answer(:,:,:,:)
  6142     real, 
intent(in):: check(:,:,:,:)
  6143     integer, 
intent(in):: significant_digits
  6144     integer, 
intent(in):: ignore_digits
  6146     character(STRING):: pos_str
  6147     real:: wrong, right_max, right_min
  6148     character(STRING):: pos_str_space
  6149     integer:: pos_str_len
  6152                         integer:: answer_shape(4), check_shape(4), pos(4)
  6153     logical:: consist_shape(4)
  6154     character(TOKEN):: pos_array(4)
  6155     integer, 
allocatable:: mask_array(:,:,:,:)
  6156     logical, 
allocatable:: judge(:,:,:,:)
  6157     logical, 
allocatable:: judge_rev(:,:,:,:)
  6158     logical, 
allocatable:: answer_negative(:,:,:,:)
  6159     logical, 
allocatable:: check_negative(:,:,:,:)
  6160     logical, 
allocatable:: both_negative(:,:,:,:)
  6161     real, 
allocatable:: answer_max(:,:,:,:)
  6162     real, 
allocatable:: answer_min(:,:,:,:)
  6167     if ( significant_digits < 1 ) 
then  6168       write(*,*) 
' *** Error [AssertEQ] *** '  6169       write(*,*) 
'  Specify a number more than 1 to "significant_digits"'  6173     answer_shape = shape(answer)
  6174     check_shape = shape(check)
  6176     consist_shape = answer_shape == check_shape
  6178     if (.not. all(consist_shape)) 
then  6179       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  6181       write(*,*) 
'  shape of check is (', check_shape, 
')'  6182       write(*,*) 
'    is INCORRECT'  6183       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')'  6189     allocate( mask_array( &
  6190                             &    answer_shape(1), &
  6192       &    answer_shape(2), &
  6194       &    answer_shape(3), &
  6196       &    answer_shape(4)  )  &
  6200                             &    answer_shape(1), &
  6202       &    answer_shape(2), &
  6204       &    answer_shape(3), &
  6206       &    answer_shape(4)  )  &
  6209     allocate( judge_rev( &
  6210                             &    answer_shape(1), &
  6212       &    answer_shape(2), &
  6214       &    answer_shape(3), &
  6216       &    answer_shape(4)  )  &
  6219     allocate( answer_negative( &
  6220                             &    answer_shape(1), &
  6222       &    answer_shape(2), &
  6224       &    answer_shape(3), &
  6226       &    answer_shape(4)  )  &
  6229     allocate( check_negative( &
  6230                             &    answer_shape(1), &
  6232       &    answer_shape(2), &
  6234       &    answer_shape(3), &
  6236       &    answer_shape(4)  )  &
  6239     allocate( both_negative( &
  6240                             &    answer_shape(1), &
  6242       &    answer_shape(2), &
  6244       &    answer_shape(3), &
  6246       &    answer_shape(4)  )  &
  6249     allocate( answer_max( &
  6250                             &    answer_shape(1), &
  6252       &    answer_shape(2), &
  6254       &    answer_shape(3), &
  6256       &    answer_shape(4)  )  &
  6259     allocate( answer_min( &
  6260                             &    answer_shape(1), &
  6262       &    answer_shape(2), &
  6264       &    answer_shape(3), &
  6266       &    answer_shape(4)  )  &
  6269     answer_negative = answer < 0.0
  6270     check_negative = check < 0.0
  6271     both_negative = answer_negative .and. check_negative
  6273     where (both_negative)
  6277         &       - 0.1 ** significant_digits ) &
  6278         & + 0.1 ** (- ignore_digits)
  6283         &       + 0.1 ** significant_digits ) &
  6284         & - 0.1 ** (- ignore_digits)
  6289         &       + 0.1 ** significant_digits ) &
  6290         & + 0.1 ** (- ignore_digits)
  6295         &       - 0.1 ** significant_digits ) &
  6296         & - 0.1 ** (- ignore_digits)
  6299     judge = answer_max > check .and. check > answer_min
  6300     judge_rev = .not. judge
  6301     err_flag = any(judge_rev)
  6303     pos = maxloc(mask_array, judge_rev)
  6316       right_max = answer_max( &
  6325       right_min = answer_min( &
  6334       if ( right_max < right_min ) 
then  6335         right_tmp = right_max
  6336         right_max = right_min
  6337         right_min = right_tmp
  6340                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
  6342       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
  6344       write(unit=pos_array(3), fmt=
"(i20)") pos(3)
  6346       write(unit=pos_array(4), fmt=
"(i20)") pos(4)
  6350                               &    trim(adjustl(pos_array(1))) // 
',' // &
  6352         &    trim(adjustl(pos_array(2))) // 
',' // &
  6354         &    trim(adjustl(pos_array(3))) // 
',' // &
  6356         &    trim(adjustl(pos_array(4))) // 
')'  6359     deallocate(mask_array, judge, judge_rev)
  6360     deallocate(answer_negative, check_negative, both_negative)
  6361     deallocate(answer_max, answer_min)
  6367       pos_str_len = len_trim(pos_str)
  6369       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  6371       write(*,*) 
'  check' // trim(pos_str)  // 
'  = ', wrong
  6372       write(*,*) 
'    is NOT EQUAL to'  6373       write(*,*) 
'        ' // pos_str_space(1:pos_str_len) &
  6374         &                                     // 
'   ', right_min, 
' < '  6375       write(*,*) 
'  answer' // trim(pos_str)  // 
' < ', right_max
  6379       write(*,*) 
' *** MESSAGE [AssertEQ] *** Checking ' // trim(message) // 
' OK'  6387     & message, answer, check, significant_digits, ignore_digits )
  6391     character(*), 
intent(in):: message
  6392     real, 
intent(in):: answer(:,:,:,:,:)
  6393     real, 
intent(in):: check(:,:,:,:,:)
  6394     integer, 
intent(in):: significant_digits
  6395     integer, 
intent(in):: ignore_digits
  6397     character(STRING):: pos_str
  6398     real:: wrong, right_max, right_min
  6399     character(STRING):: pos_str_space
  6400     integer:: pos_str_len
  6403                         integer:: answer_shape(5), check_shape(5), pos(5)
  6404     logical:: consist_shape(5)
  6405     character(TOKEN):: pos_array(5)
  6406     integer, 
allocatable:: mask_array(:,:,:,:,:)
  6407     logical, 
allocatable:: judge(:,:,:,:,:)
  6408     logical, 
allocatable:: judge_rev(:,:,:,:,:)
  6409     logical, 
allocatable:: answer_negative(:,:,:,:,:)
  6410     logical, 
allocatable:: check_negative(:,:,:,:,:)
  6411     logical, 
allocatable:: both_negative(:,:,:,:,:)
  6412     real, 
allocatable:: answer_max(:,:,:,:,:)
  6413     real, 
allocatable:: answer_min(:,:,:,:,:)
  6418     if ( significant_digits < 1 ) 
then  6419       write(*,*) 
' *** Error [AssertEQ] *** '  6420       write(*,*) 
'  Specify a number more than 1 to "significant_digits"'  6424     answer_shape = shape(answer)
  6425     check_shape = shape(check)
  6427     consist_shape = answer_shape == check_shape
  6429     if (.not. all(consist_shape)) 
then  6430       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  6432       write(*,*) 
'  shape of check is (', check_shape, 
')'  6433       write(*,*) 
'    is INCORRECT'  6434       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')'  6440     allocate( mask_array( &
  6441                             &    answer_shape(1), &
  6443       &    answer_shape(2), &
  6445       &    answer_shape(3), &
  6447       &    answer_shape(4), &
  6449       &    answer_shape(5)  )  &
  6453                             &    answer_shape(1), &
  6455       &    answer_shape(2), &
  6457       &    answer_shape(3), &
  6459       &    answer_shape(4), &
  6461       &    answer_shape(5)  )  &
  6464     allocate( judge_rev( &
  6465                             &    answer_shape(1), &
  6467       &    answer_shape(2), &
  6469       &    answer_shape(3), &
  6471       &    answer_shape(4), &
  6473       &    answer_shape(5)  )  &
  6476     allocate( answer_negative( &
  6477                             &    answer_shape(1), &
  6479       &    answer_shape(2), &
  6481       &    answer_shape(3), &
  6483       &    answer_shape(4), &
  6485       &    answer_shape(5)  )  &
  6488     allocate( check_negative( &
  6489                             &    answer_shape(1), &
  6491       &    answer_shape(2), &
  6493       &    answer_shape(3), &
  6495       &    answer_shape(4), &
  6497       &    answer_shape(5)  )  &
  6500     allocate( both_negative( &
  6501                             &    answer_shape(1), &
  6503       &    answer_shape(2), &
  6505       &    answer_shape(3), &
  6507       &    answer_shape(4), &
  6509       &    answer_shape(5)  )  &
  6512     allocate( answer_max( &
  6513                             &    answer_shape(1), &
  6515       &    answer_shape(2), &
  6517       &    answer_shape(3), &
  6519       &    answer_shape(4), &
  6521       &    answer_shape(5)  )  &
  6524     allocate( answer_min( &
  6525                             &    answer_shape(1), &
  6527       &    answer_shape(2), &
  6529       &    answer_shape(3), &
  6531       &    answer_shape(4), &
  6533       &    answer_shape(5)  )  &
  6536     answer_negative = answer < 0.0
  6537     check_negative = check < 0.0
  6538     both_negative = answer_negative .and. check_negative
  6540     where (both_negative)
  6544         &       - 0.1 ** significant_digits ) &
  6545         & + 0.1 ** (- ignore_digits)
  6550         &       + 0.1 ** significant_digits ) &
  6551         & - 0.1 ** (- ignore_digits)
  6556         &       + 0.1 ** significant_digits ) &
  6557         & + 0.1 ** (- ignore_digits)
  6562         &       - 0.1 ** significant_digits ) &
  6563         & - 0.1 ** (- ignore_digits)
  6566     judge = answer_max > check .and. check > answer_min
  6567     judge_rev = .not. judge
  6568     err_flag = any(judge_rev)
  6570     pos = maxloc(mask_array, judge_rev)
  6585       right_max = answer_max( &
  6596       right_min = answer_min( &
  6607       if ( right_max < right_min ) 
then  6608         right_tmp = right_max
  6609         right_max = right_min
  6610         right_min = right_tmp
  6613                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
  6615       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
  6617       write(unit=pos_array(3), fmt=
"(i20)") pos(3)
  6619       write(unit=pos_array(4), fmt=
"(i20)") pos(4)
  6621       write(unit=pos_array(5), fmt=
"(i20)") pos(5)
  6625                               &    trim(adjustl(pos_array(1))) // 
',' // &
  6627         &    trim(adjustl(pos_array(2))) // 
',' // &
  6629         &    trim(adjustl(pos_array(3))) // 
',' // &
  6631         &    trim(adjustl(pos_array(4))) // 
',' // &
  6633         &    trim(adjustl(pos_array(5))) // 
')'  6636     deallocate(mask_array, judge, judge_rev)
  6637     deallocate(answer_negative, check_negative, both_negative)
  6638     deallocate(answer_max, answer_min)
  6644       pos_str_len = len_trim(pos_str)
  6646       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  6648       write(*,*) 
'  check' // trim(pos_str)  // 
'  = ', wrong
  6649       write(*,*) 
'    is NOT EQUAL to'  6650       write(*,*) 
'        ' // pos_str_space(1:pos_str_len) &
  6651         &                                     // 
'   ', right_min, 
' < '  6652       write(*,*) 
'  answer' // trim(pos_str)  // 
' < ', right_max
  6656       write(*,*) 
' *** MESSAGE [AssertEQ] *** Checking ' // trim(message) // 
' OK'  6664     & message, answer, check, significant_digits, ignore_digits )
  6668     character(*), 
intent(in):: message
  6669     real, 
intent(in):: answer(:,:,:,:,:,:)
  6670     real, 
intent(in):: check(:,:,:,:,:,:)
  6671     integer, 
intent(in):: significant_digits
  6672     integer, 
intent(in):: ignore_digits
  6674     character(STRING):: pos_str
  6675     real:: wrong, right_max, right_min
  6676     character(STRING):: pos_str_space
  6677     integer:: pos_str_len
  6680                         integer:: answer_shape(6), check_shape(6), pos(6)
  6681     logical:: consist_shape(6)
  6682     character(TOKEN):: pos_array(6)
  6683     integer, 
allocatable:: mask_array(:,:,:,:,:,:)
  6684     logical, 
allocatable:: judge(:,:,:,:,:,:)
  6685     logical, 
allocatable:: judge_rev(:,:,:,:,:,:)
  6686     logical, 
allocatable:: answer_negative(:,:,:,:,:,:)
  6687     logical, 
allocatable:: check_negative(:,:,:,:,:,:)
  6688     logical, 
allocatable:: both_negative(:,:,:,:,:,:)
  6689     real, 
allocatable:: answer_max(:,:,:,:,:,:)
  6690     real, 
allocatable:: answer_min(:,:,:,:,:,:)
  6695     if ( significant_digits < 1 ) 
then  6696       write(*,*) 
' *** Error [AssertEQ] *** '  6697       write(*,*) 
'  Specify a number more than 1 to "significant_digits"'  6701     answer_shape = shape(answer)
  6702     check_shape = shape(check)
  6704     consist_shape = answer_shape == check_shape
  6706     if (.not. all(consist_shape)) 
then  6707       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  6709       write(*,*) 
'  shape of check is (', check_shape, 
')'  6710       write(*,*) 
'    is INCORRECT'  6711       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')'  6717     allocate( mask_array( &
  6718                             &    answer_shape(1), &
  6720       &    answer_shape(2), &
  6722       &    answer_shape(3), &
  6724       &    answer_shape(4), &
  6726       &    answer_shape(5), &
  6728       &    answer_shape(6)  )  &
  6732                             &    answer_shape(1), &
  6734       &    answer_shape(2), &
  6736       &    answer_shape(3), &
  6738       &    answer_shape(4), &
  6740       &    answer_shape(5), &
  6742       &    answer_shape(6)  )  &
  6745     allocate( judge_rev( &
  6746                             &    answer_shape(1), &
  6748       &    answer_shape(2), &
  6750       &    answer_shape(3), &
  6752       &    answer_shape(4), &
  6754       &    answer_shape(5), &
  6756       &    answer_shape(6)  )  &
  6759     allocate( answer_negative( &
  6760                             &    answer_shape(1), &
  6762       &    answer_shape(2), &
  6764       &    answer_shape(3), &
  6766       &    answer_shape(4), &
  6768       &    answer_shape(5), &
  6770       &    answer_shape(6)  )  &
  6773     allocate( check_negative( &
  6774                             &    answer_shape(1), &
  6776       &    answer_shape(2), &
  6778       &    answer_shape(3), &
  6780       &    answer_shape(4), &
  6782       &    answer_shape(5), &
  6784       &    answer_shape(6)  )  &
  6787     allocate( both_negative( &
  6788                             &    answer_shape(1), &
  6790       &    answer_shape(2), &
  6792       &    answer_shape(3), &
  6794       &    answer_shape(4), &
  6796       &    answer_shape(5), &
  6798       &    answer_shape(6)  )  &
  6801     allocate( answer_max( &
  6802                             &    answer_shape(1), &
  6804       &    answer_shape(2), &
  6806       &    answer_shape(3), &
  6808       &    answer_shape(4), &
  6810       &    answer_shape(5), &
  6812       &    answer_shape(6)  )  &
  6815     allocate( answer_min( &
  6816                             &    answer_shape(1), &
  6818       &    answer_shape(2), &
  6820       &    answer_shape(3), &
  6822       &    answer_shape(4), &
  6824       &    answer_shape(5), &
  6826       &    answer_shape(6)  )  &
  6829     answer_negative = answer < 0.0
  6830     check_negative = check < 0.0
  6831     both_negative = answer_negative .and. check_negative
  6833     where (both_negative)
  6837         &       - 0.1 ** significant_digits ) &
  6838         & + 0.1 ** (- ignore_digits)
  6843         &       + 0.1 ** significant_digits ) &
  6844         & - 0.1 ** (- ignore_digits)
  6849         &       + 0.1 ** significant_digits ) &
  6850         & + 0.1 ** (- ignore_digits)
  6855         &       - 0.1 ** significant_digits ) &
  6856         & - 0.1 ** (- ignore_digits)
  6859     judge = answer_max > check .and. check > answer_min
  6860     judge_rev = .not. judge
  6861     err_flag = any(judge_rev)
  6863     pos = maxloc(mask_array, judge_rev)
  6880       right_max = answer_max( &
  6893       right_min = answer_min( &
  6906       if ( right_max < right_min ) 
then  6907         right_tmp = right_max
  6908         right_max = right_min
  6909         right_min = right_tmp
  6912                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
  6914       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
  6916       write(unit=pos_array(3), fmt=
"(i20)") pos(3)
  6918       write(unit=pos_array(4), fmt=
"(i20)") pos(4)
  6920       write(unit=pos_array(5), fmt=
"(i20)") pos(5)
  6922       write(unit=pos_array(6), fmt=
"(i20)") pos(6)
  6926                               &    trim(adjustl(pos_array(1))) // 
',' // &
  6928         &    trim(adjustl(pos_array(2))) // 
',' // &
  6930         &    trim(adjustl(pos_array(3))) // 
',' // &
  6932         &    trim(adjustl(pos_array(4))) // 
',' // &
  6934         &    trim(adjustl(pos_array(5))) // 
',' // &
  6936         &    trim(adjustl(pos_array(6))) // 
')'  6939     deallocate(mask_array, judge, judge_rev)
  6940     deallocate(answer_negative, check_negative, both_negative)
  6941     deallocate(answer_max, answer_min)
  6947       pos_str_len = len_trim(pos_str)
  6949       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  6951       write(*,*) 
'  check' // trim(pos_str)  // 
'  = ', wrong
  6952       write(*,*) 
'    is NOT EQUAL to'  6953       write(*,*) 
'        ' // pos_str_space(1:pos_str_len) &
  6954         &                                     // 
'   ', right_min, 
' < '  6955       write(*,*) 
'  answer' // trim(pos_str)  // 
' < ', right_max
  6959       write(*,*) 
' *** MESSAGE [AssertEQ] *** Checking ' // trim(message) // 
' OK'  6967     & message, answer, check, significant_digits, ignore_digits )
  6971     character(*), 
intent(in):: message
  6972     real, 
intent(in):: answer(:,:,:,:,:,:,:)
  6973     real, 
intent(in):: check(:,:,:,:,:,:,:)
  6974     integer, 
intent(in):: significant_digits
  6975     integer, 
intent(in):: ignore_digits
  6977     character(STRING):: pos_str
  6978     real:: wrong, right_max, right_min
  6979     character(STRING):: pos_str_space
  6980     integer:: pos_str_len
  6983                         integer:: answer_shape(7), check_shape(7), pos(7)
  6984     logical:: consist_shape(7)
  6985     character(TOKEN):: pos_array(7)
  6986     integer, 
allocatable:: mask_array(:,:,:,:,:,:,:)
  6987     logical, 
allocatable:: judge(:,:,:,:,:,:,:)
  6988     logical, 
allocatable:: judge_rev(:,:,:,:,:,:,:)
  6989     logical, 
allocatable:: answer_negative(:,:,:,:,:,:,:)
  6990     logical, 
allocatable:: check_negative(:,:,:,:,:,:,:)
  6991     logical, 
allocatable:: both_negative(:,:,:,:,:,:,:)
  6992     real, 
allocatable:: answer_max(:,:,:,:,:,:,:)
  6993     real, 
allocatable:: answer_min(:,:,:,:,:,:,:)
  6998     if ( significant_digits < 1 ) 
then  6999       write(*,*) 
' *** Error [AssertEQ] *** '  7000       write(*,*) 
'  Specify a number more than 1 to "significant_digits"'  7004     answer_shape = shape(answer)
  7005     check_shape = shape(check)
  7007     consist_shape = answer_shape == check_shape
  7009     if (.not. all(consist_shape)) 
then  7010       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  7012       write(*,*) 
'  shape of check is (', check_shape, 
')'  7013       write(*,*) 
'    is INCORRECT'  7014       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')'  7020     allocate( mask_array( &
  7021                             &    answer_shape(1), &
  7023       &    answer_shape(2), &
  7025       &    answer_shape(3), &
  7027       &    answer_shape(4), &
  7029       &    answer_shape(5), &
  7031       &    answer_shape(6), &
  7033       &    answer_shape(7)  )  &
  7037                             &    answer_shape(1), &
  7039       &    answer_shape(2), &
  7041       &    answer_shape(3), &
  7043       &    answer_shape(4), &
  7045       &    answer_shape(5), &
  7047       &    answer_shape(6), &
  7049       &    answer_shape(7)  )  &
  7052     allocate( judge_rev( &
  7053                             &    answer_shape(1), &
  7055       &    answer_shape(2), &
  7057       &    answer_shape(3), &
  7059       &    answer_shape(4), &
  7061       &    answer_shape(5), &
  7063       &    answer_shape(6), &
  7065       &    answer_shape(7)  )  &
  7068     allocate( answer_negative( &
  7069                             &    answer_shape(1), &
  7071       &    answer_shape(2), &
  7073       &    answer_shape(3), &
  7075       &    answer_shape(4), &
  7077       &    answer_shape(5), &
  7079       &    answer_shape(6), &
  7081       &    answer_shape(7)  )  &
  7084     allocate( check_negative( &
  7085                             &    answer_shape(1), &
  7087       &    answer_shape(2), &
  7089       &    answer_shape(3), &
  7091       &    answer_shape(4), &
  7093       &    answer_shape(5), &
  7095       &    answer_shape(6), &
  7097       &    answer_shape(7)  )  &
  7100     allocate( both_negative( &
  7101                             &    answer_shape(1), &
  7103       &    answer_shape(2), &
  7105       &    answer_shape(3), &
  7107       &    answer_shape(4), &
  7109       &    answer_shape(5), &
  7111       &    answer_shape(6), &
  7113       &    answer_shape(7)  )  &
  7116     allocate( answer_max( &
  7117                             &    answer_shape(1), &
  7119       &    answer_shape(2), &
  7121       &    answer_shape(3), &
  7123       &    answer_shape(4), &
  7125       &    answer_shape(5), &
  7127       &    answer_shape(6), &
  7129       &    answer_shape(7)  )  &
  7132     allocate( answer_min( &
  7133                             &    answer_shape(1), &
  7135       &    answer_shape(2), &
  7137       &    answer_shape(3), &
  7139       &    answer_shape(4), &
  7141       &    answer_shape(5), &
  7143       &    answer_shape(6), &
  7145       &    answer_shape(7)  )  &
  7148     answer_negative = answer < 0.0
  7149     check_negative = check < 0.0
  7150     both_negative = answer_negative .and. check_negative
  7152     where (both_negative)
  7156         &       - 0.1 ** significant_digits ) &
  7157         & + 0.1 ** (- ignore_digits)
  7162         &       + 0.1 ** significant_digits ) &
  7163         & - 0.1 ** (- ignore_digits)
  7168         &       + 0.1 ** significant_digits ) &
  7169         & + 0.1 ** (- ignore_digits)
  7174         &       - 0.1 ** significant_digits ) &
  7175         & - 0.1 ** (- ignore_digits)
  7178     judge = answer_max > check .and. check > answer_min
  7179     judge_rev = .not. judge
  7180     err_flag = any(judge_rev)
  7182     pos = maxloc(mask_array, judge_rev)
  7201       right_max = answer_max( &
  7216       right_min = answer_min( &
  7231       if ( right_max < right_min ) 
then  7232         right_tmp = right_max
  7233         right_max = right_min
  7234         right_min = right_tmp
  7237                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
  7239       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
  7241       write(unit=pos_array(3), fmt=
"(i20)") pos(3)
  7243       write(unit=pos_array(4), fmt=
"(i20)") pos(4)
  7245       write(unit=pos_array(5), fmt=
"(i20)") pos(5)
  7247       write(unit=pos_array(6), fmt=
"(i20)") pos(6)
  7249       write(unit=pos_array(7), fmt=
"(i20)") pos(7)
  7253                               &    trim(adjustl(pos_array(1))) // 
',' // &
  7255         &    trim(adjustl(pos_array(2))) // 
',' // &
  7257         &    trim(adjustl(pos_array(3))) // 
',' // &
  7259         &    trim(adjustl(pos_array(4))) // 
',' // &
  7261         &    trim(adjustl(pos_array(5))) // 
',' // &
  7263         &    trim(adjustl(pos_array(6))) // 
',' // &
  7265         &    trim(adjustl(pos_array(7))) // 
')'  7268     deallocate(mask_array, judge, judge_rev)
  7269     deallocate(answer_negative, check_negative, both_negative)
  7270     deallocate(answer_max, answer_min)
  7276       pos_str_len = len_trim(pos_str)
  7278       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  7280       write(*,*) 
'  check' // trim(pos_str)  // 
'  = ', wrong
  7281       write(*,*) 
'    is NOT EQUAL to'  7282       write(*,*) 
'        ' // pos_str_space(1:pos_str_len) &
  7283         &                                     // 
'   ', right_min, 
' < '  7284       write(*,*) 
'  answer' // trim(pos_str)  // 
' < ', right_max
  7288       write(*,*) 
' *** MESSAGE [AssertEQ] *** Checking ' // trim(message) // 
' OK'  7296     & message, answer, check, significant_digits, ignore_digits )
  7300     character(*), 
intent(in):: message
  7301     real(DP), 
intent(in):: answer
  7302     real(DP), 
intent(in):: check
  7303     integer, 
intent(in):: significant_digits
  7304     integer, 
intent(in):: ignore_digits
  7306     character(STRING):: pos_str
  7307     real(DP):: wrong, right_max, right_min
  7308     character(STRING):: pos_str_space
  7309     integer:: pos_str_len
  7310     real(DP):: right_tmp
  7312                         real(DP):: answer_max
  7313     real(DP):: answer_min
  7318     if ( significant_digits < 1 ) 
then  7319       write(*,*) 
' *** Error [AssertEQ] *** '  7320       write(*,*) 
'  Specify a number more than 1 to "significant_digits"'  7324     if ( answer < 0.0_dp .and. check < 0.0_dp ) 
then  7328         &       - 0.1_dp ** significant_digits ) &
  7329         & + 0.1_dp ** (- ignore_digits)
  7334         &       + 0.1_dp ** significant_digits ) &
  7335         & - 0.1_dp ** (- ignore_digits)
  7341         &       + 0.1_dp ** significant_digits ) &
  7342         & + 0.1_dp ** (- ignore_digits)
  7347         &       - 0.1_dp ** significant_digits ) &
  7348         & - 0.1_dp ** (- ignore_digits)
  7352     right_max = answer_max
  7353     right_min = answer_min
  7354     if ( right_max < right_min ) 
then  7355       right_tmp = right_max
  7356       right_max = right_min
  7357       right_min = right_tmp
  7360     err_flag = .not. (answer_max > check .and. check > answer_min)
  7368       pos_str_len = len_trim(pos_str)
  7370       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  7372       write(*,*) 
'  check' // trim(pos_str)  // 
'  = ', wrong
  7373       write(*,*) 
'    is NOT EQUAL to'  7374       write(*,*) 
'        ' // pos_str_space(1:pos_str_len) &
  7375         &                                     // 
'   ', right_min, 
' < '  7376       write(*,*) 
'  answer' // trim(pos_str)  // 
' < ', right_max
  7380       write(*,*) 
' *** MESSAGE [AssertEQ] *** Checking ' // trim(message) // 
' OK'  7388     & message, answer, check, significant_digits, ignore_digits )
  7392     character(*), 
intent(in):: message
  7393     real(DP), 
intent(in):: answer(:)
  7394     real(DP), 
intent(in):: check(:)
  7395     integer, 
intent(in):: significant_digits
  7396     integer, 
intent(in):: ignore_digits
  7398     character(STRING):: pos_str
  7399     real(DP):: wrong, right_max, right_min
  7400     character(STRING):: pos_str_space
  7401     integer:: pos_str_len
  7402     real(DP):: right_tmp
  7404                         integer:: answer_shape(1), check_shape(1), pos(1)
  7405     logical:: consist_shape(1)
  7406     character(TOKEN):: pos_array(1)
  7407     integer, 
allocatable:: mask_array(:)
  7408     logical, 
allocatable:: judge(:)
  7409     logical, 
allocatable:: judge_rev(:)
  7410     logical, 
allocatable:: answer_negative(:)
  7411     logical, 
allocatable:: check_negative(:)
  7412     logical, 
allocatable:: both_negative(:)
  7413     real(DP), 
allocatable:: answer_max(:)
  7414     real(DP), 
allocatable:: answer_min(:)
  7419     if ( significant_digits < 1 ) 
then  7420       write(*,*) 
' *** Error [AssertEQ] *** '  7421       write(*,*) 
'  Specify a number more than 1 to "significant_digits"'  7425     answer_shape = shape(answer)
  7426     check_shape = shape(check)
  7428     consist_shape = answer_shape == check_shape
  7430     if (.not. all(consist_shape)) 
then  7431       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  7433       write(*,*) 
'  shape of check is (', check_shape, 
')'  7434       write(*,*) 
'    is INCORRECT'  7435       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')'  7441     allocate( mask_array( &
  7443       &    answer_shape(1)  )  &
  7448       &    answer_shape(1)  )  &
  7451     allocate( judge_rev( &
  7453       &    answer_shape(1)  )  &
  7456     allocate( answer_negative( &
  7458       &    answer_shape(1)  )  &
  7461     allocate( check_negative( &
  7463       &    answer_shape(1)  )  &
  7466     allocate( both_negative( &
  7468       &    answer_shape(1)  )  &
  7471     allocate( answer_max( &
  7473       &    answer_shape(1)  )  &
  7476     allocate( answer_min( &
  7478       &    answer_shape(1)  )  &
  7481     answer_negative = answer < 0.0_dp
  7482     check_negative = check < 0.0_dp
  7483     both_negative = answer_negative .and. check_negative
  7485     where (both_negative)
  7489         &       - 0.1_dp ** significant_digits ) &
  7490         & + 0.1_dp ** (- ignore_digits)
  7495         &       + 0.1_dp ** significant_digits ) &
  7496         & - 0.1_dp ** (- ignore_digits)
  7501         &       + 0.1_dp ** significant_digits ) &
  7502         & + 0.1_dp ** (- ignore_digits)
  7507         &       - 0.1_dp ** significant_digits ) &
  7508         & - 0.1_dp ** (- ignore_digits)
  7511     judge = answer_max > check .and. check > answer_min
  7512     judge_rev = .not. judge
  7513     err_flag = any(judge_rev)
  7515     pos = maxloc(mask_array, judge_rev)
  7523       right_max = answer_max( &
  7527       right_min = answer_min( &
  7531       if ( right_max < right_min ) 
then  7532         right_tmp = right_max
  7533         right_max = right_min
  7534         right_min = right_tmp
  7537                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
  7542         &    trim(adjustl(pos_array(1))) // 
')'  7545     deallocate(mask_array, judge, judge_rev)
  7546     deallocate(answer_negative, check_negative, both_negative)
  7547     deallocate(answer_max, answer_min)
  7553       pos_str_len = len_trim(pos_str)
  7555       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  7557       write(*,*) 
'  check' // trim(pos_str)  // 
'  = ', wrong
  7558       write(*,*) 
'    is NOT EQUAL to'  7559       write(*,*) 
'        ' // pos_str_space(1:pos_str_len) &
  7560         &                                     // 
'   ', right_min, 
' < '  7561       write(*,*) 
'  answer' // trim(pos_str)  // 
' < ', right_max
  7565       write(*,*) 
' *** MESSAGE [AssertEQ] *** Checking ' // trim(message) // 
' OK'  7573     & message, answer, check, significant_digits, ignore_digits )
  7577     character(*), 
intent(in):: message
  7578     real(DP), 
intent(in):: answer(:,:)
  7579     real(DP), 
intent(in):: check(:,:)
  7580     integer, 
intent(in):: significant_digits
  7581     integer, 
intent(in):: ignore_digits
  7583     character(STRING):: pos_str
  7584     real(DP):: wrong, right_max, right_min
  7585     character(STRING):: pos_str_space
  7586     integer:: pos_str_len
  7587     real(DP):: right_tmp
  7589                         integer:: answer_shape(2), check_shape(2), pos(2)
  7590     logical:: consist_shape(2)
  7591     character(TOKEN):: pos_array(2)
  7592     integer, 
allocatable:: mask_array(:,:)
  7593     logical, 
allocatable:: judge(:,:)
  7594     logical, 
allocatable:: judge_rev(:,:)
  7595     logical, 
allocatable:: answer_negative(:,:)
  7596     logical, 
allocatable:: check_negative(:,:)
  7597     logical, 
allocatable:: both_negative(:,:)
  7598     real(DP), 
allocatable:: answer_max(:,:)
  7599     real(DP), 
allocatable:: answer_min(:,:)
  7604     if ( significant_digits < 1 ) 
then  7605       write(*,*) 
' *** Error [AssertEQ] *** '  7606       write(*,*) 
'  Specify a number more than 1 to "significant_digits"'  7610     answer_shape = shape(answer)
  7611     check_shape = shape(check)
  7613     consist_shape = answer_shape == check_shape
  7615     if (.not. all(consist_shape)) 
then  7616       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  7618       write(*,*) 
'  shape of check is (', check_shape, 
')'  7619       write(*,*) 
'    is INCORRECT'  7620       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')'  7626     allocate( mask_array( &
  7627                             &    answer_shape(1), &
  7629       &    answer_shape(2)  )  &
  7633                             &    answer_shape(1), &
  7635       &    answer_shape(2)  )  &
  7638     allocate( judge_rev( &
  7639                             &    answer_shape(1), &
  7641       &    answer_shape(2)  )  &
  7644     allocate( answer_negative( &
  7645                             &    answer_shape(1), &
  7647       &    answer_shape(2)  )  &
  7650     allocate( check_negative( &
  7651                             &    answer_shape(1), &
  7653       &    answer_shape(2)  )  &
  7656     allocate( both_negative( &
  7657                             &    answer_shape(1), &
  7659       &    answer_shape(2)  )  &
  7662     allocate( answer_max( &
  7663                             &    answer_shape(1), &
  7665       &    answer_shape(2)  )  &
  7668     allocate( answer_min( &
  7669                             &    answer_shape(1), &
  7671       &    answer_shape(2)  )  &
  7674     answer_negative = answer < 0.0_dp
  7675     check_negative = check < 0.0_dp
  7676     both_negative = answer_negative .and. check_negative
  7678     where (both_negative)
  7682         &       - 0.1_dp ** significant_digits ) &
  7683         & + 0.1_dp ** (- ignore_digits)
  7688         &       + 0.1_dp ** significant_digits ) &
  7689         & - 0.1_dp ** (- ignore_digits)
  7694         &       + 0.1_dp ** significant_digits ) &
  7695         & + 0.1_dp ** (- ignore_digits)
  7700         &       - 0.1_dp ** significant_digits ) &
  7701         & - 0.1_dp ** (- ignore_digits)
  7704     judge = answer_max > check .and. check > answer_min
  7705     judge_rev = .not. judge
  7706     err_flag = any(judge_rev)
  7708     pos = maxloc(mask_array, judge_rev)
  7717       right_max = answer_max( &
  7722       right_min = answer_min( &
  7727       if ( right_max < right_min ) 
then  7728         right_tmp = right_max
  7729         right_max = right_min
  7730         right_min = right_tmp
  7733                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
  7735       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
  7739                               &    trim(adjustl(pos_array(1))) // 
',' // &
  7741         &    trim(adjustl(pos_array(2))) // 
')'  7744     deallocate(mask_array, judge, judge_rev)
  7745     deallocate(answer_negative, check_negative, both_negative)
  7746     deallocate(answer_max, answer_min)
  7752       pos_str_len = len_trim(pos_str)
  7754       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  7756       write(*,*) 
'  check' // trim(pos_str)  // 
'  = ', wrong
  7757       write(*,*) 
'    is NOT EQUAL to'  7758       write(*,*) 
'        ' // pos_str_space(1:pos_str_len) &
  7759         &                                     // 
'   ', right_min, 
' < '  7760       write(*,*) 
'  answer' // trim(pos_str)  // 
' < ', right_max
  7764       write(*,*) 
' *** MESSAGE [AssertEQ] *** Checking ' // trim(message) // 
' OK'  7772     & message, answer, check, significant_digits, ignore_digits )
  7776     character(*), 
intent(in):: message
  7777     real(DP), 
intent(in):: answer(:,:,:)
  7778     real(DP), 
intent(in):: check(:,:,:)
  7779     integer, 
intent(in):: significant_digits
  7780     integer, 
intent(in):: ignore_digits
  7782     character(STRING):: pos_str
  7783     real(DP):: wrong, right_max, right_min
  7784     character(STRING):: pos_str_space
  7785     integer:: pos_str_len
  7786     real(DP):: right_tmp
  7788                         integer:: answer_shape(3), check_shape(3), pos(3)
  7789     logical:: consist_shape(3)
  7790     character(TOKEN):: pos_array(3)
  7791     integer, 
allocatable:: mask_array(:,:,:)
  7792     logical, 
allocatable:: judge(:,:,:)
  7793     logical, 
allocatable:: judge_rev(:,:,:)
  7794     logical, 
allocatable:: answer_negative(:,:,:)
  7795     logical, 
allocatable:: check_negative(:,:,:)
  7796     logical, 
allocatable:: both_negative(:,:,:)
  7797     real(DP), 
allocatable:: answer_max(:,:,:)
  7798     real(DP), 
allocatable:: answer_min(:,:,:)
  7803     if ( significant_digits < 1 ) 
then  7804       write(*,*) 
' *** Error [AssertEQ] *** '  7805       write(*,*) 
'  Specify a number more than 1 to "significant_digits"'  7809     answer_shape = shape(answer)
  7810     check_shape = shape(check)
  7812     consist_shape = answer_shape == check_shape
  7814     if (.not. all(consist_shape)) 
then  7815       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  7817       write(*,*) 
'  shape of check is (', check_shape, 
')'  7818       write(*,*) 
'    is INCORRECT'  7819       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')'  7825     allocate( mask_array( &
  7826                             &    answer_shape(1), &
  7828       &    answer_shape(2), &
  7830       &    answer_shape(3)  )  &
  7834                             &    answer_shape(1), &
  7836       &    answer_shape(2), &
  7838       &    answer_shape(3)  )  &
  7841     allocate( judge_rev( &
  7842                             &    answer_shape(1), &
  7844       &    answer_shape(2), &
  7846       &    answer_shape(3)  )  &
  7849     allocate( answer_negative( &
  7850                             &    answer_shape(1), &
  7852       &    answer_shape(2), &
  7854       &    answer_shape(3)  )  &
  7857     allocate( check_negative( &
  7858                             &    answer_shape(1), &
  7860       &    answer_shape(2), &
  7862       &    answer_shape(3)  )  &
  7865     allocate( both_negative( &
  7866                             &    answer_shape(1), &
  7868       &    answer_shape(2), &
  7870       &    answer_shape(3)  )  &
  7873     allocate( answer_max( &
  7874                             &    answer_shape(1), &
  7876       &    answer_shape(2), &
  7878       &    answer_shape(3)  )  &
  7881     allocate( answer_min( &
  7882                             &    answer_shape(1), &
  7884       &    answer_shape(2), &
  7886       &    answer_shape(3)  )  &
  7889     answer_negative = answer < 0.0_dp
  7890     check_negative = check < 0.0_dp
  7891     both_negative = answer_negative .and. check_negative
  7893     where (both_negative)
  7897         &       - 0.1_dp ** significant_digits ) &
  7898         & + 0.1_dp ** (- ignore_digits)
  7903         &       + 0.1_dp ** significant_digits ) &
  7904         & - 0.1_dp ** (- ignore_digits)
  7909         &       + 0.1_dp ** significant_digits ) &
  7910         & + 0.1_dp ** (- ignore_digits)
  7915         &       - 0.1_dp ** significant_digits ) &
  7916         & - 0.1_dp ** (- ignore_digits)
  7919     judge = answer_max > check .and. check > answer_min
  7920     judge_rev = .not. judge
  7921     err_flag = any(judge_rev)
  7923     pos = maxloc(mask_array, judge_rev)
  7934       right_max = answer_max( &
  7941       right_min = answer_min( &
  7948       if ( right_max < right_min ) 
then  7949         right_tmp = right_max
  7950         right_max = right_min
  7951         right_min = right_tmp
  7954                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
  7956       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
  7958       write(unit=pos_array(3), fmt=
"(i20)") pos(3)
  7962                               &    trim(adjustl(pos_array(1))) // 
',' // &
  7964         &    trim(adjustl(pos_array(2))) // 
',' // &
  7966         &    trim(adjustl(pos_array(3))) // 
')'  7969     deallocate(mask_array, judge, judge_rev)
  7970     deallocate(answer_negative, check_negative, both_negative)
  7971     deallocate(answer_max, answer_min)
  7977       pos_str_len = len_trim(pos_str)
  7979       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  7981       write(*,*) 
'  check' // trim(pos_str)  // 
'  = ', wrong
  7982       write(*,*) 
'    is NOT EQUAL to'  7983       write(*,*) 
'        ' // pos_str_space(1:pos_str_len) &
  7984         &                                     // 
'   ', right_min, 
' < '  7985       write(*,*) 
'  answer' // trim(pos_str)  // 
' < ', right_max
  7989       write(*,*) 
' *** MESSAGE [AssertEQ] *** Checking ' // trim(message) // 
' OK'  7997     & message, answer, check, significant_digits, ignore_digits )
  8001     character(*), 
intent(in):: message
  8002     real(DP), 
intent(in):: answer(:,:,:,:)
  8003     real(DP), 
intent(in):: check(:,:,:,:)
  8004     integer, 
intent(in):: significant_digits
  8005     integer, 
intent(in):: ignore_digits
  8007     character(STRING):: pos_str
  8008     real(DP):: wrong, right_max, right_min
  8009     character(STRING):: pos_str_space
  8010     integer:: pos_str_len
  8011     real(DP):: right_tmp
  8013                         integer:: answer_shape(4), check_shape(4), pos(4)
  8014     logical:: consist_shape(4)
  8015     character(TOKEN):: pos_array(4)
  8016     integer, 
allocatable:: mask_array(:,:,:,:)
  8017     logical, 
allocatable:: judge(:,:,:,:)
  8018     logical, 
allocatable:: judge_rev(:,:,:,:)
  8019     logical, 
allocatable:: answer_negative(:,:,:,:)
  8020     logical, 
allocatable:: check_negative(:,:,:,:)
  8021     logical, 
allocatable:: both_negative(:,:,:,:)
  8022     real(DP), 
allocatable:: answer_max(:,:,:,:)
  8023     real(DP), 
allocatable:: answer_min(:,:,:,:)
  8028     if ( significant_digits < 1 ) 
then  8029       write(*,*) 
' *** Error [AssertEQ] *** '  8030       write(*,*) 
'  Specify a number more than 1 to "significant_digits"'  8034     answer_shape = shape(answer)
  8035     check_shape = shape(check)
  8037     consist_shape = answer_shape == check_shape
  8039     if (.not. all(consist_shape)) 
then  8040       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  8042       write(*,*) 
'  shape of check is (', check_shape, 
')'  8043       write(*,*) 
'    is INCORRECT'  8044       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')'  8050     allocate( mask_array( &
  8051                             &    answer_shape(1), &
  8053       &    answer_shape(2), &
  8055       &    answer_shape(3), &
  8057       &    answer_shape(4)  )  &
  8061                             &    answer_shape(1), &
  8063       &    answer_shape(2), &
  8065       &    answer_shape(3), &
  8067       &    answer_shape(4)  )  &
  8070     allocate( judge_rev( &
  8071                             &    answer_shape(1), &
  8073       &    answer_shape(2), &
  8075       &    answer_shape(3), &
  8077       &    answer_shape(4)  )  &
  8080     allocate( answer_negative( &
  8081                             &    answer_shape(1), &
  8083       &    answer_shape(2), &
  8085       &    answer_shape(3), &
  8087       &    answer_shape(4)  )  &
  8090     allocate( check_negative( &
  8091                             &    answer_shape(1), &
  8093       &    answer_shape(2), &
  8095       &    answer_shape(3), &
  8097       &    answer_shape(4)  )  &
  8100     allocate( both_negative( &
  8101                             &    answer_shape(1), &
  8103       &    answer_shape(2), &
  8105       &    answer_shape(3), &
  8107       &    answer_shape(4)  )  &
  8110     allocate( answer_max( &
  8111                             &    answer_shape(1), &
  8113       &    answer_shape(2), &
  8115       &    answer_shape(3), &
  8117       &    answer_shape(4)  )  &
  8120     allocate( answer_min( &
  8121                             &    answer_shape(1), &
  8123       &    answer_shape(2), &
  8125       &    answer_shape(3), &
  8127       &    answer_shape(4)  )  &
  8130     answer_negative = answer < 0.0_dp
  8131     check_negative = check < 0.0_dp
  8132     both_negative = answer_negative .and. check_negative
  8134     where (both_negative)
  8138         &       - 0.1_dp ** significant_digits ) &
  8139         & + 0.1_dp ** (- ignore_digits)
  8144         &       + 0.1_dp ** significant_digits ) &
  8145         & - 0.1_dp ** (- ignore_digits)
  8150         &       + 0.1_dp ** significant_digits ) &
  8151         & + 0.1_dp ** (- ignore_digits)
  8156         &       - 0.1_dp ** significant_digits ) &
  8157         & - 0.1_dp ** (- ignore_digits)
  8160     judge = answer_max > check .and. check > answer_min
  8161     judge_rev = .not. judge
  8162     err_flag = any(judge_rev)
  8164     pos = maxloc(mask_array, judge_rev)
  8177       right_max = answer_max( &
  8186       right_min = answer_min( &
  8195       if ( right_max < right_min ) 
then  8196         right_tmp = right_max
  8197         right_max = right_min
  8198         right_min = right_tmp
  8201                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
  8203       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
  8205       write(unit=pos_array(3), fmt=
"(i20)") pos(3)
  8207       write(unit=pos_array(4), fmt=
"(i20)") pos(4)
  8211                               &    trim(adjustl(pos_array(1))) // 
',' // &
  8213         &    trim(adjustl(pos_array(2))) // 
',' // &
  8215         &    trim(adjustl(pos_array(3))) // 
',' // &
  8217         &    trim(adjustl(pos_array(4))) // 
')'  8220     deallocate(mask_array, judge, judge_rev)
  8221     deallocate(answer_negative, check_negative, both_negative)
  8222     deallocate(answer_max, answer_min)
  8228       pos_str_len = len_trim(pos_str)
  8230       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  8232       write(*,*) 
'  check' // trim(pos_str)  // 
'  = ', wrong
  8233       write(*,*) 
'    is NOT EQUAL to'  8234       write(*,*) 
'        ' // pos_str_space(1:pos_str_len) &
  8235         &                                     // 
'   ', right_min, 
' < '  8236       write(*,*) 
'  answer' // trim(pos_str)  // 
' < ', right_max
  8240       write(*,*) 
' *** MESSAGE [AssertEQ] *** Checking ' // trim(message) // 
' OK'  8248     & message, answer, check, significant_digits, ignore_digits )
  8252     character(*), 
intent(in):: message
  8253     real(DP), 
intent(in):: answer(:,:,:,:,:)
  8254     real(DP), 
intent(in):: check(:,:,:,:,:)
  8255     integer, 
intent(in):: significant_digits
  8256     integer, 
intent(in):: ignore_digits
  8258     character(STRING):: pos_str
  8259     real(DP):: wrong, right_max, right_min
  8260     character(STRING):: pos_str_space
  8261     integer:: pos_str_len
  8262     real(DP):: right_tmp
  8264                         integer:: answer_shape(5), check_shape(5), pos(5)
  8265     logical:: consist_shape(5)
  8266     character(TOKEN):: pos_array(5)
  8267     integer, 
allocatable:: mask_array(:,:,:,:,:)
  8268     logical, 
allocatable:: judge(:,:,:,:,:)
  8269     logical, 
allocatable:: judge_rev(:,:,:,:,:)
  8270     logical, 
allocatable:: answer_negative(:,:,:,:,:)
  8271     logical, 
allocatable:: check_negative(:,:,:,:,:)
  8272     logical, 
allocatable:: both_negative(:,:,:,:,:)
  8273     real(DP), 
allocatable:: answer_max(:,:,:,:,:)
  8274     real(DP), 
allocatable:: answer_min(:,:,:,:,:)
  8279     if ( significant_digits < 1 ) 
then  8280       write(*,*) 
' *** Error [AssertEQ] *** '  8281       write(*,*) 
'  Specify a number more than 1 to "significant_digits"'  8285     answer_shape = shape(answer)
  8286     check_shape = shape(check)
  8288     consist_shape = answer_shape == check_shape
  8290     if (.not. all(consist_shape)) 
then  8291       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  8293       write(*,*) 
'  shape of check is (', check_shape, 
')'  8294       write(*,*) 
'    is INCORRECT'  8295       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')'  8301     allocate( mask_array( &
  8302                             &    answer_shape(1), &
  8304       &    answer_shape(2), &
  8306       &    answer_shape(3), &
  8308       &    answer_shape(4), &
  8310       &    answer_shape(5)  )  &
  8314                             &    answer_shape(1), &
  8316       &    answer_shape(2), &
  8318       &    answer_shape(3), &
  8320       &    answer_shape(4), &
  8322       &    answer_shape(5)  )  &
  8325     allocate( judge_rev( &
  8326                             &    answer_shape(1), &
  8328       &    answer_shape(2), &
  8330       &    answer_shape(3), &
  8332       &    answer_shape(4), &
  8334       &    answer_shape(5)  )  &
  8337     allocate( answer_negative( &
  8338                             &    answer_shape(1), &
  8340       &    answer_shape(2), &
  8342       &    answer_shape(3), &
  8344       &    answer_shape(4), &
  8346       &    answer_shape(5)  )  &
  8349     allocate( check_negative( &
  8350                             &    answer_shape(1), &
  8352       &    answer_shape(2), &
  8354       &    answer_shape(3), &
  8356       &    answer_shape(4), &
  8358       &    answer_shape(5)  )  &
  8361     allocate( both_negative( &
  8362                             &    answer_shape(1), &
  8364       &    answer_shape(2), &
  8366       &    answer_shape(3), &
  8368       &    answer_shape(4), &
  8370       &    answer_shape(5)  )  &
  8373     allocate( answer_max( &
  8374                             &    answer_shape(1), &
  8376       &    answer_shape(2), &
  8378       &    answer_shape(3), &
  8380       &    answer_shape(4), &
  8382       &    answer_shape(5)  )  &
  8385     allocate( answer_min( &
  8386                             &    answer_shape(1), &
  8388       &    answer_shape(2), &
  8390       &    answer_shape(3), &
  8392       &    answer_shape(4), &
  8394       &    answer_shape(5)  )  &
  8397     answer_negative = answer < 0.0_dp
  8398     check_negative = check < 0.0_dp
  8399     both_negative = answer_negative .and. check_negative
  8401     where (both_negative)
  8405         &       - 0.1_dp ** significant_digits ) &
  8406         & + 0.1_dp ** (- ignore_digits)
  8411         &       + 0.1_dp ** significant_digits ) &
  8412         & - 0.1_dp ** (- ignore_digits)
  8417         &       + 0.1_dp ** significant_digits ) &
  8418         & + 0.1_dp ** (- ignore_digits)
  8423         &       - 0.1_dp ** significant_digits ) &
  8424         & - 0.1_dp ** (- ignore_digits)
  8427     judge = answer_max > check .and. check > answer_min
  8428     judge_rev = .not. judge
  8429     err_flag = any(judge_rev)
  8431     pos = maxloc(mask_array, judge_rev)
  8446       right_max = answer_max( &
  8457       right_min = answer_min( &
  8468       if ( right_max < right_min ) 
then  8469         right_tmp = right_max
  8470         right_max = right_min
  8471         right_min = right_tmp
  8474                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
  8476       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
  8478       write(unit=pos_array(3), fmt=
"(i20)") pos(3)
  8480       write(unit=pos_array(4), fmt=
"(i20)") pos(4)
  8482       write(unit=pos_array(5), fmt=
"(i20)") pos(5)
  8486                               &    trim(adjustl(pos_array(1))) // 
',' // &
  8488         &    trim(adjustl(pos_array(2))) // 
',' // &
  8490         &    trim(adjustl(pos_array(3))) // 
',' // &
  8492         &    trim(adjustl(pos_array(4))) // 
',' // &
  8494         &    trim(adjustl(pos_array(5))) // 
')'  8497     deallocate(mask_array, judge, judge_rev)
  8498     deallocate(answer_negative, check_negative, both_negative)
  8499     deallocate(answer_max, answer_min)
  8505       pos_str_len = len_trim(pos_str)
  8507       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  8509       write(*,*) 
'  check' // trim(pos_str)  // 
'  = ', wrong
  8510       write(*,*) 
'    is NOT EQUAL to'  8511       write(*,*) 
'        ' // pos_str_space(1:pos_str_len) &
  8512         &                                     // 
'   ', right_min, 
' < '  8513       write(*,*) 
'  answer' // trim(pos_str)  // 
' < ', right_max
  8517       write(*,*) 
' *** MESSAGE [AssertEQ] *** Checking ' // trim(message) // 
' OK'  8525     & message, answer, check, significant_digits, ignore_digits )
  8529     character(*), 
intent(in):: message
  8530     real(DP), 
intent(in):: answer(:,:,:,:,:,:)
  8531     real(DP), 
intent(in):: check(:,:,:,:,:,:)
  8532     integer, 
intent(in):: significant_digits
  8533     integer, 
intent(in):: ignore_digits
  8535     character(STRING):: pos_str
  8536     real(DP):: wrong, right_max, right_min
  8537     character(STRING):: pos_str_space
  8538     integer:: pos_str_len
  8539     real(DP):: right_tmp
  8541                         integer:: answer_shape(6), check_shape(6), pos(6)
  8542     logical:: consist_shape(6)
  8543     character(TOKEN):: pos_array(6)
  8544     integer, 
allocatable:: mask_array(:,:,:,:,:,:)
  8545     logical, 
allocatable:: judge(:,:,:,:,:,:)
  8546     logical, 
allocatable:: judge_rev(:,:,:,:,:,:)
  8547     logical, 
allocatable:: answer_negative(:,:,:,:,:,:)
  8548     logical, 
allocatable:: check_negative(:,:,:,:,:,:)
  8549     logical, 
allocatable:: both_negative(:,:,:,:,:,:)
  8550     real(DP), 
allocatable:: answer_max(:,:,:,:,:,:)
  8551     real(DP), 
allocatable:: answer_min(:,:,:,:,:,:)
  8556     if ( significant_digits < 1 ) 
then  8557       write(*,*) 
' *** Error [AssertEQ] *** '  8558       write(*,*) 
'  Specify a number more than 1 to "significant_digits"'  8562     answer_shape = shape(answer)
  8563     check_shape = shape(check)
  8565     consist_shape = answer_shape == check_shape
  8567     if (.not. all(consist_shape)) 
then  8568       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  8570       write(*,*) 
'  shape of check is (', check_shape, 
')'  8571       write(*,*) 
'    is INCORRECT'  8572       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')'  8578     allocate( mask_array( &
  8579                             &    answer_shape(1), &
  8581       &    answer_shape(2), &
  8583       &    answer_shape(3), &
  8585       &    answer_shape(4), &
  8587       &    answer_shape(5), &
  8589       &    answer_shape(6)  )  &
  8593                             &    answer_shape(1), &
  8595       &    answer_shape(2), &
  8597       &    answer_shape(3), &
  8599       &    answer_shape(4), &
  8601       &    answer_shape(5), &
  8603       &    answer_shape(6)  )  &
  8606     allocate( judge_rev( &
  8607                             &    answer_shape(1), &
  8609       &    answer_shape(2), &
  8611       &    answer_shape(3), &
  8613       &    answer_shape(4), &
  8615       &    answer_shape(5), &
  8617       &    answer_shape(6)  )  &
  8620     allocate( answer_negative( &
  8621                             &    answer_shape(1), &
  8623       &    answer_shape(2), &
  8625       &    answer_shape(3), &
  8627       &    answer_shape(4), &
  8629       &    answer_shape(5), &
  8631       &    answer_shape(6)  )  &
  8634     allocate( check_negative( &
  8635                             &    answer_shape(1), &
  8637       &    answer_shape(2), &
  8639       &    answer_shape(3), &
  8641       &    answer_shape(4), &
  8643       &    answer_shape(5), &
  8645       &    answer_shape(6)  )  &
  8648     allocate( both_negative( &
  8649                             &    answer_shape(1), &
  8651       &    answer_shape(2), &
  8653       &    answer_shape(3), &
  8655       &    answer_shape(4), &
  8657       &    answer_shape(5), &
  8659       &    answer_shape(6)  )  &
  8662     allocate( answer_max( &
  8663                             &    answer_shape(1), &
  8665       &    answer_shape(2), &
  8667       &    answer_shape(3), &
  8669       &    answer_shape(4), &
  8671       &    answer_shape(5), &
  8673       &    answer_shape(6)  )  &
  8676     allocate( answer_min( &
  8677                             &    answer_shape(1), &
  8679       &    answer_shape(2), &
  8681       &    answer_shape(3), &
  8683       &    answer_shape(4), &
  8685       &    answer_shape(5), &
  8687       &    answer_shape(6)  )  &
  8690     answer_negative = answer < 0.0_dp
  8691     check_negative = check < 0.0_dp
  8692     both_negative = answer_negative .and. check_negative
  8694     where (both_negative)
  8698         &       - 0.1_dp ** significant_digits ) &
  8699         & + 0.1_dp ** (- ignore_digits)
  8704         &       + 0.1_dp ** significant_digits ) &
  8705         & - 0.1_dp ** (- ignore_digits)
  8710         &       + 0.1_dp ** significant_digits ) &
  8711         & + 0.1_dp ** (- ignore_digits)
  8716         &       - 0.1_dp ** significant_digits ) &
  8717         & - 0.1_dp ** (- ignore_digits)
  8720     judge = answer_max > check .and. check > answer_min
  8721     judge_rev = .not. judge
  8722     err_flag = any(judge_rev)
  8724     pos = maxloc(mask_array, judge_rev)
  8741       right_max = answer_max( &
  8754       right_min = answer_min( &
  8767       if ( right_max < right_min ) 
then  8768         right_tmp = right_max
  8769         right_max = right_min
  8770         right_min = right_tmp
  8773                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
  8775       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
  8777       write(unit=pos_array(3), fmt=
"(i20)") pos(3)
  8779       write(unit=pos_array(4), fmt=
"(i20)") pos(4)
  8781       write(unit=pos_array(5), fmt=
"(i20)") pos(5)
  8783       write(unit=pos_array(6), fmt=
"(i20)") pos(6)
  8787                               &    trim(adjustl(pos_array(1))) // 
',' // &
  8789         &    trim(adjustl(pos_array(2))) // 
',' // &
  8791         &    trim(adjustl(pos_array(3))) // 
',' // &
  8793         &    trim(adjustl(pos_array(4))) // 
',' // &
  8795         &    trim(adjustl(pos_array(5))) // 
',' // &
  8797         &    trim(adjustl(pos_array(6))) // 
')'  8800     deallocate(mask_array, judge, judge_rev)
  8801     deallocate(answer_negative, check_negative, both_negative)
  8802     deallocate(answer_max, answer_min)
  8808       pos_str_len = len_trim(pos_str)
  8810       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  8812       write(*,*) 
'  check' // trim(pos_str)  // 
'  = ', wrong
  8813       write(*,*) 
'    is NOT EQUAL to'  8814       write(*,*) 
'        ' // pos_str_space(1:pos_str_len) &
  8815         &                                     // 
'   ', right_min, 
' < '  8816       write(*,*) 
'  answer' // trim(pos_str)  // 
' < ', right_max
  8820       write(*,*) 
' *** MESSAGE [AssertEQ] *** Checking ' // trim(message) // 
' OK'  8828     & message, answer, check, significant_digits, ignore_digits )
  8832     character(*), 
intent(in):: message
  8833     real(DP), 
intent(in):: answer(:,:,:,:,:,:,:)
  8834     real(DP), 
intent(in):: check(:,:,:,:,:,:,:)
  8835     integer, 
intent(in):: significant_digits
  8836     integer, 
intent(in):: ignore_digits
  8838     character(STRING):: pos_str
  8839     real(DP):: wrong, right_max, right_min
  8840     character(STRING):: pos_str_space
  8841     integer:: pos_str_len
  8842     real(DP):: right_tmp
  8844                         integer:: answer_shape(7), check_shape(7), pos(7)
  8845     logical:: consist_shape(7)
  8846     character(TOKEN):: pos_array(7)
  8847     integer, 
allocatable:: mask_array(:,:,:,:,:,:,:)
  8848     logical, 
allocatable:: judge(:,:,:,:,:,:,:)
  8849     logical, 
allocatable:: judge_rev(:,:,:,:,:,:,:)
  8850     logical, 
allocatable:: answer_negative(:,:,:,:,:,:,:)
  8851     logical, 
allocatable:: check_negative(:,:,:,:,:,:,:)
  8852     logical, 
allocatable:: both_negative(:,:,:,:,:,:,:)
  8853     real(DP), 
allocatable:: answer_max(:,:,:,:,:,:,:)
  8854     real(DP), 
allocatable:: answer_min(:,:,:,:,:,:,:)
  8859     if ( significant_digits < 1 ) 
then  8860       write(*,*) 
' *** Error [AssertEQ] *** '  8861       write(*,*) 
'  Specify a number more than 1 to "significant_digits"'  8865     answer_shape = shape(answer)
  8866     check_shape = shape(check)
  8868     consist_shape = answer_shape == check_shape
  8870     if (.not. all(consist_shape)) 
then  8871       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  8873       write(*,*) 
'  shape of check is (', check_shape, 
')'  8874       write(*,*) 
'    is INCORRECT'  8875       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')'  8881     allocate( mask_array( &
  8882                             &    answer_shape(1), &
  8884       &    answer_shape(2), &
  8886       &    answer_shape(3), &
  8888       &    answer_shape(4), &
  8890       &    answer_shape(5), &
  8892       &    answer_shape(6), &
  8894       &    answer_shape(7)  )  &
  8898                             &    answer_shape(1), &
  8900       &    answer_shape(2), &
  8902       &    answer_shape(3), &
  8904       &    answer_shape(4), &
  8906       &    answer_shape(5), &
  8908       &    answer_shape(6), &
  8910       &    answer_shape(7)  )  &
  8913     allocate( judge_rev( &
  8914                             &    answer_shape(1), &
  8916       &    answer_shape(2), &
  8918       &    answer_shape(3), &
  8920       &    answer_shape(4), &
  8922       &    answer_shape(5), &
  8924       &    answer_shape(6), &
  8926       &    answer_shape(7)  )  &
  8929     allocate( answer_negative( &
  8930                             &    answer_shape(1), &
  8932       &    answer_shape(2), &
  8934       &    answer_shape(3), &
  8936       &    answer_shape(4), &
  8938       &    answer_shape(5), &
  8940       &    answer_shape(6), &
  8942       &    answer_shape(7)  )  &
  8945     allocate( check_negative( &
  8946                             &    answer_shape(1), &
  8948       &    answer_shape(2), &
  8950       &    answer_shape(3), &
  8952       &    answer_shape(4), &
  8954       &    answer_shape(5), &
  8956       &    answer_shape(6), &
  8958       &    answer_shape(7)  )  &
  8961     allocate( both_negative( &
  8962                             &    answer_shape(1), &
  8964       &    answer_shape(2), &
  8966       &    answer_shape(3), &
  8968       &    answer_shape(4), &
  8970       &    answer_shape(5), &
  8972       &    answer_shape(6), &
  8974       &    answer_shape(7)  )  &
  8977     allocate( answer_max( &
  8978                             &    answer_shape(1), &
  8980       &    answer_shape(2), &
  8982       &    answer_shape(3), &
  8984       &    answer_shape(4), &
  8986       &    answer_shape(5), &
  8988       &    answer_shape(6), &
  8990       &    answer_shape(7)  )  &
  8993     allocate( answer_min( &
  8994                             &    answer_shape(1), &
  8996       &    answer_shape(2), &
  8998       &    answer_shape(3), &
  9000       &    answer_shape(4), &
  9002       &    answer_shape(5), &
  9004       &    answer_shape(6), &
  9006       &    answer_shape(7)  )  &
  9009     answer_negative = answer < 0.0_dp
  9010     check_negative = check < 0.0_dp
  9011     both_negative = answer_negative .and. check_negative
  9013     where (both_negative)
  9017         &       - 0.1_dp ** significant_digits ) &
  9018         & + 0.1_dp ** (- ignore_digits)
  9023         &       + 0.1_dp ** significant_digits ) &
  9024         & - 0.1_dp ** (- ignore_digits)
  9029         &       + 0.1_dp ** significant_digits ) &
  9030         & + 0.1_dp ** (- ignore_digits)
  9035         &       - 0.1_dp ** significant_digits ) &
  9036         & - 0.1_dp ** (- ignore_digits)
  9039     judge = answer_max > check .and. check > answer_min
  9040     judge_rev = .not. judge
  9041     err_flag = any(judge_rev)
  9043     pos = maxloc(mask_array, judge_rev)
  9062       right_max = answer_max( &
  9077       right_min = answer_min( &
  9092       if ( right_max < right_min ) 
then  9093         right_tmp = right_max
  9094         right_max = right_min
  9095         right_min = right_tmp
  9098                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
  9100       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
  9102       write(unit=pos_array(3), fmt=
"(i20)") pos(3)
  9104       write(unit=pos_array(4), fmt=
"(i20)") pos(4)
  9106       write(unit=pos_array(5), fmt=
"(i20)") pos(5)
  9108       write(unit=pos_array(6), fmt=
"(i20)") pos(6)
  9110       write(unit=pos_array(7), fmt=
"(i20)") pos(7)
  9114                               &    trim(adjustl(pos_array(1))) // 
',' // &
  9116         &    trim(adjustl(pos_array(2))) // 
',' // &
  9118         &    trim(adjustl(pos_array(3))) // 
',' // &
  9120         &    trim(adjustl(pos_array(4))) // 
',' // &
  9122         &    trim(adjustl(pos_array(5))) // 
',' // &
  9124         &    trim(adjustl(pos_array(6))) // 
',' // &
  9126         &    trim(adjustl(pos_array(7))) // 
')'  9129     deallocate(mask_array, judge, judge_rev)
  9130     deallocate(answer_negative, check_negative, both_negative)
  9131     deallocate(answer_max, answer_min)
  9137       pos_str_len = len_trim(pos_str)
  9139       write(*,*) 
' *** Error [AssertEQ] *** Checking ' // trim(message) // 
' FAILURE'  9141       write(*,*) 
'  check' // trim(pos_str)  // 
'  = ', wrong
  9142       write(*,*) 
'    is NOT EQUAL to'  9143       write(*,*) 
'        ' // pos_str_space(1:pos_str_len) &
  9144         &                                     // 
'   ', right_min, 
' < '  9145       write(*,*) 
'  answer' // trim(pos_str)  // 
' < ', right_max
  9149       write(*,*) 
' *** MESSAGE [AssertEQ] *** Checking ' // trim(message) // 
' OK'  9157     & message, answer, check, negative_support)
  9161     character(*), 
intent(in):: message
  9162     integer, 
intent(in):: answer
  9163     integer, 
intent(in):: check
  9164     logical, 
intent(in), 
optional:: negative_support
  9166     logical:: negative_support_on
  9167     character(STRING):: pos_str
  9168     character(TOKEN):: abs_mes
  9169     integer:: wrong, right
  9174     if (
present(negative_support)) 
then  9175       negative_support_on = negative_support
  9177       negative_support_on = .true.
  9183     err_flag = .not. answer < check
  9188       &  .and. negative_support_on ) 
then  9190       err_flag = .not. err_flag
  9191       abs_mes = 
'ABSOLUTE value of'  9202       write(*,*) 
' *** Error [AssertGT] *** Checking ' // trim(message) // 
' FAILURE'  9204       write(*,*) 
' ' // trim(abs_mes) // &
  9205         &        
' check' // trim(pos_str) // 
'  = ', wrong
  9206       write(*,*) 
'    is NOT GREATER THAN'  9207       write(*,*) 
' ' // trim(abs_mes) // &
  9208         &        
' answer' // trim(pos_str) // 
' = ', right
  9212       write(*,*) 
' *** MESSAGE [AssertGT] *** Checking ' // trim(message) // 
' OK'  9220     & message, answer, check, negative_support)
  9224     character(*), 
intent(in):: message
  9225     integer, 
intent(in):: answer(:)
  9226     integer, 
intent(in):: check(:)
  9227     logical, 
intent(in), 
optional:: negative_support
  9229     logical:: negative_support_on
  9230     character(STRING):: pos_str
  9231     character(TOKEN):: abs_mes
  9232     integer:: wrong, right
  9234                         integer:: answer_shape(1), check_shape(1), pos(1)
  9235     logical:: consist_shape(1)
  9236     character(TOKEN):: pos_array(1)
  9237     integer, 
allocatable:: mask_array(:)
  9238     logical, 
allocatable:: judge(:)
  9239     logical, 
allocatable:: judge_rev(:)
  9240     logical, 
allocatable:: answer_negative(:)
  9241     logical, 
allocatable:: check_negative(:)
  9242     logical, 
allocatable:: both_negative(:)
  9246     if (
present(negative_support)) 
then  9247       negative_support_on = negative_support
  9249       negative_support_on = .true.
  9255     answer_shape = shape(answer)
  9256     check_shape = shape(check)
  9258     consist_shape = answer_shape == check_shape
  9260     if (.not. all(consist_shape)) 
then  9261       write(*,*) 
' *** Error [AssertGT] *** Checking ' // trim(message) // 
' FAILURE'  9263       write(*,*) 
'  shape of check is (', check_shape, 
')'  9264       write(*,*) 
'    is INCORRECT'  9265       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')'  9271     allocate( mask_array( &
  9273       &    answer_shape(1)  )  &
  9278       &    answer_shape(1)  )  &
  9281     allocate( judge_rev( &
  9283       &    answer_shape(1)  )  &
  9286     allocate( answer_negative( &
  9288       &    answer_shape(1)  )  &
  9291     allocate( check_negative( &
  9293       &    answer_shape(1)  )  &
  9296     allocate( both_negative( &
  9298       &    answer_shape(1)  )  &
  9301     answer_negative = answer < 0
  9302     check_negative = check < 0
  9303     both_negative = answer_negative .and. check_negative
  9304     if (.not. negative_support_on) both_negative = .false.
  9306     judge = answer < check
  9307     where (both_negative) judge = .not. judge
  9309     judge_rev = .not. judge
  9310     err_flag = any(judge_rev)
  9312     pos = maxloc(mask_array, judge_rev)
  9324                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
  9329         &    trim(adjustl(pos_array(1))) // 
')'  9331       if ( both_negative( &
  9335         abs_mes = 
'ABSOLUTE value of'  9342     deallocate(mask_array, judge, judge_rev)
  9343     deallocate(answer_negative, check_negative, both_negative)
  9349       write(*,*) 
' *** Error [AssertGT] *** Checking ' // trim(message) // 
' FAILURE'  9351       write(*,*) 
' ' // trim(abs_mes) // &
  9352         &        
' check' // trim(pos_str) // 
'  = ', wrong
  9353       write(*,*) 
'    is NOT GREATER THAN'  9354       write(*,*) 
' ' // trim(abs_mes) // &
  9355         &        
' answer' // trim(pos_str) // 
' = ', right
  9359       write(*,*) 
' *** MESSAGE [AssertGT] *** Checking ' // trim(message) // 
' OK'  9367     & message, answer, check, negative_support)
  9371     character(*), 
intent(in):: message
  9372     integer, 
intent(in):: answer(:,:)
  9373     integer, 
intent(in):: check(:,:)
  9374     logical, 
intent(in), 
optional:: negative_support
  9376     logical:: negative_support_on
  9377     character(STRING):: pos_str
  9378     character(TOKEN):: abs_mes
  9379     integer:: wrong, right
  9381                         integer:: answer_shape(2), check_shape(2), pos(2)
  9382     logical:: consist_shape(2)
  9383     character(TOKEN):: pos_array(2)
  9384     integer, 
allocatable:: mask_array(:,:)
  9385     logical, 
allocatable:: judge(:,:)
  9386     logical, 
allocatable:: judge_rev(:,:)
  9387     logical, 
allocatable:: answer_negative(:,:)
  9388     logical, 
allocatable:: check_negative(:,:)
  9389     logical, 
allocatable:: both_negative(:,:)
  9393     if (
present(negative_support)) 
then  9394       negative_support_on = negative_support
  9396       negative_support_on = .true.
  9402     answer_shape = shape(answer)
  9403     check_shape = shape(check)
  9405     consist_shape = answer_shape == check_shape
  9407     if (.not. all(consist_shape)) 
then  9408       write(*,*) 
' *** Error [AssertGT] *** Checking ' // trim(message) // 
' FAILURE'  9410       write(*,*) 
'  shape of check is (', check_shape, 
')'  9411       write(*,*) 
'    is INCORRECT'  9412       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')'  9418     allocate( mask_array( &
  9419                             &    answer_shape(1), &
  9421       &    answer_shape(2)  )  &
  9425                             &    answer_shape(1), &
  9427       &    answer_shape(2)  )  &
  9430     allocate( judge_rev( &
  9431                             &    answer_shape(1), &
  9433       &    answer_shape(2)  )  &
  9436     allocate( answer_negative( &
  9437                             &    answer_shape(1), &
  9439       &    answer_shape(2)  )  &
  9442     allocate( check_negative( &
  9443                             &    answer_shape(1), &
  9445       &    answer_shape(2)  )  &
  9448     allocate( both_negative( &
  9449                             &    answer_shape(1), &
  9451       &    answer_shape(2)  )  &
  9454     answer_negative = answer < 0
  9455     check_negative = check < 0
  9456     both_negative = answer_negative .and. check_negative
  9457     if (.not. negative_support_on) both_negative = .false.
  9459     judge = answer < check
  9460     where (both_negative) judge = .not. judge
  9462     judge_rev = .not. judge
  9463     err_flag = any(judge_rev)
  9465     pos = maxloc(mask_array, judge_rev)
  9479                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
  9481       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
  9485                               &    trim(adjustl(pos_array(1))) // 
',' // &
  9487         &    trim(adjustl(pos_array(2))) // 
')'  9489       if ( both_negative( &
  9494         abs_mes = 
'ABSOLUTE value of'  9501     deallocate(mask_array, judge, judge_rev)
  9502     deallocate(answer_negative, check_negative, both_negative)
  9508       write(*,*) 
' *** Error [AssertGT] *** Checking ' // trim(message) // 
' FAILURE'  9510       write(*,*) 
' ' // trim(abs_mes) // &
  9511         &        
' check' // trim(pos_str) // 
'  = ', wrong
  9512       write(*,*) 
'    is NOT GREATER THAN'  9513       write(*,*) 
' ' // trim(abs_mes) // &
  9514         &        
' answer' // trim(pos_str) // 
' = ', right
  9518       write(*,*) 
' *** MESSAGE [AssertGT] *** Checking ' // trim(message) // 
' OK'  9526     & message, answer, check, negative_support)
  9530     character(*), 
intent(in):: message
  9531     integer, 
intent(in):: answer(:,:,:)
  9532     integer, 
intent(in):: check(:,:,:)
  9533     logical, 
intent(in), 
optional:: negative_support
  9535     logical:: negative_support_on
  9536     character(STRING):: pos_str
  9537     character(TOKEN):: abs_mes
  9538     integer:: wrong, right
  9540                         integer:: answer_shape(3), check_shape(3), pos(3)
  9541     logical:: consist_shape(3)
  9542     character(TOKEN):: pos_array(3)
  9543     integer, 
allocatable:: mask_array(:,:,:)
  9544     logical, 
allocatable:: judge(:,:,:)
  9545     logical, 
allocatable:: judge_rev(:,:,:)
  9546     logical, 
allocatable:: answer_negative(:,:,:)
  9547     logical, 
allocatable:: check_negative(:,:,:)
  9548     logical, 
allocatable:: both_negative(:,:,:)
  9552     if (
present(negative_support)) 
then  9553       negative_support_on = negative_support
  9555       negative_support_on = .true.
  9561     answer_shape = shape(answer)
  9562     check_shape = shape(check)
  9564     consist_shape = answer_shape == check_shape
  9566     if (.not. all(consist_shape)) 
then  9567       write(*,*) 
' *** Error [AssertGT] *** Checking ' // trim(message) // 
' FAILURE'  9569       write(*,*) 
'  shape of check is (', check_shape, 
')'  9570       write(*,*) 
'    is INCORRECT'  9571       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')'  9577     allocate( mask_array( &
  9578                             &    answer_shape(1), &
  9580       &    answer_shape(2), &
  9582       &    answer_shape(3)  )  &
  9586                             &    answer_shape(1), &
  9588       &    answer_shape(2), &
  9590       &    answer_shape(3)  )  &
  9593     allocate( judge_rev( &
  9594                             &    answer_shape(1), &
  9596       &    answer_shape(2), &
  9598       &    answer_shape(3)  )  &
  9601     allocate( answer_negative( &
  9602                             &    answer_shape(1), &
  9604       &    answer_shape(2), &
  9606       &    answer_shape(3)  )  &
  9609     allocate( check_negative( &
  9610                             &    answer_shape(1), &
  9612       &    answer_shape(2), &
  9614       &    answer_shape(3)  )  &
  9617     allocate( both_negative( &
  9618                             &    answer_shape(1), &
  9620       &    answer_shape(2), &
  9622       &    answer_shape(3)  )  &
  9625     answer_negative = answer < 0
  9626     check_negative = check < 0
  9627     both_negative = answer_negative .and. check_negative
  9628     if (.not. negative_support_on) both_negative = .false.
  9630     judge = answer < check
  9631     where (both_negative) judge = .not. judge
  9633     judge_rev = .not. judge
  9634     err_flag = any(judge_rev)
  9636     pos = maxloc(mask_array, judge_rev)
  9654                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
  9656       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
  9658       write(unit=pos_array(3), fmt=
"(i20)") pos(3)
  9662                               &    trim(adjustl(pos_array(1))) // 
',' // &
  9664         &    trim(adjustl(pos_array(2))) // 
',' // &
  9666         &    trim(adjustl(pos_array(3))) // 
')'  9668       if ( both_negative( &
  9675         abs_mes = 
'ABSOLUTE value of'  9682     deallocate(mask_array, judge, judge_rev)
  9683     deallocate(answer_negative, check_negative, both_negative)
  9689       write(*,*) 
' *** Error [AssertGT] *** Checking ' // trim(message) // 
' FAILURE'  9691       write(*,*) 
' ' // trim(abs_mes) // &
  9692         &        
' check' // trim(pos_str) // 
'  = ', wrong
  9693       write(*,*) 
'    is NOT GREATER THAN'  9694       write(*,*) 
' ' // trim(abs_mes) // &
  9695         &        
' answer' // trim(pos_str) // 
' = ', right
  9699       write(*,*) 
' *** MESSAGE [AssertGT] *** Checking ' // trim(message) // 
' OK'  9707     & message, answer, check, negative_support)
  9711     character(*), 
intent(in):: message
  9712     integer, 
intent(in):: answer(:,:,:,:)
  9713     integer, 
intent(in):: check(:,:,:,:)
  9714     logical, 
intent(in), 
optional:: negative_support
  9716     logical:: negative_support_on
  9717     character(STRING):: pos_str
  9718     character(TOKEN):: abs_mes
  9719     integer:: wrong, right
  9721                         integer:: answer_shape(4), check_shape(4), pos(4)
  9722     logical:: consist_shape(4)
  9723     character(TOKEN):: pos_array(4)
  9724     integer, 
allocatable:: mask_array(:,:,:,:)
  9725     logical, 
allocatable:: judge(:,:,:,:)
  9726     logical, 
allocatable:: judge_rev(:,:,:,:)
  9727     logical, 
allocatable:: answer_negative(:,:,:,:)
  9728     logical, 
allocatable:: check_negative(:,:,:,:)
  9729     logical, 
allocatable:: both_negative(:,:,:,:)
  9733     if (
present(negative_support)) 
then  9734       negative_support_on = negative_support
  9736       negative_support_on = .true.
  9742     answer_shape = shape(answer)
  9743     check_shape = shape(check)
  9745     consist_shape = answer_shape == check_shape
  9747     if (.not. all(consist_shape)) 
then  9748       write(*,*) 
' *** Error [AssertGT] *** Checking ' // trim(message) // 
' FAILURE'  9750       write(*,*) 
'  shape of check is (', check_shape, 
')'  9751       write(*,*) 
'    is INCORRECT'  9752       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')'  9758     allocate( mask_array( &
  9759                             &    answer_shape(1), &
  9761       &    answer_shape(2), &
  9763       &    answer_shape(3), &
  9765       &    answer_shape(4)  )  &
  9769                             &    answer_shape(1), &
  9771       &    answer_shape(2), &
  9773       &    answer_shape(3), &
  9775       &    answer_shape(4)  )  &
  9778     allocate( judge_rev( &
  9779                             &    answer_shape(1), &
  9781       &    answer_shape(2), &
  9783       &    answer_shape(3), &
  9785       &    answer_shape(4)  )  &
  9788     allocate( answer_negative( &
  9789                             &    answer_shape(1), &
  9791       &    answer_shape(2), &
  9793       &    answer_shape(3), &
  9795       &    answer_shape(4)  )  &
  9798     allocate( check_negative( &
  9799                             &    answer_shape(1), &
  9801       &    answer_shape(2), &
  9803       &    answer_shape(3), &
  9805       &    answer_shape(4)  )  &
  9808     allocate( both_negative( &
  9809                             &    answer_shape(1), &
  9811       &    answer_shape(2), &
  9813       &    answer_shape(3), &
  9815       &    answer_shape(4)  )  &
  9818     answer_negative = answer < 0
  9819     check_negative = check < 0
  9820     both_negative = answer_negative .and. check_negative
  9821     if (.not. negative_support_on) both_negative = .false.
  9823     judge = answer < check
  9824     where (both_negative) judge = .not. judge
  9826     judge_rev = .not. judge
  9827     err_flag = any(judge_rev)
  9829     pos = maxloc(mask_array, judge_rev)
  9851                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
  9853       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
  9855       write(unit=pos_array(3), fmt=
"(i20)") pos(3)
  9857       write(unit=pos_array(4), fmt=
"(i20)") pos(4)
  9861                               &    trim(adjustl(pos_array(1))) // 
',' // &
  9863         &    trim(adjustl(pos_array(2))) // 
',' // &
  9865         &    trim(adjustl(pos_array(3))) // 
',' // &
  9867         &    trim(adjustl(pos_array(4))) // 
')'  9869       if ( both_negative( &
  9878         abs_mes = 
'ABSOLUTE value of'  9885     deallocate(mask_array, judge, judge_rev)
  9886     deallocate(answer_negative, check_negative, both_negative)
  9892       write(*,*) 
' *** Error [AssertGT] *** Checking ' // trim(message) // 
' FAILURE'  9894       write(*,*) 
' ' // trim(abs_mes) // &
  9895         &        
' check' // trim(pos_str) // 
'  = ', wrong
  9896       write(*,*) 
'    is NOT GREATER THAN'  9897       write(*,*) 
' ' // trim(abs_mes) // &
  9898         &        
' answer' // trim(pos_str) // 
' = ', right
  9902       write(*,*) 
' *** MESSAGE [AssertGT] *** Checking ' // trim(message) // 
' OK'  9910     & message, answer, check, negative_support)
  9914     character(*), 
intent(in):: message
  9915     integer, 
intent(in):: answer(:,:,:,:,:)
  9916     integer, 
intent(in):: check(:,:,:,:,:)
  9917     logical, 
intent(in), 
optional:: negative_support
  9919     logical:: negative_support_on
  9920     character(STRING):: pos_str
  9921     character(TOKEN):: abs_mes
  9922     integer:: wrong, right
  9924                         integer:: answer_shape(5), check_shape(5), pos(5)
  9925     logical:: consist_shape(5)
  9926     character(TOKEN):: pos_array(5)
  9927     integer, 
allocatable:: mask_array(:,:,:,:,:)
  9928     logical, 
allocatable:: judge(:,:,:,:,:)
  9929     logical, 
allocatable:: judge_rev(:,:,:,:,:)
  9930     logical, 
allocatable:: answer_negative(:,:,:,:,:)
  9931     logical, 
allocatable:: check_negative(:,:,:,:,:)
  9932     logical, 
allocatable:: both_negative(:,:,:,:,:)
  9936     if (
present(negative_support)) 
then  9937       negative_support_on = negative_support
  9939       negative_support_on = .true.
  9945     answer_shape = shape(answer)
  9946     check_shape = shape(check)
  9948     consist_shape = answer_shape == check_shape
  9950     if (.not. all(consist_shape)) 
then  9951       write(*,*) 
' *** Error [AssertGT] *** Checking ' // trim(message) // 
' FAILURE'  9953       write(*,*) 
'  shape of check is (', check_shape, 
')'  9954       write(*,*) 
'    is INCORRECT'  9955       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')'  9961     allocate( mask_array( &
  9962                             &    answer_shape(1), &
  9964       &    answer_shape(2), &
  9966       &    answer_shape(3), &
  9968       &    answer_shape(4), &
  9970       &    answer_shape(5)  )  &
  9974                             &    answer_shape(1), &
  9976       &    answer_shape(2), &
  9978       &    answer_shape(3), &
  9980       &    answer_shape(4), &
  9982       &    answer_shape(5)  )  &
  9985     allocate( judge_rev( &
  9986                             &    answer_shape(1), &
  9988       &    answer_shape(2), &
  9990       &    answer_shape(3), &
  9992       &    answer_shape(4), &
  9994       &    answer_shape(5)  )  &
  9997     allocate( answer_negative( &
  9998                             &    answer_shape(1), &
 10000       &    answer_shape(2), &
 10002       &    answer_shape(3), &
 10004       &    answer_shape(4), &
 10006       &    answer_shape(5)  )  &
 10009     allocate( check_negative( &
 10010                             &    answer_shape(1), &
 10012       &    answer_shape(2), &
 10014       &    answer_shape(3), &
 10016       &    answer_shape(4), &
 10018       &    answer_shape(5)  )  &
 10021     allocate( both_negative( &
 10022                             &    answer_shape(1), &
 10024       &    answer_shape(2), &
 10026       &    answer_shape(3), &
 10028       &    answer_shape(4), &
 10030       &    answer_shape(5)  )  &
 10033     answer_negative = answer < 0
 10034     check_negative = check < 0
 10035     both_negative = answer_negative .and. check_negative
 10036     if (.not. negative_support_on) both_negative = .false.
 10038     judge = answer < check
 10039     where (both_negative) judge = .not. judge
 10041     judge_rev = .not. judge
 10042     err_flag = any(judge_rev)
 10044     pos = maxloc(mask_array, judge_rev)
 10070                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
 10072       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
 10074       write(unit=pos_array(3), fmt=
"(i20)") pos(3)
 10076       write(unit=pos_array(4), fmt=
"(i20)") pos(4)
 10078       write(unit=pos_array(5), fmt=
"(i20)") pos(5)
 10082                               &    trim(adjustl(pos_array(1))) // 
',' // &
 10084         &    trim(adjustl(pos_array(2))) // 
',' // &
 10086         &    trim(adjustl(pos_array(3))) // 
',' // &
 10088         &    trim(adjustl(pos_array(4))) // 
',' // &
 10090         &    trim(adjustl(pos_array(5))) // 
')' 10092       if ( both_negative( &
 10103         abs_mes = 
'ABSOLUTE value of' 10110     deallocate(mask_array, judge, judge_rev)
 10111     deallocate(answer_negative, check_negative, both_negative)
 10117       write(*,*) 
' *** Error [AssertGT] *** Checking ' // trim(message) // 
' FAILURE' 10119       write(*,*) 
' ' // trim(abs_mes) // &
 10120         &        
' check' // trim(pos_str) // 
'  = ', wrong
 10121       write(*,*) 
'    is NOT GREATER THAN' 10122       write(*,*) 
' ' // trim(abs_mes) // &
 10123         &        
' answer' // trim(pos_str) // 
' = ', right
 10127       write(*,*) 
' *** MESSAGE [AssertGT] *** Checking ' // trim(message) // 
' OK' 10135     & message, answer, check, negative_support)
 10139     character(*), 
intent(in):: message
 10140     integer, 
intent(in):: answer(:,:,:,:,:,:)
 10141     integer, 
intent(in):: check(:,:,:,:,:,:)
 10142     logical, 
intent(in), 
optional:: negative_support
 10144     logical:: negative_support_on
 10145     character(STRING):: pos_str
 10146     character(TOKEN):: abs_mes
 10147     integer:: wrong, right
 10149                         integer:: answer_shape(6), check_shape(6), pos(6)
 10150     logical:: consist_shape(6)
 10151     character(TOKEN):: pos_array(6)
 10152     integer, 
allocatable:: mask_array(:,:,:,:,:,:)
 10153     logical, 
allocatable:: judge(:,:,:,:,:,:)
 10154     logical, 
allocatable:: judge_rev(:,:,:,:,:,:)
 10155     logical, 
allocatable:: answer_negative(:,:,:,:,:,:)
 10156     logical, 
allocatable:: check_negative(:,:,:,:,:,:)
 10157     logical, 
allocatable:: both_negative(:,:,:,:,:,:)
 10161     if (
present(negative_support)) 
then 10162       negative_support_on = negative_support
 10164       negative_support_on = .true.
 10170     answer_shape = shape(answer)
 10171     check_shape = shape(check)
 10173     consist_shape = answer_shape == check_shape
 10175     if (.not. all(consist_shape)) 
then 10176       write(*,*) 
' *** Error [AssertGT] *** Checking ' // trim(message) // 
' FAILURE' 10178       write(*,*) 
'  shape of check is (', check_shape, 
')' 10179       write(*,*) 
'    is INCORRECT' 10180       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')' 10186     allocate( mask_array( &
 10187                             &    answer_shape(1), &
 10189       &    answer_shape(2), &
 10191       &    answer_shape(3), &
 10193       &    answer_shape(4), &
 10195       &    answer_shape(5), &
 10197       &    answer_shape(6)  )  &
 10201                             &    answer_shape(1), &
 10203       &    answer_shape(2), &
 10205       &    answer_shape(3), &
 10207       &    answer_shape(4), &
 10209       &    answer_shape(5), &
 10211       &    answer_shape(6)  )  &
 10214     allocate( judge_rev( &
 10215                             &    answer_shape(1), &
 10217       &    answer_shape(2), &
 10219       &    answer_shape(3), &
 10221       &    answer_shape(4), &
 10223       &    answer_shape(5), &
 10225       &    answer_shape(6)  )  &
 10228     allocate( answer_negative( &
 10229                             &    answer_shape(1), &
 10231       &    answer_shape(2), &
 10233       &    answer_shape(3), &
 10235       &    answer_shape(4), &
 10237       &    answer_shape(5), &
 10239       &    answer_shape(6)  )  &
 10242     allocate( check_negative( &
 10243                             &    answer_shape(1), &
 10245       &    answer_shape(2), &
 10247       &    answer_shape(3), &
 10249       &    answer_shape(4), &
 10251       &    answer_shape(5), &
 10253       &    answer_shape(6)  )  &
 10256     allocate( both_negative( &
 10257                             &    answer_shape(1), &
 10259       &    answer_shape(2), &
 10261       &    answer_shape(3), &
 10263       &    answer_shape(4), &
 10265       &    answer_shape(5), &
 10267       &    answer_shape(6)  )  &
 10270     answer_negative = answer < 0
 10271     check_negative = check < 0
 10272     both_negative = answer_negative .and. check_negative
 10273     if (.not. negative_support_on) both_negative = .false.
 10275     judge = answer < check
 10276     where (both_negative) judge = .not. judge
 10278     judge_rev = .not. judge
 10279     err_flag = any(judge_rev)
 10281     pos = maxloc(mask_array, judge_rev)
 10311                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
 10313       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
 10315       write(unit=pos_array(3), fmt=
"(i20)") pos(3)
 10317       write(unit=pos_array(4), fmt=
"(i20)") pos(4)
 10319       write(unit=pos_array(5), fmt=
"(i20)") pos(5)
 10321       write(unit=pos_array(6), fmt=
"(i20)") pos(6)
 10325                               &    trim(adjustl(pos_array(1))) // 
',' // &
 10327         &    trim(adjustl(pos_array(2))) // 
',' // &
 10329         &    trim(adjustl(pos_array(3))) // 
',' // &
 10331         &    trim(adjustl(pos_array(4))) // 
',' // &
 10333         &    trim(adjustl(pos_array(5))) // 
',' // &
 10335         &    trim(adjustl(pos_array(6))) // 
')' 10337       if ( both_negative( &
 10350         abs_mes = 
'ABSOLUTE value of' 10357     deallocate(mask_array, judge, judge_rev)
 10358     deallocate(answer_negative, check_negative, both_negative)
 10364       write(*,*) 
' *** Error [AssertGT] *** Checking ' // trim(message) // 
' FAILURE' 10366       write(*,*) 
' ' // trim(abs_mes) // &
 10367         &        
' check' // trim(pos_str) // 
'  = ', wrong
 10368       write(*,*) 
'    is NOT GREATER THAN' 10369       write(*,*) 
' ' // trim(abs_mes) // &
 10370         &        
' answer' // trim(pos_str) // 
' = ', right
 10374       write(*,*) 
' *** MESSAGE [AssertGT] *** Checking ' // trim(message) // 
' OK' 10382     & message, answer, check, negative_support)
 10386     character(*), 
intent(in):: message
 10387     integer, 
intent(in):: answer(:,:,:,:,:,:,:)
 10388     integer, 
intent(in):: check(:,:,:,:,:,:,:)
 10389     logical, 
intent(in), 
optional:: negative_support
 10391     logical:: negative_support_on
 10392     character(STRING):: pos_str
 10393     character(TOKEN):: abs_mes
 10394     integer:: wrong, right
 10396                         integer:: answer_shape(7), check_shape(7), pos(7)
 10397     logical:: consist_shape(7)
 10398     character(TOKEN):: pos_array(7)
 10399     integer, 
allocatable:: mask_array(:,:,:,:,:,:,:)
 10400     logical, 
allocatable:: judge(:,:,:,:,:,:,:)
 10401     logical, 
allocatable:: judge_rev(:,:,:,:,:,:,:)
 10402     logical, 
allocatable:: answer_negative(:,:,:,:,:,:,:)
 10403     logical, 
allocatable:: check_negative(:,:,:,:,:,:,:)
 10404     logical, 
allocatable:: both_negative(:,:,:,:,:,:,:)
 10408     if (
present(negative_support)) 
then 10409       negative_support_on = negative_support
 10411       negative_support_on = .true.
 10417     answer_shape = shape(answer)
 10418     check_shape = shape(check)
 10420     consist_shape = answer_shape == check_shape
 10422     if (.not. all(consist_shape)) 
then 10423       write(*,*) 
' *** Error [AssertGT] *** Checking ' // trim(message) // 
' FAILURE' 10425       write(*,*) 
'  shape of check is (', check_shape, 
')' 10426       write(*,*) 
'    is INCORRECT' 10427       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')' 10433     allocate( mask_array( &
 10434                             &    answer_shape(1), &
 10436       &    answer_shape(2), &
 10438       &    answer_shape(3), &
 10440       &    answer_shape(4), &
 10442       &    answer_shape(5), &
 10444       &    answer_shape(6), &
 10446       &    answer_shape(7)  )  &
 10450                             &    answer_shape(1), &
 10452       &    answer_shape(2), &
 10454       &    answer_shape(3), &
 10456       &    answer_shape(4), &
 10458       &    answer_shape(5), &
 10460       &    answer_shape(6), &
 10462       &    answer_shape(7)  )  &
 10465     allocate( judge_rev( &
 10466                             &    answer_shape(1), &
 10468       &    answer_shape(2), &
 10470       &    answer_shape(3), &
 10472       &    answer_shape(4), &
 10474       &    answer_shape(5), &
 10476       &    answer_shape(6), &
 10478       &    answer_shape(7)  )  &
 10481     allocate( answer_negative( &
 10482                             &    answer_shape(1), &
 10484       &    answer_shape(2), &
 10486       &    answer_shape(3), &
 10488       &    answer_shape(4), &
 10490       &    answer_shape(5), &
 10492       &    answer_shape(6), &
 10494       &    answer_shape(7)  )  &
 10497     allocate( check_negative( &
 10498                             &    answer_shape(1), &
 10500       &    answer_shape(2), &
 10502       &    answer_shape(3), &
 10504       &    answer_shape(4), &
 10506       &    answer_shape(5), &
 10508       &    answer_shape(6), &
 10510       &    answer_shape(7)  )  &
 10513     allocate( both_negative( &
 10514                             &    answer_shape(1), &
 10516       &    answer_shape(2), &
 10518       &    answer_shape(3), &
 10520       &    answer_shape(4), &
 10522       &    answer_shape(5), &
 10524       &    answer_shape(6), &
 10526       &    answer_shape(7)  )  &
 10529     answer_negative = answer < 0
 10530     check_negative = check < 0
 10531     both_negative = answer_negative .and. check_negative
 10532     if (.not. negative_support_on) both_negative = .false.
 10534     judge = answer < check
 10535     where (both_negative) judge = .not. judge
 10537     judge_rev = .not. judge
 10538     err_flag = any(judge_rev)
 10540     pos = maxloc(mask_array, judge_rev)
 10574                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
 10576       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
 10578       write(unit=pos_array(3), fmt=
"(i20)") pos(3)
 10580       write(unit=pos_array(4), fmt=
"(i20)") pos(4)
 10582       write(unit=pos_array(5), fmt=
"(i20)") pos(5)
 10584       write(unit=pos_array(6), fmt=
"(i20)") pos(6)
 10586       write(unit=pos_array(7), fmt=
"(i20)") pos(7)
 10590                               &    trim(adjustl(pos_array(1))) // 
',' // &
 10592         &    trim(adjustl(pos_array(2))) // 
',' // &
 10594         &    trim(adjustl(pos_array(3))) // 
',' // &
 10596         &    trim(adjustl(pos_array(4))) // 
',' // &
 10598         &    trim(adjustl(pos_array(5))) // 
',' // &
 10600         &    trim(adjustl(pos_array(6))) // 
',' // &
 10602         &    trim(adjustl(pos_array(7))) // 
')' 10604       if ( both_negative( &
 10619         abs_mes = 
'ABSOLUTE value of' 10626     deallocate(mask_array, judge, judge_rev)
 10627     deallocate(answer_negative, check_negative, both_negative)
 10633       write(*,*) 
' *** Error [AssertGT] *** Checking ' // trim(message) // 
' FAILURE' 10635       write(*,*) 
' ' // trim(abs_mes) // &
 10636         &        
' check' // trim(pos_str) // 
'  = ', wrong
 10637       write(*,*) 
'    is NOT GREATER THAN' 10638       write(*,*) 
' ' // trim(abs_mes) // &
 10639         &        
' answer' // trim(pos_str) // 
' = ', right
 10643       write(*,*) 
' *** MESSAGE [AssertGT] *** Checking ' // trim(message) // 
' OK' 10651     & message, answer, check, negative_support)
 10655     character(*), 
intent(in):: message
 10656     real, 
intent(in):: answer
 10657     real, 
intent(in):: check
 10658     logical, 
intent(in), 
optional:: negative_support
 10660     logical:: negative_support_on
 10661     character(STRING):: pos_str
 10662     character(TOKEN):: abs_mes
 10663     real:: wrong, right
 10668     if (
present(negative_support)) 
then 10669       negative_support_on = negative_support
 10671       negative_support_on = .true.
 10677     err_flag = .not. answer < check
 10680     if ( answer < 0.0 &
 10681       &  .and. check < 0.0 &
 10682       &  .and. negative_support_on ) 
then 10684       err_flag = .not. err_flag
 10685       abs_mes = 
'ABSOLUTE value of' 10696       write(*,*) 
' *** Error [AssertGT] *** Checking ' // trim(message) // 
' FAILURE' 10698       write(*,*) 
' ' // trim(abs_mes) // &
 10699         &        
' check' // trim(pos_str) // 
'  = ', wrong
 10700       write(*,*) 
'    is NOT GREATER THAN' 10701       write(*,*) 
' ' // trim(abs_mes) // &
 10702         &        
' answer' // trim(pos_str) // 
' = ', right
 10706       write(*,*) 
' *** MESSAGE [AssertGT] *** Checking ' // trim(message) // 
' OK' 10714     & message, answer, check, negative_support)
 10718     character(*), 
intent(in):: message
 10719     real, 
intent(in):: answer(:)
 10720     real, 
intent(in):: check(:)
 10721     logical, 
intent(in), 
optional:: negative_support
 10723     logical:: negative_support_on
 10724     character(STRING):: pos_str
 10725     character(TOKEN):: abs_mes
 10726     real:: wrong, right
 10728                         integer:: answer_shape(1), check_shape(1), pos(1)
 10729     logical:: consist_shape(1)
 10730     character(TOKEN):: pos_array(1)
 10731     integer, 
allocatable:: mask_array(:)
 10732     logical, 
allocatable:: judge(:)
 10733     logical, 
allocatable:: judge_rev(:)
 10734     logical, 
allocatable:: answer_negative(:)
 10735     logical, 
allocatable:: check_negative(:)
 10736     logical, 
allocatable:: both_negative(:)
 10740     if (
present(negative_support)) 
then 10741       negative_support_on = negative_support
 10743       negative_support_on = .true.
 10749     answer_shape = shape(answer)
 10750     check_shape = shape(check)
 10752     consist_shape = answer_shape == check_shape
 10754     if (.not. all(consist_shape)) 
then 10755       write(*,*) 
' *** Error [AssertGT] *** Checking ' // trim(message) // 
' FAILURE' 10757       write(*,*) 
'  shape of check is (', check_shape, 
')' 10758       write(*,*) 
'    is INCORRECT' 10759       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')' 10765     allocate( mask_array( &
 10767       &    answer_shape(1)  )  &
 10772       &    answer_shape(1)  )  &
 10775     allocate( judge_rev( &
 10777       &    answer_shape(1)  )  &
 10780     allocate( answer_negative( &
 10782       &    answer_shape(1)  )  &
 10785     allocate( check_negative( &
 10787       &    answer_shape(1)  )  &
 10790     allocate( both_negative( &
 10792       &    answer_shape(1)  )  &
 10795     answer_negative = answer < 0.0
 10796     check_negative = check < 0.0
 10797     both_negative = answer_negative .and. check_negative
 10798     if (.not. negative_support_on) both_negative = .false.
 10800     judge = answer < check
 10801     where (both_negative) judge = .not. judge
 10803     judge_rev = .not. judge
 10804     err_flag = any(judge_rev)
 10806     pos = maxloc(mask_array, judge_rev)
 10818                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
 10823         &    trim(adjustl(pos_array(1))) // 
')' 10825       if ( both_negative( &
 10829         abs_mes = 
'ABSOLUTE value of' 10836     deallocate(mask_array, judge, judge_rev)
 10837     deallocate(answer_negative, check_negative, both_negative)
 10843       write(*,*) 
' *** Error [AssertGT] *** Checking ' // trim(message) // 
' FAILURE' 10845       write(*,*) 
' ' // trim(abs_mes) // &
 10846         &        
' check' // trim(pos_str) // 
'  = ', wrong
 10847       write(*,*) 
'    is NOT GREATER THAN' 10848       write(*,*) 
' ' // trim(abs_mes) // &
 10849         &        
' answer' // trim(pos_str) // 
' = ', right
 10853       write(*,*) 
' *** MESSAGE [AssertGT] *** Checking ' // trim(message) // 
' OK' 10861     & message, answer, check, negative_support)
 10865     character(*), 
intent(in):: message
 10866     real, 
intent(in):: answer(:,:)
 10867     real, 
intent(in):: check(:,:)
 10868     logical, 
intent(in), 
optional:: negative_support
 10870     logical:: negative_support_on
 10871     character(STRING):: pos_str
 10872     character(TOKEN):: abs_mes
 10873     real:: wrong, right
 10875                         integer:: answer_shape(2), check_shape(2), pos(2)
 10876     logical:: consist_shape(2)
 10877     character(TOKEN):: pos_array(2)
 10878     integer, 
allocatable:: mask_array(:,:)
 10879     logical, 
allocatable:: judge(:,:)
 10880     logical, 
allocatable:: judge_rev(:,:)
 10881     logical, 
allocatable:: answer_negative(:,:)
 10882     logical, 
allocatable:: check_negative(:,:)
 10883     logical, 
allocatable:: both_negative(:,:)
 10887     if (
present(negative_support)) 
then 10888       negative_support_on = negative_support
 10890       negative_support_on = .true.
 10896     answer_shape = shape(answer)
 10897     check_shape = shape(check)
 10899     consist_shape = answer_shape == check_shape
 10901     if (.not. all(consist_shape)) 
then 10902       write(*,*) 
' *** Error [AssertGT] *** Checking ' // trim(message) // 
' FAILURE' 10904       write(*,*) 
'  shape of check is (', check_shape, 
')' 10905       write(*,*) 
'    is INCORRECT' 10906       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')' 10912     allocate( mask_array( &
 10913                             &    answer_shape(1), &
 10915       &    answer_shape(2)  )  &
 10919                             &    answer_shape(1), &
 10921       &    answer_shape(2)  )  &
 10924     allocate( judge_rev( &
 10925                             &    answer_shape(1), &
 10927       &    answer_shape(2)  )  &
 10930     allocate( answer_negative( &
 10931                             &    answer_shape(1), &
 10933       &    answer_shape(2)  )  &
 10936     allocate( check_negative( &
 10937                             &    answer_shape(1), &
 10939       &    answer_shape(2)  )  &
 10942     allocate( both_negative( &
 10943                             &    answer_shape(1), &
 10945       &    answer_shape(2)  )  &
 10948     answer_negative = answer < 0.0
 10949     check_negative = check < 0.0
 10950     both_negative = answer_negative .and. check_negative
 10951     if (.not. negative_support_on) both_negative = .false.
 10953     judge = answer < check
 10954     where (both_negative) judge = .not. judge
 10956     judge_rev = .not. judge
 10957     err_flag = any(judge_rev)
 10959     pos = maxloc(mask_array, judge_rev)
 10973                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
 10975       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
 10979                               &    trim(adjustl(pos_array(1))) // 
',' // &
 10981         &    trim(adjustl(pos_array(2))) // 
')' 10983       if ( both_negative( &
 10988         abs_mes = 
'ABSOLUTE value of' 10995     deallocate(mask_array, judge, judge_rev)
 10996     deallocate(answer_negative, check_negative, both_negative)
 11002       write(*,*) 
' *** Error [AssertGT] *** Checking ' // trim(message) // 
' FAILURE' 11004       write(*,*) 
' ' // trim(abs_mes) // &
 11005         &        
' check' // trim(pos_str) // 
'  = ', wrong
 11006       write(*,*) 
'    is NOT GREATER THAN' 11007       write(*,*) 
' ' // trim(abs_mes) // &
 11008         &        
' answer' // trim(pos_str) // 
' = ', right
 11012       write(*,*) 
' *** MESSAGE [AssertGT] *** Checking ' // trim(message) // 
' OK' 11020     & message, answer, check, negative_support)
 11024     character(*), 
intent(in):: message
 11025     real, 
intent(in):: answer(:,:,:)
 11026     real, 
intent(in):: check(:,:,:)
 11027     logical, 
intent(in), 
optional:: negative_support
 11029     logical:: negative_support_on
 11030     character(STRING):: pos_str
 11031     character(TOKEN):: abs_mes
 11032     real:: wrong, right
 11034                         integer:: answer_shape(3), check_shape(3), pos(3)
 11035     logical:: consist_shape(3)
 11036     character(TOKEN):: pos_array(3)
 11037     integer, 
allocatable:: mask_array(:,:,:)
 11038     logical, 
allocatable:: judge(:,:,:)
 11039     logical, 
allocatable:: judge_rev(:,:,:)
 11040     logical, 
allocatable:: answer_negative(:,:,:)
 11041     logical, 
allocatable:: check_negative(:,:,:)
 11042     logical, 
allocatable:: both_negative(:,:,:)
 11046     if (
present(negative_support)) 
then 11047       negative_support_on = negative_support
 11049       negative_support_on = .true.
 11055     answer_shape = shape(answer)
 11056     check_shape = shape(check)
 11058     consist_shape = answer_shape == check_shape
 11060     if (.not. all(consist_shape)) 
then 11061       write(*,*) 
' *** Error [AssertGT] *** Checking ' // trim(message) // 
' FAILURE' 11063       write(*,*) 
'  shape of check is (', check_shape, 
')' 11064       write(*,*) 
'    is INCORRECT' 11065       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')' 11071     allocate( mask_array( &
 11072                             &    answer_shape(1), &
 11074       &    answer_shape(2), &
 11076       &    answer_shape(3)  )  &
 11080                             &    answer_shape(1), &
 11082       &    answer_shape(2), &
 11084       &    answer_shape(3)  )  &
 11087     allocate( judge_rev( &
 11088                             &    answer_shape(1), &
 11090       &    answer_shape(2), &
 11092       &    answer_shape(3)  )  &
 11095     allocate( answer_negative( &
 11096                             &    answer_shape(1), &
 11098       &    answer_shape(2), &
 11100       &    answer_shape(3)  )  &
 11103     allocate( check_negative( &
 11104                             &    answer_shape(1), &
 11106       &    answer_shape(2), &
 11108       &    answer_shape(3)  )  &
 11111     allocate( both_negative( &
 11112                             &    answer_shape(1), &
 11114       &    answer_shape(2), &
 11116       &    answer_shape(3)  )  &
 11119     answer_negative = answer < 0.0
 11120     check_negative = check < 0.0
 11121     both_negative = answer_negative .and. check_negative
 11122     if (.not. negative_support_on) both_negative = .false.
 11124     judge = answer < check
 11125     where (both_negative) judge = .not. judge
 11127     judge_rev = .not. judge
 11128     err_flag = any(judge_rev)
 11130     pos = maxloc(mask_array, judge_rev)
 11148                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
 11150       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
 11152       write(unit=pos_array(3), fmt=
"(i20)") pos(3)
 11156                               &    trim(adjustl(pos_array(1))) // 
',' // &
 11158         &    trim(adjustl(pos_array(2))) // 
',' // &
 11160         &    trim(adjustl(pos_array(3))) // 
')' 11162       if ( both_negative( &
 11169         abs_mes = 
'ABSOLUTE value of' 11176     deallocate(mask_array, judge, judge_rev)
 11177     deallocate(answer_negative, check_negative, both_negative)
 11183       write(*,*) 
' *** Error [AssertGT] *** Checking ' // trim(message) // 
' FAILURE' 11185       write(*,*) 
' ' // trim(abs_mes) // &
 11186         &        
' check' // trim(pos_str) // 
'  = ', wrong
 11187       write(*,*) 
'    is NOT GREATER THAN' 11188       write(*,*) 
' ' // trim(abs_mes) // &
 11189         &        
' answer' // trim(pos_str) // 
' = ', right
 11193       write(*,*) 
' *** MESSAGE [AssertGT] *** Checking ' // trim(message) // 
' OK' 11201     & message, answer, check, negative_support)
 11205     character(*), 
intent(in):: message
 11206     real, 
intent(in):: answer(:,:,:,:)
 11207     real, 
intent(in):: check(:,:,:,:)
 11208     logical, 
intent(in), 
optional:: negative_support
 11210     logical:: negative_support_on
 11211     character(STRING):: pos_str
 11212     character(TOKEN):: abs_mes
 11213     real:: wrong, right
 11215                         integer:: answer_shape(4), check_shape(4), pos(4)
 11216     logical:: consist_shape(4)
 11217     character(TOKEN):: pos_array(4)
 11218     integer, 
allocatable:: mask_array(:,:,:,:)
 11219     logical, 
allocatable:: judge(:,:,:,:)
 11220     logical, 
allocatable:: judge_rev(:,:,:,:)
 11221     logical, 
allocatable:: answer_negative(:,:,:,:)
 11222     logical, 
allocatable:: check_negative(:,:,:,:)
 11223     logical, 
allocatable:: both_negative(:,:,:,:)
 11227     if (
present(negative_support)) 
then 11228       negative_support_on = negative_support
 11230       negative_support_on = .true.
 11236     answer_shape = shape(answer)
 11237     check_shape = shape(check)
 11239     consist_shape = answer_shape == check_shape
 11241     if (.not. all(consist_shape)) 
then 11242       write(*,*) 
' *** Error [AssertGT] *** Checking ' // trim(message) // 
' FAILURE' 11244       write(*,*) 
'  shape of check is (', check_shape, 
')' 11245       write(*,*) 
'    is INCORRECT' 11246       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')' 11252     allocate( mask_array( &
 11253                             &    answer_shape(1), &
 11255       &    answer_shape(2), &
 11257       &    answer_shape(3), &
 11259       &    answer_shape(4)  )  &
 11263                             &    answer_shape(1), &
 11265       &    answer_shape(2), &
 11267       &    answer_shape(3), &
 11269       &    answer_shape(4)  )  &
 11272     allocate( judge_rev( &
 11273                             &    answer_shape(1), &
 11275       &    answer_shape(2), &
 11277       &    answer_shape(3), &
 11279       &    answer_shape(4)  )  &
 11282     allocate( answer_negative( &
 11283                             &    answer_shape(1), &
 11285       &    answer_shape(2), &
 11287       &    answer_shape(3), &
 11289       &    answer_shape(4)  )  &
 11292     allocate( check_negative( &
 11293                             &    answer_shape(1), &
 11295       &    answer_shape(2), &
 11297       &    answer_shape(3), &
 11299       &    answer_shape(4)  )  &
 11302     allocate( both_negative( &
 11303                             &    answer_shape(1), &
 11305       &    answer_shape(2), &
 11307       &    answer_shape(3), &
 11309       &    answer_shape(4)  )  &
 11312     answer_negative = answer < 0.0
 11313     check_negative = check < 0.0
 11314     both_negative = answer_negative .and. check_negative
 11315     if (.not. negative_support_on) both_negative = .false.
 11317     judge = answer < check
 11318     where (both_negative) judge = .not. judge
 11320     judge_rev = .not. judge
 11321     err_flag = any(judge_rev)
 11323     pos = maxloc(mask_array, judge_rev)
 11345                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
 11347       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
 11349       write(unit=pos_array(3), fmt=
"(i20)") pos(3)
 11351       write(unit=pos_array(4), fmt=
"(i20)") pos(4)
 11355                               &    trim(adjustl(pos_array(1))) // 
',' // &
 11357         &    trim(adjustl(pos_array(2))) // 
',' // &
 11359         &    trim(adjustl(pos_array(3))) // 
',' // &
 11361         &    trim(adjustl(pos_array(4))) // 
')' 11363       if ( both_negative( &
 11372         abs_mes = 
'ABSOLUTE value of' 11379     deallocate(mask_array, judge, judge_rev)
 11380     deallocate(answer_negative, check_negative, both_negative)
 11386       write(*,*) 
' *** Error [AssertGT] *** Checking ' // trim(message) // 
' FAILURE' 11388       write(*,*) 
' ' // trim(abs_mes) // &
 11389         &        
' check' // trim(pos_str) // 
'  = ', wrong
 11390       write(*,*) 
'    is NOT GREATER THAN' 11391       write(*,*) 
' ' // trim(abs_mes) // &
 11392         &        
' answer' // trim(pos_str) // 
' = ', right
 11396       write(*,*) 
' *** MESSAGE [AssertGT] *** Checking ' // trim(message) // 
' OK' 11404     & message, answer, check, negative_support)
 11408     character(*), 
intent(in):: message
 11409     real, 
intent(in):: answer(:,:,:,:,:)
 11410     real, 
intent(in):: check(:,:,:,:,:)
 11411     logical, 
intent(in), 
optional:: negative_support
 11413     logical:: negative_support_on
 11414     character(STRING):: pos_str
 11415     character(TOKEN):: abs_mes
 11416     real:: wrong, right
 11418                         integer:: answer_shape(5), check_shape(5), pos(5)
 11419     logical:: consist_shape(5)
 11420     character(TOKEN):: pos_array(5)
 11421     integer, 
allocatable:: mask_array(:,:,:,:,:)
 11422     logical, 
allocatable:: judge(:,:,:,:,:)
 11423     logical, 
allocatable:: judge_rev(:,:,:,:,:)
 11424     logical, 
allocatable:: answer_negative(:,:,:,:,:)
 11425     logical, 
allocatable:: check_negative(:,:,:,:,:)
 11426     logical, 
allocatable:: both_negative(:,:,:,:,:)
 11430     if (
present(negative_support)) 
then 11431       negative_support_on = negative_support
 11433       negative_support_on = .true.
 11439     answer_shape = shape(answer)
 11440     check_shape = shape(check)
 11442     consist_shape = answer_shape == check_shape
 11444     if (.not. all(consist_shape)) 
then 11445       write(*,*) 
' *** Error [AssertGT] *** Checking ' // trim(message) // 
' FAILURE' 11447       write(*,*) 
'  shape of check is (', check_shape, 
')' 11448       write(*,*) 
'    is INCORRECT' 11449       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')' 11455     allocate( mask_array( &
 11456                             &    answer_shape(1), &
 11458       &    answer_shape(2), &
 11460       &    answer_shape(3), &
 11462       &    answer_shape(4), &
 11464       &    answer_shape(5)  )  &
 11468                             &    answer_shape(1), &
 11470       &    answer_shape(2), &
 11472       &    answer_shape(3), &
 11474       &    answer_shape(4), &
 11476       &    answer_shape(5)  )  &
 11479     allocate( judge_rev( &
 11480                             &    answer_shape(1), &
 11482       &    answer_shape(2), &
 11484       &    answer_shape(3), &
 11486       &    answer_shape(4), &
 11488       &    answer_shape(5)  )  &
 11491     allocate( answer_negative( &
 11492                             &    answer_shape(1), &
 11494       &    answer_shape(2), &
 11496       &    answer_shape(3), &
 11498       &    answer_shape(4), &
 11500       &    answer_shape(5)  )  &
 11503     allocate( check_negative( &
 11504                             &    answer_shape(1), &
 11506       &    answer_shape(2), &
 11508       &    answer_shape(3), &
 11510       &    answer_shape(4), &
 11512       &    answer_shape(5)  )  &
 11515     allocate( both_negative( &
 11516                             &    answer_shape(1), &
 11518       &    answer_shape(2), &
 11520       &    answer_shape(3), &
 11522       &    answer_shape(4), &
 11524       &    answer_shape(5)  )  &
 11527     answer_negative = answer < 0.0
 11528     check_negative = check < 0.0
 11529     both_negative = answer_negative .and. check_negative
 11530     if (.not. negative_support_on) both_negative = .false.
 11532     judge = answer < check
 11533     where (both_negative) judge = .not. judge
 11535     judge_rev = .not. judge
 11536     err_flag = any(judge_rev)
 11538     pos = maxloc(mask_array, judge_rev)
 11564                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
 11566       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
 11568       write(unit=pos_array(3), fmt=
"(i20)") pos(3)
 11570       write(unit=pos_array(4), fmt=
"(i20)") pos(4)
 11572       write(unit=pos_array(5), fmt=
"(i20)") pos(5)
 11576                               &    trim(adjustl(pos_array(1))) // 
',' // &
 11578         &    trim(adjustl(pos_array(2))) // 
',' // &
 11580         &    trim(adjustl(pos_array(3))) // 
',' // &
 11582         &    trim(adjustl(pos_array(4))) // 
',' // &
 11584         &    trim(adjustl(pos_array(5))) // 
')' 11586       if ( both_negative( &
 11597         abs_mes = 
'ABSOLUTE value of' 11604     deallocate(mask_array, judge, judge_rev)
 11605     deallocate(answer_negative, check_negative, both_negative)
 11611       write(*,*) 
' *** Error [AssertGT] *** Checking ' // trim(message) // 
' FAILURE' 11613       write(*,*) 
' ' // trim(abs_mes) // &
 11614         &        
' check' // trim(pos_str) // 
'  = ', wrong
 11615       write(*,*) 
'    is NOT GREATER THAN' 11616       write(*,*) 
' ' // trim(abs_mes) // &
 11617         &        
' answer' // trim(pos_str) // 
' = ', right
 11621       write(*,*) 
' *** MESSAGE [AssertGT] *** Checking ' // trim(message) // 
' OK' 11629     & message, answer, check, negative_support)
 11633     character(*), 
intent(in):: message
 11634     real, 
intent(in):: answer(:,:,:,:,:,:)
 11635     real, 
intent(in):: check(:,:,:,:,:,:)
 11636     logical, 
intent(in), 
optional:: negative_support
 11638     logical:: negative_support_on
 11639     character(STRING):: pos_str
 11640     character(TOKEN):: abs_mes
 11641     real:: wrong, right
 11643                         integer:: answer_shape(6), check_shape(6), pos(6)
 11644     logical:: consist_shape(6)
 11645     character(TOKEN):: pos_array(6)
 11646     integer, 
allocatable:: mask_array(:,:,:,:,:,:)
 11647     logical, 
allocatable:: judge(:,:,:,:,:,:)
 11648     logical, 
allocatable:: judge_rev(:,:,:,:,:,:)
 11649     logical, 
allocatable:: answer_negative(:,:,:,:,:,:)
 11650     logical, 
allocatable:: check_negative(:,:,:,:,:,:)
 11651     logical, 
allocatable:: both_negative(:,:,:,:,:,:)
 11655     if (
present(negative_support)) 
then 11656       negative_support_on = negative_support
 11658       negative_support_on = .true.
 11664     answer_shape = shape(answer)
 11665     check_shape = shape(check)
 11667     consist_shape = answer_shape == check_shape
 11669     if (.not. all(consist_shape)) 
then 11670       write(*,*) 
' *** Error [AssertGT] *** Checking ' // trim(message) // 
' FAILURE' 11672       write(*,*) 
'  shape of check is (', check_shape, 
')' 11673       write(*,*) 
'    is INCORRECT' 11674       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')' 11680     allocate( mask_array( &
 11681                             &    answer_shape(1), &
 11683       &    answer_shape(2), &
 11685       &    answer_shape(3), &
 11687       &    answer_shape(4), &
 11689       &    answer_shape(5), &
 11691       &    answer_shape(6)  )  &
 11695                             &    answer_shape(1), &
 11697       &    answer_shape(2), &
 11699       &    answer_shape(3), &
 11701       &    answer_shape(4), &
 11703       &    answer_shape(5), &
 11705       &    answer_shape(6)  )  &
 11708     allocate( judge_rev( &
 11709                             &    answer_shape(1), &
 11711       &    answer_shape(2), &
 11713       &    answer_shape(3), &
 11715       &    answer_shape(4), &
 11717       &    answer_shape(5), &
 11719       &    answer_shape(6)  )  &
 11722     allocate( answer_negative( &
 11723                             &    answer_shape(1), &
 11725       &    answer_shape(2), &
 11727       &    answer_shape(3), &
 11729       &    answer_shape(4), &
 11731       &    answer_shape(5), &
 11733       &    answer_shape(6)  )  &
 11736     allocate( check_negative( &
 11737                             &    answer_shape(1), &
 11739       &    answer_shape(2), &
 11741       &    answer_shape(3), &
 11743       &    answer_shape(4), &
 11745       &    answer_shape(5), &
 11747       &    answer_shape(6)  )  &
 11750     allocate( both_negative( &
 11751                             &    answer_shape(1), &
 11753       &    answer_shape(2), &
 11755       &    answer_shape(3), &
 11757       &    answer_shape(4), &
 11759       &    answer_shape(5), &
 11761       &    answer_shape(6)  )  &
 11764     answer_negative = answer < 0.0
 11765     check_negative = check < 0.0
 11766     both_negative = answer_negative .and. check_negative
 11767     if (.not. negative_support_on) both_negative = .false.
 11769     judge = answer < check
 11770     where (both_negative) judge = .not. judge
 11772     judge_rev = .not. judge
 11773     err_flag = any(judge_rev)
 11775     pos = maxloc(mask_array, judge_rev)
 11805                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
 11807       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
 11809       write(unit=pos_array(3), fmt=
"(i20)") pos(3)
 11811       write(unit=pos_array(4), fmt=
"(i20)") pos(4)
 11813       write(unit=pos_array(5), fmt=
"(i20)") pos(5)
 11815       write(unit=pos_array(6), fmt=
"(i20)") pos(6)
 11819                               &    trim(adjustl(pos_array(1))) // 
',' // &
 11821         &    trim(adjustl(pos_array(2))) // 
',' // &
 11823         &    trim(adjustl(pos_array(3))) // 
',' // &
 11825         &    trim(adjustl(pos_array(4))) // 
',' // &
 11827         &    trim(adjustl(pos_array(5))) // 
',' // &
 11829         &    trim(adjustl(pos_array(6))) // 
')' 11831       if ( both_negative( &
 11844         abs_mes = 
'ABSOLUTE value of' 11851     deallocate(mask_array, judge, judge_rev)
 11852     deallocate(answer_negative, check_negative, both_negative)
 11858       write(*,*) 
' *** Error [AssertGT] *** Checking ' // trim(message) // 
' FAILURE' 11860       write(*,*) 
' ' // trim(abs_mes) // &
 11861         &        
' check' // trim(pos_str) // 
'  = ', wrong
 11862       write(*,*) 
'    is NOT GREATER THAN' 11863       write(*,*) 
' ' // trim(abs_mes) // &
 11864         &        
' answer' // trim(pos_str) // 
' = ', right
 11868       write(*,*) 
' *** MESSAGE [AssertGT] *** Checking ' // trim(message) // 
' OK' 11876     & message, answer, check, negative_support)
 11880     character(*), 
intent(in):: message
 11881     real, 
intent(in):: answer(:,:,:,:,:,:,:)
 11882     real, 
intent(in):: check(:,:,:,:,:,:,:)
 11883     logical, 
intent(in), 
optional:: negative_support
 11885     logical:: negative_support_on
 11886     character(STRING):: pos_str
 11887     character(TOKEN):: abs_mes
 11888     real:: wrong, right
 11890                         integer:: answer_shape(7), check_shape(7), pos(7)
 11891     logical:: consist_shape(7)
 11892     character(TOKEN):: pos_array(7)
 11893     integer, 
allocatable:: mask_array(:,:,:,:,:,:,:)
 11894     logical, 
allocatable:: judge(:,:,:,:,:,:,:)
 11895     logical, 
allocatable:: judge_rev(:,:,:,:,:,:,:)
 11896     logical, 
allocatable:: answer_negative(:,:,:,:,:,:,:)
 11897     logical, 
allocatable:: check_negative(:,:,:,:,:,:,:)
 11898     logical, 
allocatable:: both_negative(:,:,:,:,:,:,:)
 11902     if (
present(negative_support)) 
then 11903       negative_support_on = negative_support
 11905       negative_support_on = .true.
 11911     answer_shape = shape(answer)
 11912     check_shape = shape(check)
 11914     consist_shape = answer_shape == check_shape
 11916     if (.not. all(consist_shape)) 
then 11917       write(*,*) 
' *** Error [AssertGT] *** Checking ' // trim(message) // 
' FAILURE' 11919       write(*,*) 
'  shape of check is (', check_shape, 
')' 11920       write(*,*) 
'    is INCORRECT' 11921       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')' 11927     allocate( mask_array( &
 11928                             &    answer_shape(1), &
 11930       &    answer_shape(2), &
 11932       &    answer_shape(3), &
 11934       &    answer_shape(4), &
 11936       &    answer_shape(5), &
 11938       &    answer_shape(6), &
 11940       &    answer_shape(7)  )  &
 11944                             &    answer_shape(1), &
 11946       &    answer_shape(2), &
 11948       &    answer_shape(3), &
 11950       &    answer_shape(4), &
 11952       &    answer_shape(5), &
 11954       &    answer_shape(6), &
 11956       &    answer_shape(7)  )  &
 11959     allocate( judge_rev( &
 11960                             &    answer_shape(1), &
 11962       &    answer_shape(2), &
 11964       &    answer_shape(3), &
 11966       &    answer_shape(4), &
 11968       &    answer_shape(5), &
 11970       &    answer_shape(6), &
 11972       &    answer_shape(7)  )  &
 11975     allocate( answer_negative( &
 11976                             &    answer_shape(1), &
 11978       &    answer_shape(2), &
 11980       &    answer_shape(3), &
 11982       &    answer_shape(4), &
 11984       &    answer_shape(5), &
 11986       &    answer_shape(6), &
 11988       &    answer_shape(7)  )  &
 11991     allocate( check_negative( &
 11992                             &    answer_shape(1), &
 11994       &    answer_shape(2), &
 11996       &    answer_shape(3), &
 11998       &    answer_shape(4), &
 12000       &    answer_shape(5), &
 12002       &    answer_shape(6), &
 12004       &    answer_shape(7)  )  &
 12007     allocate( both_negative( &
 12008                             &    answer_shape(1), &
 12010       &    answer_shape(2), &
 12012       &    answer_shape(3), &
 12014       &    answer_shape(4), &
 12016       &    answer_shape(5), &
 12018       &    answer_shape(6), &
 12020       &    answer_shape(7)  )  &
 12023     answer_negative = answer < 0.0
 12024     check_negative = check < 0.0
 12025     both_negative = answer_negative .and. check_negative
 12026     if (.not. negative_support_on) both_negative = .false.
 12028     judge = answer < check
 12029     where (both_negative) judge = .not. judge
 12031     judge_rev = .not. judge
 12032     err_flag = any(judge_rev)
 12034     pos = maxloc(mask_array, judge_rev)
 12068                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
 12070       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
 12072       write(unit=pos_array(3), fmt=
"(i20)") pos(3)
 12074       write(unit=pos_array(4), fmt=
"(i20)") pos(4)
 12076       write(unit=pos_array(5), fmt=
"(i20)") pos(5)
 12078       write(unit=pos_array(6), fmt=
"(i20)") pos(6)
 12080       write(unit=pos_array(7), fmt=
"(i20)") pos(7)
 12084                               &    trim(adjustl(pos_array(1))) // 
',' // &
 12086         &    trim(adjustl(pos_array(2))) // 
',' // &
 12088         &    trim(adjustl(pos_array(3))) // 
',' // &
 12090         &    trim(adjustl(pos_array(4))) // 
',' // &
 12092         &    trim(adjustl(pos_array(5))) // 
',' // &
 12094         &    trim(adjustl(pos_array(6))) // 
',' // &
 12096         &    trim(adjustl(pos_array(7))) // 
')' 12098       if ( both_negative( &
 12113         abs_mes = 
'ABSOLUTE value of' 12120     deallocate(mask_array, judge, judge_rev)
 12121     deallocate(answer_negative, check_negative, both_negative)
 12127       write(*,*) 
' *** Error [AssertGT] *** Checking ' // trim(message) // 
' FAILURE' 12129       write(*,*) 
' ' // trim(abs_mes) // &
 12130         &        
' check' // trim(pos_str) // 
'  = ', wrong
 12131       write(*,*) 
'    is NOT GREATER THAN' 12132       write(*,*) 
' ' // trim(abs_mes) // &
 12133         &        
' answer' // trim(pos_str) // 
' = ', right
 12137       write(*,*) 
' *** MESSAGE [AssertGT] *** Checking ' // trim(message) // 
' OK' 12145     & message, answer, check, negative_support)
 12149     character(*), 
intent(in):: message
 12150     real(DP), 
intent(in):: answer
 12151     real(DP), 
intent(in):: check
 12152     logical, 
intent(in), 
optional:: negative_support
 12154     logical:: negative_support_on
 12155     character(STRING):: pos_str
 12156     character(TOKEN):: abs_mes
 12157     real(DP):: wrong, right
 12162     if (
present(negative_support)) 
then 12163       negative_support_on = negative_support
 12165       negative_support_on = .true.
 12171     err_flag = .not. answer < check
 12174     if ( answer < 0.0_dp &
 12175       &  .and. check < 0.0_dp &
 12176       &  .and. negative_support_on ) 
then 12178       err_flag = .not. err_flag
 12179       abs_mes = 
'ABSOLUTE value of' 12190       write(*,*) 
' *** Error [AssertGT] *** Checking ' // trim(message) // 
' FAILURE' 12192       write(*,*) 
' ' // trim(abs_mes) // &
 12193         &        
' check' // trim(pos_str) // 
'  = ', wrong
 12194       write(*,*) 
'    is NOT GREATER THAN' 12195       write(*,*) 
' ' // trim(abs_mes) // &
 12196         &        
' answer' // trim(pos_str) // 
' = ', right
 12200       write(*,*) 
' *** MESSAGE [AssertGT] *** Checking ' // trim(message) // 
' OK' 12208     & message, answer, check, negative_support)
 12212     character(*), 
intent(in):: message
 12213     real(DP), 
intent(in):: answer(:)
 12214     real(DP), 
intent(in):: check(:)
 12215     logical, 
intent(in), 
optional:: negative_support
 12217     logical:: negative_support_on
 12218     character(STRING):: pos_str
 12219     character(TOKEN):: abs_mes
 12220     real(DP):: wrong, right
 12222                         integer:: answer_shape(1), check_shape(1), pos(1)
 12223     logical:: consist_shape(1)
 12224     character(TOKEN):: pos_array(1)
 12225     integer, 
allocatable:: mask_array(:)
 12226     logical, 
allocatable:: judge(:)
 12227     logical, 
allocatable:: judge_rev(:)
 12228     logical, 
allocatable:: answer_negative(:)
 12229     logical, 
allocatable:: check_negative(:)
 12230     logical, 
allocatable:: both_negative(:)
 12234     if (
present(negative_support)) 
then 12235       negative_support_on = negative_support
 12237       negative_support_on = .true.
 12243     answer_shape = shape(answer)
 12244     check_shape = shape(check)
 12246     consist_shape = answer_shape == check_shape
 12248     if (.not. all(consist_shape)) 
then 12249       write(*,*) 
' *** Error [AssertGT] *** Checking ' // trim(message) // 
' FAILURE' 12251       write(*,*) 
'  shape of check is (', check_shape, 
')' 12252       write(*,*) 
'    is INCORRECT' 12253       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')' 12259     allocate( mask_array( &
 12261       &    answer_shape(1)  )  &
 12266       &    answer_shape(1)  )  &
 12269     allocate( judge_rev( &
 12271       &    answer_shape(1)  )  &
 12274     allocate( answer_negative( &
 12276       &    answer_shape(1)  )  &
 12279     allocate( check_negative( &
 12281       &    answer_shape(1)  )  &
 12284     allocate( both_negative( &
 12286       &    answer_shape(1)  )  &
 12289     answer_negative = answer < 0.0_dp
 12290     check_negative = check < 0.0_dp
 12291     both_negative = answer_negative .and. check_negative
 12292     if (.not. negative_support_on) both_negative = .false.
 12294     judge = answer < check
 12295     where (both_negative) judge = .not. judge
 12297     judge_rev = .not. judge
 12298     err_flag = any(judge_rev)
 12300     pos = maxloc(mask_array, judge_rev)
 12312                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
 12317         &    trim(adjustl(pos_array(1))) // 
')' 12319       if ( both_negative( &
 12323         abs_mes = 
'ABSOLUTE value of' 12330     deallocate(mask_array, judge, judge_rev)
 12331     deallocate(answer_negative, check_negative, both_negative)
 12337       write(*,*) 
' *** Error [AssertGT] *** Checking ' // trim(message) // 
' FAILURE' 12339       write(*,*) 
' ' // trim(abs_mes) // &
 12340         &        
' check' // trim(pos_str) // 
'  = ', wrong
 12341       write(*,*) 
'    is NOT GREATER THAN' 12342       write(*,*) 
' ' // trim(abs_mes) // &
 12343         &        
' answer' // trim(pos_str) // 
' = ', right
 12347       write(*,*) 
' *** MESSAGE [AssertGT] *** Checking ' // trim(message) // 
' OK' 12355     & message, answer, check, negative_support)
 12359     character(*), 
intent(in):: message
 12360     real(DP), 
intent(in):: answer(:,:)
 12361     real(DP), 
intent(in):: check(:,:)
 12362     logical, 
intent(in), 
optional:: negative_support
 12364     logical:: negative_support_on
 12365     character(STRING):: pos_str
 12366     character(TOKEN):: abs_mes
 12367     real(DP):: wrong, right
 12369                         integer:: answer_shape(2), check_shape(2), pos(2)
 12370     logical:: consist_shape(2)
 12371     character(TOKEN):: pos_array(2)
 12372     integer, 
allocatable:: mask_array(:,:)
 12373     logical, 
allocatable:: judge(:,:)
 12374     logical, 
allocatable:: judge_rev(:,:)
 12375     logical, 
allocatable:: answer_negative(:,:)
 12376     logical, 
allocatable:: check_negative(:,:)
 12377     logical, 
allocatable:: both_negative(:,:)
 12381     if (
present(negative_support)) 
then 12382       negative_support_on = negative_support
 12384       negative_support_on = .true.
 12390     answer_shape = shape(answer)
 12391     check_shape = shape(check)
 12393     consist_shape = answer_shape == check_shape
 12395     if (.not. all(consist_shape)) 
then 12396       write(*,*) 
' *** Error [AssertGT] *** Checking ' // trim(message) // 
' FAILURE' 12398       write(*,*) 
'  shape of check is (', check_shape, 
')' 12399       write(*,*) 
'    is INCORRECT' 12400       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')' 12406     allocate( mask_array( &
 12407                             &    answer_shape(1), &
 12409       &    answer_shape(2)  )  &
 12413                             &    answer_shape(1), &
 12415       &    answer_shape(2)  )  &
 12418     allocate( judge_rev( &
 12419                             &    answer_shape(1), &
 12421       &    answer_shape(2)  )  &
 12424     allocate( answer_negative( &
 12425                             &    answer_shape(1), &
 12427       &    answer_shape(2)  )  &
 12430     allocate( check_negative( &
 12431                             &    answer_shape(1), &
 12433       &    answer_shape(2)  )  &
 12436     allocate( both_negative( &
 12437                             &    answer_shape(1), &
 12439       &    answer_shape(2)  )  &
 12442     answer_negative = answer < 0.0_dp
 12443     check_negative = check < 0.0_dp
 12444     both_negative = answer_negative .and. check_negative
 12445     if (.not. negative_support_on) both_negative = .false.
 12447     judge = answer < check
 12448     where (both_negative) judge = .not. judge
 12450     judge_rev = .not. judge
 12451     err_flag = any(judge_rev)
 12453     pos = maxloc(mask_array, judge_rev)
 12467                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
 12469       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
 12473                               &    trim(adjustl(pos_array(1))) // 
',' // &
 12475         &    trim(adjustl(pos_array(2))) // 
')' 12477       if ( both_negative( &
 12482         abs_mes = 
'ABSOLUTE value of' 12489     deallocate(mask_array, judge, judge_rev)
 12490     deallocate(answer_negative, check_negative, both_negative)
 12496       write(*,*) 
' *** Error [AssertGT] *** Checking ' // trim(message) // 
' FAILURE' 12498       write(*,*) 
' ' // trim(abs_mes) // &
 12499         &        
' check' // trim(pos_str) // 
'  = ', wrong
 12500       write(*,*) 
'    is NOT GREATER THAN' 12501       write(*,*) 
' ' // trim(abs_mes) // &
 12502         &        
' answer' // trim(pos_str) // 
' = ', right
 12506       write(*,*) 
' *** MESSAGE [AssertGT] *** Checking ' // trim(message) // 
' OK' 12514     & message, answer, check, negative_support)
 12518     character(*), 
intent(in):: message
 12519     real(DP), 
intent(in):: answer(:,:,:)
 12520     real(DP), 
intent(in):: check(:,:,:)
 12521     logical, 
intent(in), 
optional:: negative_support
 12523     logical:: negative_support_on
 12524     character(STRING):: pos_str
 12525     character(TOKEN):: abs_mes
 12526     real(DP):: wrong, right
 12528                         integer:: answer_shape(3), check_shape(3), pos(3)
 12529     logical:: consist_shape(3)
 12530     character(TOKEN):: pos_array(3)
 12531     integer, 
allocatable:: mask_array(:,:,:)
 12532     logical, 
allocatable:: judge(:,:,:)
 12533     logical, 
allocatable:: judge_rev(:,:,:)
 12534     logical, 
allocatable:: answer_negative(:,:,:)
 12535     logical, 
allocatable:: check_negative(:,:,:)
 12536     logical, 
allocatable:: both_negative(:,:,:)
 12540     if (
present(negative_support)) 
then 12541       negative_support_on = negative_support
 12543       negative_support_on = .true.
 12549     answer_shape = shape(answer)
 12550     check_shape = shape(check)
 12552     consist_shape = answer_shape == check_shape
 12554     if (.not. all(consist_shape)) 
then 12555       write(*,*) 
' *** Error [AssertGT] *** Checking ' // trim(message) // 
' FAILURE' 12557       write(*,*) 
'  shape of check is (', check_shape, 
')' 12558       write(*,*) 
'    is INCORRECT' 12559       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')' 12565     allocate( mask_array( &
 12566                             &    answer_shape(1), &
 12568       &    answer_shape(2), &
 12570       &    answer_shape(3)  )  &
 12574                             &    answer_shape(1), &
 12576       &    answer_shape(2), &
 12578       &    answer_shape(3)  )  &
 12581     allocate( judge_rev( &
 12582                             &    answer_shape(1), &
 12584       &    answer_shape(2), &
 12586       &    answer_shape(3)  )  &
 12589     allocate( answer_negative( &
 12590                             &    answer_shape(1), &
 12592       &    answer_shape(2), &
 12594       &    answer_shape(3)  )  &
 12597     allocate( check_negative( &
 12598                             &    answer_shape(1), &
 12600       &    answer_shape(2), &
 12602       &    answer_shape(3)  )  &
 12605     allocate( both_negative( &
 12606                             &    answer_shape(1), &
 12608       &    answer_shape(2), &
 12610       &    answer_shape(3)  )  &
 12613     answer_negative = answer < 0.0_dp
 12614     check_negative = check < 0.0_dp
 12615     both_negative = answer_negative .and. check_negative
 12616     if (.not. negative_support_on) both_negative = .false.
 12618     judge = answer < check
 12619     where (both_negative) judge = .not. judge
 12621     judge_rev = .not. judge
 12622     err_flag = any(judge_rev)
 12624     pos = maxloc(mask_array, judge_rev)
 12642                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
 12644       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
 12646       write(unit=pos_array(3), fmt=
"(i20)") pos(3)
 12650                               &    trim(adjustl(pos_array(1))) // 
',' // &
 12652         &    trim(adjustl(pos_array(2))) // 
',' // &
 12654         &    trim(adjustl(pos_array(3))) // 
')' 12656       if ( both_negative( &
 12663         abs_mes = 
'ABSOLUTE value of' 12670     deallocate(mask_array, judge, judge_rev)
 12671     deallocate(answer_negative, check_negative, both_negative)
 12677       write(*,*) 
' *** Error [AssertGT] *** Checking ' // trim(message) // 
' FAILURE' 12679       write(*,*) 
' ' // trim(abs_mes) // &
 12680         &        
' check' // trim(pos_str) // 
'  = ', wrong
 12681       write(*,*) 
'    is NOT GREATER THAN' 12682       write(*,*) 
' ' // trim(abs_mes) // &
 12683         &        
' answer' // trim(pos_str) // 
' = ', right
 12687       write(*,*) 
' *** MESSAGE [AssertGT] *** Checking ' // trim(message) // 
' OK' 12695     & message, answer, check, negative_support)
 12699     character(*), 
intent(in):: message
 12700     real(DP), 
intent(in):: answer(:,:,:,:)
 12701     real(DP), 
intent(in):: check(:,:,:,:)
 12702     logical, 
intent(in), 
optional:: negative_support
 12704     logical:: negative_support_on
 12705     character(STRING):: pos_str
 12706     character(TOKEN):: abs_mes
 12707     real(DP):: wrong, right
 12709                         integer:: answer_shape(4), check_shape(4), pos(4)
 12710     logical:: consist_shape(4)
 12711     character(TOKEN):: pos_array(4)
 12712     integer, 
allocatable:: mask_array(:,:,:,:)
 12713     logical, 
allocatable:: judge(:,:,:,:)
 12714     logical, 
allocatable:: judge_rev(:,:,:,:)
 12715     logical, 
allocatable:: answer_negative(:,:,:,:)
 12716     logical, 
allocatable:: check_negative(:,:,:,:)
 12717     logical, 
allocatable:: both_negative(:,:,:,:)
 12721     if (
present(negative_support)) 
then 12722       negative_support_on = negative_support
 12724       negative_support_on = .true.
 12730     answer_shape = shape(answer)
 12731     check_shape = shape(check)
 12733     consist_shape = answer_shape == check_shape
 12735     if (.not. all(consist_shape)) 
then 12736       write(*,*) 
' *** Error [AssertGT] *** Checking ' // trim(message) // 
' FAILURE' 12738       write(*,*) 
'  shape of check is (', check_shape, 
')' 12739       write(*,*) 
'    is INCORRECT' 12740       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')' 12746     allocate( mask_array( &
 12747                             &    answer_shape(1), &
 12749       &    answer_shape(2), &
 12751       &    answer_shape(3), &
 12753       &    answer_shape(4)  )  &
 12757                             &    answer_shape(1), &
 12759       &    answer_shape(2), &
 12761       &    answer_shape(3), &
 12763       &    answer_shape(4)  )  &
 12766     allocate( judge_rev( &
 12767                             &    answer_shape(1), &
 12769       &    answer_shape(2), &
 12771       &    answer_shape(3), &
 12773       &    answer_shape(4)  )  &
 12776     allocate( answer_negative( &
 12777                             &    answer_shape(1), &
 12779       &    answer_shape(2), &
 12781       &    answer_shape(3), &
 12783       &    answer_shape(4)  )  &
 12786     allocate( check_negative( &
 12787                             &    answer_shape(1), &
 12789       &    answer_shape(2), &
 12791       &    answer_shape(3), &
 12793       &    answer_shape(4)  )  &
 12796     allocate( both_negative( &
 12797                             &    answer_shape(1), &
 12799       &    answer_shape(2), &
 12801       &    answer_shape(3), &
 12803       &    answer_shape(4)  )  &
 12806     answer_negative = answer < 0.0_dp
 12807     check_negative = check < 0.0_dp
 12808     both_negative = answer_negative .and. check_negative
 12809     if (.not. negative_support_on) both_negative = .false.
 12811     judge = answer < check
 12812     where (both_negative) judge = .not. judge
 12814     judge_rev = .not. judge
 12815     err_flag = any(judge_rev)
 12817     pos = maxloc(mask_array, judge_rev)
 12839                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
 12841       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
 12843       write(unit=pos_array(3), fmt=
"(i20)") pos(3)
 12845       write(unit=pos_array(4), fmt=
"(i20)") pos(4)
 12849                               &    trim(adjustl(pos_array(1))) // 
',' // &
 12851         &    trim(adjustl(pos_array(2))) // 
',' // &
 12853         &    trim(adjustl(pos_array(3))) // 
',' // &
 12855         &    trim(adjustl(pos_array(4))) // 
')' 12857       if ( both_negative( &
 12866         abs_mes = 
'ABSOLUTE value of' 12873     deallocate(mask_array, judge, judge_rev)
 12874     deallocate(answer_negative, check_negative, both_negative)
 12880       write(*,*) 
' *** Error [AssertGT] *** Checking ' // trim(message) // 
' FAILURE' 12882       write(*,*) 
' ' // trim(abs_mes) // &
 12883         &        
' check' // trim(pos_str) // 
'  = ', wrong
 12884       write(*,*) 
'    is NOT GREATER THAN' 12885       write(*,*) 
' ' // trim(abs_mes) // &
 12886         &        
' answer' // trim(pos_str) // 
' = ', right
 12890       write(*,*) 
' *** MESSAGE [AssertGT] *** Checking ' // trim(message) // 
' OK' 12898     & message, answer, check, negative_support)
 12902     character(*), 
intent(in):: message
 12903     real(DP), 
intent(in):: answer(:,:,:,:,:)
 12904     real(DP), 
intent(in):: check(:,:,:,:,:)
 12905     logical, 
intent(in), 
optional:: negative_support
 12907     logical:: negative_support_on
 12908     character(STRING):: pos_str
 12909     character(TOKEN):: abs_mes
 12910     real(DP):: wrong, right
 12912                         integer:: answer_shape(5), check_shape(5), pos(5)
 12913     logical:: consist_shape(5)
 12914     character(TOKEN):: pos_array(5)
 12915     integer, 
allocatable:: mask_array(:,:,:,:,:)
 12916     logical, 
allocatable:: judge(:,:,:,:,:)
 12917     logical, 
allocatable:: judge_rev(:,:,:,:,:)
 12918     logical, 
allocatable:: answer_negative(:,:,:,:,:)
 12919     logical, 
allocatable:: check_negative(:,:,:,:,:)
 12920     logical, 
allocatable:: both_negative(:,:,:,:,:)
 12924     if (
present(negative_support)) 
then 12925       negative_support_on = negative_support
 12927       negative_support_on = .true.
 12933     answer_shape = shape(answer)
 12934     check_shape = shape(check)
 12936     consist_shape = answer_shape == check_shape
 12938     if (.not. all(consist_shape)) 
then 12939       write(*,*) 
' *** Error [AssertGT] *** Checking ' // trim(message) // 
' FAILURE' 12941       write(*,*) 
'  shape of check is (', check_shape, 
')' 12942       write(*,*) 
'    is INCORRECT' 12943       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')' 12949     allocate( mask_array( &
 12950                             &    answer_shape(1), &
 12952       &    answer_shape(2), &
 12954       &    answer_shape(3), &
 12956       &    answer_shape(4), &
 12958       &    answer_shape(5)  )  &
 12962                             &    answer_shape(1), &
 12964       &    answer_shape(2), &
 12966       &    answer_shape(3), &
 12968       &    answer_shape(4), &
 12970       &    answer_shape(5)  )  &
 12973     allocate( judge_rev( &
 12974                             &    answer_shape(1), &
 12976       &    answer_shape(2), &
 12978       &    answer_shape(3), &
 12980       &    answer_shape(4), &
 12982       &    answer_shape(5)  )  &
 12985     allocate( answer_negative( &
 12986                             &    answer_shape(1), &
 12988       &    answer_shape(2), &
 12990       &    answer_shape(3), &
 12992       &    answer_shape(4), &
 12994       &    answer_shape(5)  )  &
 12997     allocate( check_negative( &
 12998                             &    answer_shape(1), &
 13000       &    answer_shape(2), &
 13002       &    answer_shape(3), &
 13004       &    answer_shape(4), &
 13006       &    answer_shape(5)  )  &
 13009     allocate( both_negative( &
 13010                             &    answer_shape(1), &
 13012       &    answer_shape(2), &
 13014       &    answer_shape(3), &
 13016       &    answer_shape(4), &
 13018       &    answer_shape(5)  )  &
 13021     answer_negative = answer < 0.0_dp
 13022     check_negative = check < 0.0_dp
 13023     both_negative = answer_negative .and. check_negative
 13024     if (.not. negative_support_on) both_negative = .false.
 13026     judge = answer < check
 13027     where (both_negative) judge = .not. judge
 13029     judge_rev = .not. judge
 13030     err_flag = any(judge_rev)
 13032     pos = maxloc(mask_array, judge_rev)
 13058                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
 13060       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
 13062       write(unit=pos_array(3), fmt=
"(i20)") pos(3)
 13064       write(unit=pos_array(4), fmt=
"(i20)") pos(4)
 13066       write(unit=pos_array(5), fmt=
"(i20)") pos(5)
 13070                               &    trim(adjustl(pos_array(1))) // 
',' // &
 13072         &    trim(adjustl(pos_array(2))) // 
',' // &
 13074         &    trim(adjustl(pos_array(3))) // 
',' // &
 13076         &    trim(adjustl(pos_array(4))) // 
',' // &
 13078         &    trim(adjustl(pos_array(5))) // 
')' 13080       if ( both_negative( &
 13091         abs_mes = 
'ABSOLUTE value of' 13098     deallocate(mask_array, judge, judge_rev)
 13099     deallocate(answer_negative, check_negative, both_negative)
 13105       write(*,*) 
' *** Error [AssertGT] *** Checking ' // trim(message) // 
' FAILURE' 13107       write(*,*) 
' ' // trim(abs_mes) // &
 13108         &        
' check' // trim(pos_str) // 
'  = ', wrong
 13109       write(*,*) 
'    is NOT GREATER THAN' 13110       write(*,*) 
' ' // trim(abs_mes) // &
 13111         &        
' answer' // trim(pos_str) // 
' = ', right
 13115       write(*,*) 
' *** MESSAGE [AssertGT] *** Checking ' // trim(message) // 
' OK' 13123     & message, answer, check, negative_support)
 13127     character(*), 
intent(in):: message
 13128     real(DP), 
intent(in):: answer(:,:,:,:,:,:)
 13129     real(DP), 
intent(in):: check(:,:,:,:,:,:)
 13130     logical, 
intent(in), 
optional:: negative_support
 13132     logical:: negative_support_on
 13133     character(STRING):: pos_str
 13134     character(TOKEN):: abs_mes
 13135     real(DP):: wrong, right
 13137                         integer:: answer_shape(6), check_shape(6), pos(6)
 13138     logical:: consist_shape(6)
 13139     character(TOKEN):: pos_array(6)
 13140     integer, 
allocatable:: mask_array(:,:,:,:,:,:)
 13141     logical, 
allocatable:: judge(:,:,:,:,:,:)
 13142     logical, 
allocatable:: judge_rev(:,:,:,:,:,:)
 13143     logical, 
allocatable:: answer_negative(:,:,:,:,:,:)
 13144     logical, 
allocatable:: check_negative(:,:,:,:,:,:)
 13145     logical, 
allocatable:: both_negative(:,:,:,:,:,:)
 13149     if (
present(negative_support)) 
then 13150       negative_support_on = negative_support
 13152       negative_support_on = .true.
 13158     answer_shape = shape(answer)
 13159     check_shape = shape(check)
 13161     consist_shape = answer_shape == check_shape
 13163     if (.not. all(consist_shape)) 
then 13164       write(*,*) 
' *** Error [AssertGT] *** Checking ' // trim(message) // 
' FAILURE' 13166       write(*,*) 
'  shape of check is (', check_shape, 
')' 13167       write(*,*) 
'    is INCORRECT' 13168       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')' 13174     allocate( mask_array( &
 13175                             &    answer_shape(1), &
 13177       &    answer_shape(2), &
 13179       &    answer_shape(3), &
 13181       &    answer_shape(4), &
 13183       &    answer_shape(5), &
 13185       &    answer_shape(6)  )  &
 13189                             &    answer_shape(1), &
 13191       &    answer_shape(2), &
 13193       &    answer_shape(3), &
 13195       &    answer_shape(4), &
 13197       &    answer_shape(5), &
 13199       &    answer_shape(6)  )  &
 13202     allocate( judge_rev( &
 13203                             &    answer_shape(1), &
 13205       &    answer_shape(2), &
 13207       &    answer_shape(3), &
 13209       &    answer_shape(4), &
 13211       &    answer_shape(5), &
 13213       &    answer_shape(6)  )  &
 13216     allocate( answer_negative( &
 13217                             &    answer_shape(1), &
 13219       &    answer_shape(2), &
 13221       &    answer_shape(3), &
 13223       &    answer_shape(4), &
 13225       &    answer_shape(5), &
 13227       &    answer_shape(6)  )  &
 13230     allocate( check_negative( &
 13231                             &    answer_shape(1), &
 13233       &    answer_shape(2), &
 13235       &    answer_shape(3), &
 13237       &    answer_shape(4), &
 13239       &    answer_shape(5), &
 13241       &    answer_shape(6)  )  &
 13244     allocate( both_negative( &
 13245                             &    answer_shape(1), &
 13247       &    answer_shape(2), &
 13249       &    answer_shape(3), &
 13251       &    answer_shape(4), &
 13253       &    answer_shape(5), &
 13255       &    answer_shape(6)  )  &
 13258     answer_negative = answer < 0.0_dp
 13259     check_negative = check < 0.0_dp
 13260     both_negative = answer_negative .and. check_negative
 13261     if (.not. negative_support_on) both_negative = .false.
 13263     judge = answer < check
 13264     where (both_negative) judge = .not. judge
 13266     judge_rev = .not. judge
 13267     err_flag = any(judge_rev)
 13269     pos = maxloc(mask_array, judge_rev)
 13299                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
 13301       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
 13303       write(unit=pos_array(3), fmt=
"(i20)") pos(3)
 13305       write(unit=pos_array(4), fmt=
"(i20)") pos(4)
 13307       write(unit=pos_array(5), fmt=
"(i20)") pos(5)
 13309       write(unit=pos_array(6), fmt=
"(i20)") pos(6)
 13313                               &    trim(adjustl(pos_array(1))) // 
',' // &
 13315         &    trim(adjustl(pos_array(2))) // 
',' // &
 13317         &    trim(adjustl(pos_array(3))) // 
',' // &
 13319         &    trim(adjustl(pos_array(4))) // 
',' // &
 13321         &    trim(adjustl(pos_array(5))) // 
',' // &
 13323         &    trim(adjustl(pos_array(6))) // 
')' 13325       if ( both_negative( &
 13338         abs_mes = 
'ABSOLUTE value of' 13345     deallocate(mask_array, judge, judge_rev)
 13346     deallocate(answer_negative, check_negative, both_negative)
 13352       write(*,*) 
' *** Error [AssertGT] *** Checking ' // trim(message) // 
' FAILURE' 13354       write(*,*) 
' ' // trim(abs_mes) // &
 13355         &        
' check' // trim(pos_str) // 
'  = ', wrong
 13356       write(*,*) 
'    is NOT GREATER THAN' 13357       write(*,*) 
' ' // trim(abs_mes) // &
 13358         &        
' answer' // trim(pos_str) // 
' = ', right
 13362       write(*,*) 
' *** MESSAGE [AssertGT] *** Checking ' // trim(message) // 
' OK' 13370     & message, answer, check, negative_support)
 13374     character(*), 
intent(in):: message
 13375     real(DP), 
intent(in):: answer(:,:,:,:,:,:,:)
 13376     real(DP), 
intent(in):: check(:,:,:,:,:,:,:)
 13377     logical, 
intent(in), 
optional:: negative_support
 13379     logical:: negative_support_on
 13380     character(STRING):: pos_str
 13381     character(TOKEN):: abs_mes
 13382     real(DP):: wrong, right
 13384                         integer:: answer_shape(7), check_shape(7), pos(7)
 13385     logical:: consist_shape(7)
 13386     character(TOKEN):: pos_array(7)
 13387     integer, 
allocatable:: mask_array(:,:,:,:,:,:,:)
 13388     logical, 
allocatable:: judge(:,:,:,:,:,:,:)
 13389     logical, 
allocatable:: judge_rev(:,:,:,:,:,:,:)
 13390     logical, 
allocatable:: answer_negative(:,:,:,:,:,:,:)
 13391     logical, 
allocatable:: check_negative(:,:,:,:,:,:,:)
 13392     logical, 
allocatable:: both_negative(:,:,:,:,:,:,:)
 13396     if (
present(negative_support)) 
then 13397       negative_support_on = negative_support
 13399       negative_support_on = .true.
 13405     answer_shape = shape(answer)
 13406     check_shape = shape(check)
 13408     consist_shape = answer_shape == check_shape
 13410     if (.not. all(consist_shape)) 
then 13411       write(*,*) 
' *** Error [AssertGT] *** Checking ' // trim(message) // 
' FAILURE' 13413       write(*,*) 
'  shape of check is (', check_shape, 
')' 13414       write(*,*) 
'    is INCORRECT' 13415       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')' 13421     allocate( mask_array( &
 13422                             &    answer_shape(1), &
 13424       &    answer_shape(2), &
 13426       &    answer_shape(3), &
 13428       &    answer_shape(4), &
 13430       &    answer_shape(5), &
 13432       &    answer_shape(6), &
 13434       &    answer_shape(7)  )  &
 13438                             &    answer_shape(1), &
 13440       &    answer_shape(2), &
 13442       &    answer_shape(3), &
 13444       &    answer_shape(4), &
 13446       &    answer_shape(5), &
 13448       &    answer_shape(6), &
 13450       &    answer_shape(7)  )  &
 13453     allocate( judge_rev( &
 13454                             &    answer_shape(1), &
 13456       &    answer_shape(2), &
 13458       &    answer_shape(3), &
 13460       &    answer_shape(4), &
 13462       &    answer_shape(5), &
 13464       &    answer_shape(6), &
 13466       &    answer_shape(7)  )  &
 13469     allocate( answer_negative( &
 13470                             &    answer_shape(1), &
 13472       &    answer_shape(2), &
 13474       &    answer_shape(3), &
 13476       &    answer_shape(4), &
 13478       &    answer_shape(5), &
 13480       &    answer_shape(6), &
 13482       &    answer_shape(7)  )  &
 13485     allocate( check_negative( &
 13486                             &    answer_shape(1), &
 13488       &    answer_shape(2), &
 13490       &    answer_shape(3), &
 13492       &    answer_shape(4), &
 13494       &    answer_shape(5), &
 13496       &    answer_shape(6), &
 13498       &    answer_shape(7)  )  &
 13501     allocate( both_negative( &
 13502                             &    answer_shape(1), &
 13504       &    answer_shape(2), &
 13506       &    answer_shape(3), &
 13508       &    answer_shape(4), &
 13510       &    answer_shape(5), &
 13512       &    answer_shape(6), &
 13514       &    answer_shape(7)  )  &
 13517     answer_negative = answer < 0.0_dp
 13518     check_negative = check < 0.0_dp
 13519     both_negative = answer_negative .and. check_negative
 13520     if (.not. negative_support_on) both_negative = .false.
 13522     judge = answer < check
 13523     where (both_negative) judge = .not. judge
 13525     judge_rev = .not. judge
 13526     err_flag = any(judge_rev)
 13528     pos = maxloc(mask_array, judge_rev)
 13562                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
 13564       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
 13566       write(unit=pos_array(3), fmt=
"(i20)") pos(3)
 13568       write(unit=pos_array(4), fmt=
"(i20)") pos(4)
 13570       write(unit=pos_array(5), fmt=
"(i20)") pos(5)
 13572       write(unit=pos_array(6), fmt=
"(i20)") pos(6)
 13574       write(unit=pos_array(7), fmt=
"(i20)") pos(7)
 13578                               &    trim(adjustl(pos_array(1))) // 
',' // &
 13580         &    trim(adjustl(pos_array(2))) // 
',' // &
 13582         &    trim(adjustl(pos_array(3))) // 
',' // &
 13584         &    trim(adjustl(pos_array(4))) // 
',' // &
 13586         &    trim(adjustl(pos_array(5))) // 
',' // &
 13588         &    trim(adjustl(pos_array(6))) // 
',' // &
 13590         &    trim(adjustl(pos_array(7))) // 
')' 13592       if ( both_negative( &
 13607         abs_mes = 
'ABSOLUTE value of' 13614     deallocate(mask_array, judge, judge_rev)
 13615     deallocate(answer_negative, check_negative, both_negative)
 13621       write(*,*) 
' *** Error [AssertGT] *** Checking ' // trim(message) // 
' FAILURE' 13623       write(*,*) 
' ' // trim(abs_mes) // &
 13624         &        
' check' // trim(pos_str) // 
'  = ', wrong
 13625       write(*,*) 
'    is NOT GREATER THAN' 13626       write(*,*) 
' ' // trim(abs_mes) // &
 13627         &        
' answer' // trim(pos_str) // 
' = ', right
 13631       write(*,*) 
' *** MESSAGE [AssertGT] *** Checking ' // trim(message) // 
' OK' 13639     & message, answer, check, negative_support)
 13643     character(*), 
intent(in):: message
 13644     integer, 
intent(in):: answer
 13645     integer, 
intent(in):: check
 13646     logical, 
intent(in), 
optional:: negative_support
 13648     logical:: negative_support_on
 13649     character(STRING):: pos_str
 13650     character(TOKEN):: abs_mes
 13651     integer:: wrong, right
 13656     if (
present(negative_support)) 
then 13657       negative_support_on = negative_support
 13659       negative_support_on = .true.
 13667     err_flag = .not. answer > check
 13671       &  .and. check < 0 &
 13672       &  .and. negative_support_on ) 
then 13674       err_flag = .not. err_flag
 13675       abs_mes = 
'ABSOLUTE value of' 13686       write(*,*) 
' *** Error [AssertLT] *** Checking ' // trim(message) // 
' FAILURE' 13688       write(*,*) 
' ' // trim(abs_mes) // &
 13689         &        
' check' // trim(pos_str) // 
'  = ', wrong
 13690       write(*,*) 
'    is NOT LESS THAN' 13691       write(*,*) 
' ' // trim(abs_mes) // &
 13692         &        
' answer' // trim(pos_str) // 
' = ', right
 13696       write(*,*) 
' *** MESSAGE [AssertLT] *** Checking ' // trim(message) // 
' OK' 13704     & message, answer, check, negative_support)
 13708     character(*), 
intent(in):: message
 13709     integer, 
intent(in):: answer(:)
 13710     integer, 
intent(in):: check(:)
 13711     logical, 
intent(in), 
optional:: negative_support
 13713     logical:: negative_support_on
 13714     character(STRING):: pos_str
 13715     character(TOKEN):: abs_mes
 13716     integer:: wrong, right
 13718                         integer:: answer_shape(1), check_shape(1), pos(1)
 13719     logical:: consist_shape(1)
 13720     character(TOKEN):: pos_array(1)
 13721     integer, 
allocatable:: mask_array(:)
 13722     logical, 
allocatable:: judge(:)
 13723     logical, 
allocatable:: judge_rev(:)
 13724     logical, 
allocatable:: answer_negative(:)
 13725     logical, 
allocatable:: check_negative(:)
 13726     logical, 
allocatable:: both_negative(:)
 13730     if (
present(negative_support)) 
then 13731       negative_support_on = negative_support
 13733       negative_support_on = .true.
 13739     answer_shape = shape(answer)
 13740     check_shape = shape(check)
 13742     consist_shape = answer_shape == check_shape
 13744     if (.not. all(consist_shape)) 
then 13745       write(*,*) 
' *** Error [AssertLT] *** Checking ' // trim(message) // 
' FAILURE' 13747       write(*,*) 
'  shape of check is (', check_shape, 
')' 13748       write(*,*) 
'    is INCORRECT' 13749       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')' 13755     allocate( mask_array( &
 13757       &    answer_shape(1)  )  &
 13762       &    answer_shape(1)  )  &
 13765     allocate( judge_rev( &
 13767       &    answer_shape(1)  )  &
 13770     allocate( answer_negative( &
 13772       &    answer_shape(1)  )  &
 13775     allocate( check_negative( &
 13777       &    answer_shape(1)  )  &
 13780     allocate( both_negative( &
 13782       &    answer_shape(1)  )  &
 13785     answer_negative = answer < 0
 13786     check_negative = check < 0
 13787     both_negative = answer_negative .and. check_negative
 13788     if (.not. negative_support_on) both_negative = .false.
 13790     judge = answer > check
 13791     where (both_negative) judge = .not. judge
 13793     judge_rev = .not. judge
 13794     err_flag = any(judge_rev)
 13796     pos = maxloc(mask_array, judge_rev)
 13808                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
 13813         &    trim(adjustl(pos_array(1))) // 
')' 13815       if ( both_negative( &
 13819         abs_mes = 
'ABSOLUTE value of' 13826     deallocate(mask_array, judge, judge_rev)
 13827     deallocate(answer_negative, check_negative, both_negative)
 13833       write(*,*) 
' *** Error [AssertLT] *** Checking ' // trim(message) // 
' FAILURE' 13835       write(*,*) 
' ' // trim(abs_mes) // &
 13836         &        
' check' // trim(pos_str) // 
'  = ', wrong
 13837       write(*,*) 
'    is NOT LESS THAN' 13838       write(*,*) 
' ' // trim(abs_mes) // &
 13839         &        
' answer' // trim(pos_str) // 
' = ', right
 13843       write(*,*) 
' *** MESSAGE [AssertLT] *** Checking ' // trim(message) // 
' OK' 13851     & message, answer, check, negative_support)
 13855     character(*), 
intent(in):: message
 13856     integer, 
intent(in):: answer(:,:)
 13857     integer, 
intent(in):: check(:,:)
 13858     logical, 
intent(in), 
optional:: negative_support
 13860     logical:: negative_support_on
 13861     character(STRING):: pos_str
 13862     character(TOKEN):: abs_mes
 13863     integer:: wrong, right
 13865                         integer:: answer_shape(2), check_shape(2), pos(2)
 13866     logical:: consist_shape(2)
 13867     character(TOKEN):: pos_array(2)
 13868     integer, 
allocatable:: mask_array(:,:)
 13869     logical, 
allocatable:: judge(:,:)
 13870     logical, 
allocatable:: judge_rev(:,:)
 13871     logical, 
allocatable:: answer_negative(:,:)
 13872     logical, 
allocatable:: check_negative(:,:)
 13873     logical, 
allocatable:: both_negative(:,:)
 13877     if (
present(negative_support)) 
then 13878       negative_support_on = negative_support
 13880       negative_support_on = .true.
 13886     answer_shape = shape(answer)
 13887     check_shape = shape(check)
 13889     consist_shape = answer_shape == check_shape
 13891     if (.not. all(consist_shape)) 
then 13892       write(*,*) 
' *** Error [AssertLT] *** Checking ' // trim(message) // 
' FAILURE' 13894       write(*,*) 
'  shape of check is (', check_shape, 
')' 13895       write(*,*) 
'    is INCORRECT' 13896       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')' 13902     allocate( mask_array( &
 13903                             &    answer_shape(1), &
 13905       &    answer_shape(2)  )  &
 13909                             &    answer_shape(1), &
 13911       &    answer_shape(2)  )  &
 13914     allocate( judge_rev( &
 13915                             &    answer_shape(1), &
 13917       &    answer_shape(2)  )  &
 13920     allocate( answer_negative( &
 13921                             &    answer_shape(1), &
 13923       &    answer_shape(2)  )  &
 13926     allocate( check_negative( &
 13927                             &    answer_shape(1), &
 13929       &    answer_shape(2)  )  &
 13932     allocate( both_negative( &
 13933                             &    answer_shape(1), &
 13935       &    answer_shape(2)  )  &
 13938     answer_negative = answer < 0
 13939     check_negative = check < 0
 13940     both_negative = answer_negative .and. check_negative
 13941     if (.not. negative_support_on) both_negative = .false.
 13943     judge = answer > check
 13944     where (both_negative) judge = .not. judge
 13946     judge_rev = .not. judge
 13947     err_flag = any(judge_rev)
 13949     pos = maxloc(mask_array, judge_rev)
 13963                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
 13965       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
 13969                               &    trim(adjustl(pos_array(1))) // 
',' // &
 13971         &    trim(adjustl(pos_array(2))) // 
')' 13973       if ( both_negative( &
 13978         abs_mes = 
'ABSOLUTE value of' 13985     deallocate(mask_array, judge, judge_rev)
 13986     deallocate(answer_negative, check_negative, both_negative)
 13992       write(*,*) 
' *** Error [AssertLT] *** Checking ' // trim(message) // 
' FAILURE' 13994       write(*,*) 
' ' // trim(abs_mes) // &
 13995         &        
' check' // trim(pos_str) // 
'  = ', wrong
 13996       write(*,*) 
'    is NOT LESS THAN' 13997       write(*,*) 
' ' // trim(abs_mes) // &
 13998         &        
' answer' // trim(pos_str) // 
' = ', right
 14002       write(*,*) 
' *** MESSAGE [AssertLT] *** Checking ' // trim(message) // 
' OK' 14010     & message, answer, check, negative_support)
 14014     character(*), 
intent(in):: message
 14015     integer, 
intent(in):: answer(:,:,:)
 14016     integer, 
intent(in):: check(:,:,:)
 14017     logical, 
intent(in), 
optional:: negative_support
 14019     logical:: negative_support_on
 14020     character(STRING):: pos_str
 14021     character(TOKEN):: abs_mes
 14022     integer:: wrong, right
 14024                         integer:: answer_shape(3), check_shape(3), pos(3)
 14025     logical:: consist_shape(3)
 14026     character(TOKEN):: pos_array(3)
 14027     integer, 
allocatable:: mask_array(:,:,:)
 14028     logical, 
allocatable:: judge(:,:,:)
 14029     logical, 
allocatable:: judge_rev(:,:,:)
 14030     logical, 
allocatable:: answer_negative(:,:,:)
 14031     logical, 
allocatable:: check_negative(:,:,:)
 14032     logical, 
allocatable:: both_negative(:,:,:)
 14036     if (
present(negative_support)) 
then 14037       negative_support_on = negative_support
 14039       negative_support_on = .true.
 14045     answer_shape = shape(answer)
 14046     check_shape = shape(check)
 14048     consist_shape = answer_shape == check_shape
 14050     if (.not. all(consist_shape)) 
then 14051       write(*,*) 
' *** Error [AssertLT] *** Checking ' // trim(message) // 
' FAILURE' 14053       write(*,*) 
'  shape of check is (', check_shape, 
')' 14054       write(*,*) 
'    is INCORRECT' 14055       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')' 14061     allocate( mask_array( &
 14062                             &    answer_shape(1), &
 14064       &    answer_shape(2), &
 14066       &    answer_shape(3)  )  &
 14070                             &    answer_shape(1), &
 14072       &    answer_shape(2), &
 14074       &    answer_shape(3)  )  &
 14077     allocate( judge_rev( &
 14078                             &    answer_shape(1), &
 14080       &    answer_shape(2), &
 14082       &    answer_shape(3)  )  &
 14085     allocate( answer_negative( &
 14086                             &    answer_shape(1), &
 14088       &    answer_shape(2), &
 14090       &    answer_shape(3)  )  &
 14093     allocate( check_negative( &
 14094                             &    answer_shape(1), &
 14096       &    answer_shape(2), &
 14098       &    answer_shape(3)  )  &
 14101     allocate( both_negative( &
 14102                             &    answer_shape(1), &
 14104       &    answer_shape(2), &
 14106       &    answer_shape(3)  )  &
 14109     answer_negative = answer < 0
 14110     check_negative = check < 0
 14111     both_negative = answer_negative .and. check_negative
 14112     if (.not. negative_support_on) both_negative = .false.
 14114     judge = answer > check
 14115     where (both_negative) judge = .not. judge
 14117     judge_rev = .not. judge
 14118     err_flag = any(judge_rev)
 14120     pos = maxloc(mask_array, judge_rev)
 14138                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
 14140       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
 14142       write(unit=pos_array(3), fmt=
"(i20)") pos(3)
 14146                               &    trim(adjustl(pos_array(1))) // 
',' // &
 14148         &    trim(adjustl(pos_array(2))) // 
',' // &
 14150         &    trim(adjustl(pos_array(3))) // 
')' 14152       if ( both_negative( &
 14159         abs_mes = 
'ABSOLUTE value of' 14166     deallocate(mask_array, judge, judge_rev)
 14167     deallocate(answer_negative, check_negative, both_negative)
 14173       write(*,*) 
' *** Error [AssertLT] *** Checking ' // trim(message) // 
' FAILURE' 14175       write(*,*) 
' ' // trim(abs_mes) // &
 14176         &        
' check' // trim(pos_str) // 
'  = ', wrong
 14177       write(*,*) 
'    is NOT LESS THAN' 14178       write(*,*) 
' ' // trim(abs_mes) // &
 14179         &        
' answer' // trim(pos_str) // 
' = ', right
 14183       write(*,*) 
' *** MESSAGE [AssertLT] *** Checking ' // trim(message) // 
' OK' 14191     & message, answer, check, negative_support)
 14195     character(*), 
intent(in):: message
 14196     integer, 
intent(in):: answer(:,:,:,:)
 14197     integer, 
intent(in):: check(:,:,:,:)
 14198     logical, 
intent(in), 
optional:: negative_support
 14200     logical:: negative_support_on
 14201     character(STRING):: pos_str
 14202     character(TOKEN):: abs_mes
 14203     integer:: wrong, right
 14205                         integer:: answer_shape(4), check_shape(4), pos(4)
 14206     logical:: consist_shape(4)
 14207     character(TOKEN):: pos_array(4)
 14208     integer, 
allocatable:: mask_array(:,:,:,:)
 14209     logical, 
allocatable:: judge(:,:,:,:)
 14210     logical, 
allocatable:: judge_rev(:,:,:,:)
 14211     logical, 
allocatable:: answer_negative(:,:,:,:)
 14212     logical, 
allocatable:: check_negative(:,:,:,:)
 14213     logical, 
allocatable:: both_negative(:,:,:,:)
 14217     if (
present(negative_support)) 
then 14218       negative_support_on = negative_support
 14220       negative_support_on = .true.
 14226     answer_shape = shape(answer)
 14227     check_shape = shape(check)
 14229     consist_shape = answer_shape == check_shape
 14231     if (.not. all(consist_shape)) 
then 14232       write(*,*) 
' *** Error [AssertLT] *** Checking ' // trim(message) // 
' FAILURE' 14234       write(*,*) 
'  shape of check is (', check_shape, 
')' 14235       write(*,*) 
'    is INCORRECT' 14236       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')' 14242     allocate( mask_array( &
 14243                             &    answer_shape(1), &
 14245       &    answer_shape(2), &
 14247       &    answer_shape(3), &
 14249       &    answer_shape(4)  )  &
 14253                             &    answer_shape(1), &
 14255       &    answer_shape(2), &
 14257       &    answer_shape(3), &
 14259       &    answer_shape(4)  )  &
 14262     allocate( judge_rev( &
 14263                             &    answer_shape(1), &
 14265       &    answer_shape(2), &
 14267       &    answer_shape(3), &
 14269       &    answer_shape(4)  )  &
 14272     allocate( answer_negative( &
 14273                             &    answer_shape(1), &
 14275       &    answer_shape(2), &
 14277       &    answer_shape(3), &
 14279       &    answer_shape(4)  )  &
 14282     allocate( check_negative( &
 14283                             &    answer_shape(1), &
 14285       &    answer_shape(2), &
 14287       &    answer_shape(3), &
 14289       &    answer_shape(4)  )  &
 14292     allocate( both_negative( &
 14293                             &    answer_shape(1), &
 14295       &    answer_shape(2), &
 14297       &    answer_shape(3), &
 14299       &    answer_shape(4)  )  &
 14302     answer_negative = answer < 0
 14303     check_negative = check < 0
 14304     both_negative = answer_negative .and. check_negative
 14305     if (.not. negative_support_on) both_negative = .false.
 14307     judge = answer > check
 14308     where (both_negative) judge = .not. judge
 14310     judge_rev = .not. judge
 14311     err_flag = any(judge_rev)
 14313     pos = maxloc(mask_array, judge_rev)
 14335                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
 14337       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
 14339       write(unit=pos_array(3), fmt=
"(i20)") pos(3)
 14341       write(unit=pos_array(4), fmt=
"(i20)") pos(4)
 14345                               &    trim(adjustl(pos_array(1))) // 
',' // &
 14347         &    trim(adjustl(pos_array(2))) // 
',' // &
 14349         &    trim(adjustl(pos_array(3))) // 
',' // &
 14351         &    trim(adjustl(pos_array(4))) // 
')' 14353       if ( both_negative( &
 14362         abs_mes = 
'ABSOLUTE value of' 14369     deallocate(mask_array, judge, judge_rev)
 14370     deallocate(answer_negative, check_negative, both_negative)
 14376       write(*,*) 
' *** Error [AssertLT] *** Checking ' // trim(message) // 
' FAILURE' 14378       write(*,*) 
' ' // trim(abs_mes) // &
 14379         &        
' check' // trim(pos_str) // 
'  = ', wrong
 14380       write(*,*) 
'    is NOT LESS THAN' 14381       write(*,*) 
' ' // trim(abs_mes) // &
 14382         &        
' answer' // trim(pos_str) // 
' = ', right
 14386       write(*,*) 
' *** MESSAGE [AssertLT] *** Checking ' // trim(message) // 
' OK' 14394     & message, answer, check, negative_support)
 14398     character(*), 
intent(in):: message
 14399     integer, 
intent(in):: answer(:,:,:,:,:)
 14400     integer, 
intent(in):: check(:,:,:,:,:)
 14401     logical, 
intent(in), 
optional:: negative_support
 14403     logical:: negative_support_on
 14404     character(STRING):: pos_str
 14405     character(TOKEN):: abs_mes
 14406     integer:: wrong, right
 14408                         integer:: answer_shape(5), check_shape(5), pos(5)
 14409     logical:: consist_shape(5)
 14410     character(TOKEN):: pos_array(5)
 14411     integer, 
allocatable:: mask_array(:,:,:,:,:)
 14412     logical, 
allocatable:: judge(:,:,:,:,:)
 14413     logical, 
allocatable:: judge_rev(:,:,:,:,:)
 14414     logical, 
allocatable:: answer_negative(:,:,:,:,:)
 14415     logical, 
allocatable:: check_negative(:,:,:,:,:)
 14416     logical, 
allocatable:: both_negative(:,:,:,:,:)
 14420     if (
present(negative_support)) 
then 14421       negative_support_on = negative_support
 14423       negative_support_on = .true.
 14429     answer_shape = shape(answer)
 14430     check_shape = shape(check)
 14432     consist_shape = answer_shape == check_shape
 14434     if (.not. all(consist_shape)) 
then 14435       write(*,*) 
' *** Error [AssertLT] *** Checking ' // trim(message) // 
' FAILURE' 14437       write(*,*) 
'  shape of check is (', check_shape, 
')' 14438       write(*,*) 
'    is INCORRECT' 14439       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')' 14445     allocate( mask_array( &
 14446                             &    answer_shape(1), &
 14448       &    answer_shape(2), &
 14450       &    answer_shape(3), &
 14452       &    answer_shape(4), &
 14454       &    answer_shape(5)  )  &
 14458                             &    answer_shape(1), &
 14460       &    answer_shape(2), &
 14462       &    answer_shape(3), &
 14464       &    answer_shape(4), &
 14466       &    answer_shape(5)  )  &
 14469     allocate( judge_rev( &
 14470                             &    answer_shape(1), &
 14472       &    answer_shape(2), &
 14474       &    answer_shape(3), &
 14476       &    answer_shape(4), &
 14478       &    answer_shape(5)  )  &
 14481     allocate( answer_negative( &
 14482                             &    answer_shape(1), &
 14484       &    answer_shape(2), &
 14486       &    answer_shape(3), &
 14488       &    answer_shape(4), &
 14490       &    answer_shape(5)  )  &
 14493     allocate( check_negative( &
 14494                             &    answer_shape(1), &
 14496       &    answer_shape(2), &
 14498       &    answer_shape(3), &
 14500       &    answer_shape(4), &
 14502       &    answer_shape(5)  )  &
 14505     allocate( both_negative( &
 14506                             &    answer_shape(1), &
 14508       &    answer_shape(2), &
 14510       &    answer_shape(3), &
 14512       &    answer_shape(4), &
 14514       &    answer_shape(5)  )  &
 14517     answer_negative = answer < 0
 14518     check_negative = check < 0
 14519     both_negative = answer_negative .and. check_negative
 14520     if (.not. negative_support_on) both_negative = .false.
 14522     judge = answer > check
 14523     where (both_negative) judge = .not. judge
 14525     judge_rev = .not. judge
 14526     err_flag = any(judge_rev)
 14528     pos = maxloc(mask_array, judge_rev)
 14554                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
 14556       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
 14558       write(unit=pos_array(3), fmt=
"(i20)") pos(3)
 14560       write(unit=pos_array(4), fmt=
"(i20)") pos(4)
 14562       write(unit=pos_array(5), fmt=
"(i20)") pos(5)
 14566                               &    trim(adjustl(pos_array(1))) // 
',' // &
 14568         &    trim(adjustl(pos_array(2))) // 
',' // &
 14570         &    trim(adjustl(pos_array(3))) // 
',' // &
 14572         &    trim(adjustl(pos_array(4))) // 
',' // &
 14574         &    trim(adjustl(pos_array(5))) // 
')' 14576       if ( both_negative( &
 14587         abs_mes = 
'ABSOLUTE value of' 14594     deallocate(mask_array, judge, judge_rev)
 14595     deallocate(answer_negative, check_negative, both_negative)
 14601       write(*,*) 
' *** Error [AssertLT] *** Checking ' // trim(message) // 
' FAILURE' 14603       write(*,*) 
' ' // trim(abs_mes) // &
 14604         &        
' check' // trim(pos_str) // 
'  = ', wrong
 14605       write(*,*) 
'    is NOT LESS THAN' 14606       write(*,*) 
' ' // trim(abs_mes) // &
 14607         &        
' answer' // trim(pos_str) // 
' = ', right
 14611       write(*,*) 
' *** MESSAGE [AssertLT] *** Checking ' // trim(message) // 
' OK' 14619     & message, answer, check, negative_support)
 14623     character(*), 
intent(in):: message
 14624     integer, 
intent(in):: answer(:,:,:,:,:,:)
 14625     integer, 
intent(in):: check(:,:,:,:,:,:)
 14626     logical, 
intent(in), 
optional:: negative_support
 14628     logical:: negative_support_on
 14629     character(STRING):: pos_str
 14630     character(TOKEN):: abs_mes
 14631     integer:: wrong, right
 14633                         integer:: answer_shape(6), check_shape(6), pos(6)
 14634     logical:: consist_shape(6)
 14635     character(TOKEN):: pos_array(6)
 14636     integer, 
allocatable:: mask_array(:,:,:,:,:,:)
 14637     logical, 
allocatable:: judge(:,:,:,:,:,:)
 14638     logical, 
allocatable:: judge_rev(:,:,:,:,:,:)
 14639     logical, 
allocatable:: answer_negative(:,:,:,:,:,:)
 14640     logical, 
allocatable:: check_negative(:,:,:,:,:,:)
 14641     logical, 
allocatable:: both_negative(:,:,:,:,:,:)
 14645     if (
present(negative_support)) 
then 14646       negative_support_on = negative_support
 14648       negative_support_on = .true.
 14654     answer_shape = shape(answer)
 14655     check_shape = shape(check)
 14657     consist_shape = answer_shape == check_shape
 14659     if (.not. all(consist_shape)) 
then 14660       write(*,*) 
' *** Error [AssertLT] *** Checking ' // trim(message) // 
' FAILURE' 14662       write(*,*) 
'  shape of check is (', check_shape, 
')' 14663       write(*,*) 
'    is INCORRECT' 14664       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')' 14670     allocate( mask_array( &
 14671                             &    answer_shape(1), &
 14673       &    answer_shape(2), &
 14675       &    answer_shape(3), &
 14677       &    answer_shape(4), &
 14679       &    answer_shape(5), &
 14681       &    answer_shape(6)  )  &
 14685                             &    answer_shape(1), &
 14687       &    answer_shape(2), &
 14689       &    answer_shape(3), &
 14691       &    answer_shape(4), &
 14693       &    answer_shape(5), &
 14695       &    answer_shape(6)  )  &
 14698     allocate( judge_rev( &
 14699                             &    answer_shape(1), &
 14701       &    answer_shape(2), &
 14703       &    answer_shape(3), &
 14705       &    answer_shape(4), &
 14707       &    answer_shape(5), &
 14709       &    answer_shape(6)  )  &
 14712     allocate( answer_negative( &
 14713                             &    answer_shape(1), &
 14715       &    answer_shape(2), &
 14717       &    answer_shape(3), &
 14719       &    answer_shape(4), &
 14721       &    answer_shape(5), &
 14723       &    answer_shape(6)  )  &
 14726     allocate( check_negative( &
 14727                             &    answer_shape(1), &
 14729       &    answer_shape(2), &
 14731       &    answer_shape(3), &
 14733       &    answer_shape(4), &
 14735       &    answer_shape(5), &
 14737       &    answer_shape(6)  )  &
 14740     allocate( both_negative( &
 14741                             &    answer_shape(1), &
 14743       &    answer_shape(2), &
 14745       &    answer_shape(3), &
 14747       &    answer_shape(4), &
 14749       &    answer_shape(5), &
 14751       &    answer_shape(6)  )  &
 14754     answer_negative = answer < 0
 14755     check_negative = check < 0
 14756     both_negative = answer_negative .and. check_negative
 14757     if (.not. negative_support_on) both_negative = .false.
 14759     judge = answer > check
 14760     where (both_negative) judge = .not. judge
 14762     judge_rev = .not. judge
 14763     err_flag = any(judge_rev)
 14765     pos = maxloc(mask_array, judge_rev)
 14795                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
 14797       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
 14799       write(unit=pos_array(3), fmt=
"(i20)") pos(3)
 14801       write(unit=pos_array(4), fmt=
"(i20)") pos(4)
 14803       write(unit=pos_array(5), fmt=
"(i20)") pos(5)
 14805       write(unit=pos_array(6), fmt=
"(i20)") pos(6)
 14809                               &    trim(adjustl(pos_array(1))) // 
',' // &
 14811         &    trim(adjustl(pos_array(2))) // 
',' // &
 14813         &    trim(adjustl(pos_array(3))) // 
',' // &
 14815         &    trim(adjustl(pos_array(4))) // 
',' // &
 14817         &    trim(adjustl(pos_array(5))) // 
',' // &
 14819         &    trim(adjustl(pos_array(6))) // 
')' 14821       if ( both_negative( &
 14834         abs_mes = 
'ABSOLUTE value of' 14841     deallocate(mask_array, judge, judge_rev)
 14842     deallocate(answer_negative, check_negative, both_negative)
 14848       write(*,*) 
' *** Error [AssertLT] *** Checking ' // trim(message) // 
' FAILURE' 14850       write(*,*) 
' ' // trim(abs_mes) // &
 14851         &        
' check' // trim(pos_str) // 
'  = ', wrong
 14852       write(*,*) 
'    is NOT LESS THAN' 14853       write(*,*) 
' ' // trim(abs_mes) // &
 14854         &        
' answer' // trim(pos_str) // 
' = ', right
 14858       write(*,*) 
' *** MESSAGE [AssertLT] *** Checking ' // trim(message) // 
' OK' 14866     & message, answer, check, negative_support)
 14870     character(*), 
intent(in):: message
 14871     integer, 
intent(in):: answer(:,:,:,:,:,:,:)
 14872     integer, 
intent(in):: check(:,:,:,:,:,:,:)
 14873     logical, 
intent(in), 
optional:: negative_support
 14875     logical:: negative_support_on
 14876     character(STRING):: pos_str
 14877     character(TOKEN):: abs_mes
 14878     integer:: wrong, right
 14880                         integer:: answer_shape(7), check_shape(7), pos(7)
 14881     logical:: consist_shape(7)
 14882     character(TOKEN):: pos_array(7)
 14883     integer, 
allocatable:: mask_array(:,:,:,:,:,:,:)
 14884     logical, 
allocatable:: judge(:,:,:,:,:,:,:)
 14885     logical, 
allocatable:: judge_rev(:,:,:,:,:,:,:)
 14886     logical, 
allocatable:: answer_negative(:,:,:,:,:,:,:)
 14887     logical, 
allocatable:: check_negative(:,:,:,:,:,:,:)
 14888     logical, 
allocatable:: both_negative(:,:,:,:,:,:,:)
 14892     if (
present(negative_support)) 
then 14893       negative_support_on = negative_support
 14895       negative_support_on = .true.
 14901     answer_shape = shape(answer)
 14902     check_shape = shape(check)
 14904     consist_shape = answer_shape == check_shape
 14906     if (.not. all(consist_shape)) 
then 14907       write(*,*) 
' *** Error [AssertLT] *** Checking ' // trim(message) // 
' FAILURE' 14909       write(*,*) 
'  shape of check is (', check_shape, 
')' 14910       write(*,*) 
'    is INCORRECT' 14911       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')' 14917     allocate( mask_array( &
 14918                             &    answer_shape(1), &
 14920       &    answer_shape(2), &
 14922       &    answer_shape(3), &
 14924       &    answer_shape(4), &
 14926       &    answer_shape(5), &
 14928       &    answer_shape(6), &
 14930       &    answer_shape(7)  )  &
 14934                             &    answer_shape(1), &
 14936       &    answer_shape(2), &
 14938       &    answer_shape(3), &
 14940       &    answer_shape(4), &
 14942       &    answer_shape(5), &
 14944       &    answer_shape(6), &
 14946       &    answer_shape(7)  )  &
 14949     allocate( judge_rev( &
 14950                             &    answer_shape(1), &
 14952       &    answer_shape(2), &
 14954       &    answer_shape(3), &
 14956       &    answer_shape(4), &
 14958       &    answer_shape(5), &
 14960       &    answer_shape(6), &
 14962       &    answer_shape(7)  )  &
 14965     allocate( answer_negative( &
 14966                             &    answer_shape(1), &
 14968       &    answer_shape(2), &
 14970       &    answer_shape(3), &
 14972       &    answer_shape(4), &
 14974       &    answer_shape(5), &
 14976       &    answer_shape(6), &
 14978       &    answer_shape(7)  )  &
 14981     allocate( check_negative( &
 14982                             &    answer_shape(1), &
 14984       &    answer_shape(2), &
 14986       &    answer_shape(3), &
 14988       &    answer_shape(4), &
 14990       &    answer_shape(5), &
 14992       &    answer_shape(6), &
 14994       &    answer_shape(7)  )  &
 14997     allocate( both_negative( &
 14998                             &    answer_shape(1), &
 15000       &    answer_shape(2), &
 15002       &    answer_shape(3), &
 15004       &    answer_shape(4), &
 15006       &    answer_shape(5), &
 15008       &    answer_shape(6), &
 15010       &    answer_shape(7)  )  &
 15013     answer_negative = answer < 0
 15014     check_negative = check < 0
 15015     both_negative = answer_negative .and. check_negative
 15016     if (.not. negative_support_on) both_negative = .false.
 15018     judge = answer > check
 15019     where (both_negative) judge = .not. judge
 15021     judge_rev = .not. judge
 15022     err_flag = any(judge_rev)
 15024     pos = maxloc(mask_array, judge_rev)
 15058                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
 15060       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
 15062       write(unit=pos_array(3), fmt=
"(i20)") pos(3)
 15064       write(unit=pos_array(4), fmt=
"(i20)") pos(4)
 15066       write(unit=pos_array(5), fmt=
"(i20)") pos(5)
 15068       write(unit=pos_array(6), fmt=
"(i20)") pos(6)
 15070       write(unit=pos_array(7), fmt=
"(i20)") pos(7)
 15074                               &    trim(adjustl(pos_array(1))) // 
',' // &
 15076         &    trim(adjustl(pos_array(2))) // 
',' // &
 15078         &    trim(adjustl(pos_array(3))) // 
',' // &
 15080         &    trim(adjustl(pos_array(4))) // 
',' // &
 15082         &    trim(adjustl(pos_array(5))) // 
',' // &
 15084         &    trim(adjustl(pos_array(6))) // 
',' // &
 15086         &    trim(adjustl(pos_array(7))) // 
')' 15088       if ( both_negative( &
 15103         abs_mes = 
'ABSOLUTE value of' 15110     deallocate(mask_array, judge, judge_rev)
 15111     deallocate(answer_negative, check_negative, both_negative)
 15117       write(*,*) 
' *** Error [AssertLT] *** Checking ' // trim(message) // 
' FAILURE' 15119       write(*,*) 
' ' // trim(abs_mes) // &
 15120         &        
' check' // trim(pos_str) // 
'  = ', wrong
 15121       write(*,*) 
'    is NOT LESS THAN' 15122       write(*,*) 
' ' // trim(abs_mes) // &
 15123         &        
' answer' // trim(pos_str) // 
' = ', right
 15127       write(*,*) 
' *** MESSAGE [AssertLT] *** Checking ' // trim(message) // 
' OK' 15135     & message, answer, check, negative_support)
 15139     character(*), 
intent(in):: message
 15140     real, 
intent(in):: answer
 15141     real, 
intent(in):: check
 15142     logical, 
intent(in), 
optional:: negative_support
 15144     logical:: negative_support_on
 15145     character(STRING):: pos_str
 15146     character(TOKEN):: abs_mes
 15147     real:: wrong, right
 15152     if (
present(negative_support)) 
then 15153       negative_support_on = negative_support
 15155       negative_support_on = .true.
 15163     err_flag = .not. answer > check
 15166     if ( answer < 0.0 &
 15167       &  .and. check < 0.0 &
 15168       &  .and. negative_support_on ) 
then 15170       err_flag = .not. err_flag
 15171       abs_mes = 
'ABSOLUTE value of' 15182       write(*,*) 
' *** Error [AssertLT] *** Checking ' // trim(message) // 
' FAILURE' 15184       write(*,*) 
' ' // trim(abs_mes) // &
 15185         &        
' check' // trim(pos_str) // 
'  = ', wrong
 15186       write(*,*) 
'    is NOT LESS THAN' 15187       write(*,*) 
' ' // trim(abs_mes) // &
 15188         &        
' answer' // trim(pos_str) // 
' = ', right
 15192       write(*,*) 
' *** MESSAGE [AssertLT] *** Checking ' // trim(message) // 
' OK' 15200     & message, answer, check, negative_support)
 15204     character(*), 
intent(in):: message
 15205     real, 
intent(in):: answer(:)
 15206     real, 
intent(in):: check(:)
 15207     logical, 
intent(in), 
optional:: negative_support
 15209     logical:: negative_support_on
 15210     character(STRING):: pos_str
 15211     character(TOKEN):: abs_mes
 15212     real:: wrong, right
 15214                         integer:: answer_shape(1), check_shape(1), pos(1)
 15215     logical:: consist_shape(1)
 15216     character(TOKEN):: pos_array(1)
 15217     integer, 
allocatable:: mask_array(:)
 15218     logical, 
allocatable:: judge(:)
 15219     logical, 
allocatable:: judge_rev(:)
 15220     logical, 
allocatable:: answer_negative(:)
 15221     logical, 
allocatable:: check_negative(:)
 15222     logical, 
allocatable:: both_negative(:)
 15226     if (
present(negative_support)) 
then 15227       negative_support_on = negative_support
 15229       negative_support_on = .true.
 15235     answer_shape = shape(answer)
 15236     check_shape = shape(check)
 15238     consist_shape = answer_shape == check_shape
 15240     if (.not. all(consist_shape)) 
then 15241       write(*,*) 
' *** Error [AssertLT] *** Checking ' // trim(message) // 
' FAILURE' 15243       write(*,*) 
'  shape of check is (', check_shape, 
')' 15244       write(*,*) 
'    is INCORRECT' 15245       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')' 15251     allocate( mask_array( &
 15253       &    answer_shape(1)  )  &
 15258       &    answer_shape(1)  )  &
 15261     allocate( judge_rev( &
 15263       &    answer_shape(1)  )  &
 15266     allocate( answer_negative( &
 15268       &    answer_shape(1)  )  &
 15271     allocate( check_negative( &
 15273       &    answer_shape(1)  )  &
 15276     allocate( both_negative( &
 15278       &    answer_shape(1)  )  &
 15281     answer_negative = answer < 0.0
 15282     check_negative = check < 0.0
 15283     both_negative = answer_negative .and. check_negative
 15284     if (.not. negative_support_on) both_negative = .false.
 15286     judge = answer > check
 15287     where (both_negative) judge = .not. judge
 15289     judge_rev = .not. judge
 15290     err_flag = any(judge_rev)
 15292     pos = maxloc(mask_array, judge_rev)
 15304                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
 15309         &    trim(adjustl(pos_array(1))) // 
')' 15311       if ( both_negative( &
 15315         abs_mes = 
'ABSOLUTE value of' 15322     deallocate(mask_array, judge, judge_rev)
 15323     deallocate(answer_negative, check_negative, both_negative)
 15329       write(*,*) 
' *** Error [AssertLT] *** Checking ' // trim(message) // 
' FAILURE' 15331       write(*,*) 
' ' // trim(abs_mes) // &
 15332         &        
' check' // trim(pos_str) // 
'  = ', wrong
 15333       write(*,*) 
'    is NOT LESS THAN' 15334       write(*,*) 
' ' // trim(abs_mes) // &
 15335         &        
' answer' // trim(pos_str) // 
' = ', right
 15339       write(*,*) 
' *** MESSAGE [AssertLT] *** Checking ' // trim(message) // 
' OK' 15347     & message, answer, check, negative_support)
 15351     character(*), 
intent(in):: message
 15352     real, 
intent(in):: answer(:,:)
 15353     real, 
intent(in):: check(:,:)
 15354     logical, 
intent(in), 
optional:: negative_support
 15356     logical:: negative_support_on
 15357     character(STRING):: pos_str
 15358     character(TOKEN):: abs_mes
 15359     real:: wrong, right
 15361                         integer:: answer_shape(2), check_shape(2), pos(2)
 15362     logical:: consist_shape(2)
 15363     character(TOKEN):: pos_array(2)
 15364     integer, 
allocatable:: mask_array(:,:)
 15365     logical, 
allocatable:: judge(:,:)
 15366     logical, 
allocatable:: judge_rev(:,:)
 15367     logical, 
allocatable:: answer_negative(:,:)
 15368     logical, 
allocatable:: check_negative(:,:)
 15369     logical, 
allocatable:: both_negative(:,:)
 15373     if (
present(negative_support)) 
then 15374       negative_support_on = negative_support
 15376       negative_support_on = .true.
 15382     answer_shape = shape(answer)
 15383     check_shape = shape(check)
 15385     consist_shape = answer_shape == check_shape
 15387     if (.not. all(consist_shape)) 
then 15388       write(*,*) 
' *** Error [AssertLT] *** Checking ' // trim(message) // 
' FAILURE' 15390       write(*,*) 
'  shape of check is (', check_shape, 
')' 15391       write(*,*) 
'    is INCORRECT' 15392       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')' 15398     allocate( mask_array( &
 15399                             &    answer_shape(1), &
 15401       &    answer_shape(2)  )  &
 15405                             &    answer_shape(1), &
 15407       &    answer_shape(2)  )  &
 15410     allocate( judge_rev( &
 15411                             &    answer_shape(1), &
 15413       &    answer_shape(2)  )  &
 15416     allocate( answer_negative( &
 15417                             &    answer_shape(1), &
 15419       &    answer_shape(2)  )  &
 15422     allocate( check_negative( &
 15423                             &    answer_shape(1), &
 15425       &    answer_shape(2)  )  &
 15428     allocate( both_negative( &
 15429                             &    answer_shape(1), &
 15431       &    answer_shape(2)  )  &
 15434     answer_negative = answer < 0.0
 15435     check_negative = check < 0.0
 15436     both_negative = answer_negative .and. check_negative
 15437     if (.not. negative_support_on) both_negative = .false.
 15439     judge = answer > check
 15440     where (both_negative) judge = .not. judge
 15442     judge_rev = .not. judge
 15443     err_flag = any(judge_rev)
 15445     pos = maxloc(mask_array, judge_rev)
 15459                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
 15461       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
 15465                               &    trim(adjustl(pos_array(1))) // 
',' // &
 15467         &    trim(adjustl(pos_array(2))) // 
')' 15469       if ( both_negative( &
 15474         abs_mes = 
'ABSOLUTE value of' 15481     deallocate(mask_array, judge, judge_rev)
 15482     deallocate(answer_negative, check_negative, both_negative)
 15488       write(*,*) 
' *** Error [AssertLT] *** Checking ' // trim(message) // 
' FAILURE' 15490       write(*,*) 
' ' // trim(abs_mes) // &
 15491         &        
' check' // trim(pos_str) // 
'  = ', wrong
 15492       write(*,*) 
'    is NOT LESS THAN' 15493       write(*,*) 
' ' // trim(abs_mes) // &
 15494         &        
' answer' // trim(pos_str) // 
' = ', right
 15498       write(*,*) 
' *** MESSAGE [AssertLT] *** Checking ' // trim(message) // 
' OK' 15506     & message, answer, check, negative_support)
 15510     character(*), 
intent(in):: message
 15511     real, 
intent(in):: answer(:,:,:)
 15512     real, 
intent(in):: check(:,:,:)
 15513     logical, 
intent(in), 
optional:: negative_support
 15515     logical:: negative_support_on
 15516     character(STRING):: pos_str
 15517     character(TOKEN):: abs_mes
 15518     real:: wrong, right
 15520                         integer:: answer_shape(3), check_shape(3), pos(3)
 15521     logical:: consist_shape(3)
 15522     character(TOKEN):: pos_array(3)
 15523     integer, 
allocatable:: mask_array(:,:,:)
 15524     logical, 
allocatable:: judge(:,:,:)
 15525     logical, 
allocatable:: judge_rev(:,:,:)
 15526     logical, 
allocatable:: answer_negative(:,:,:)
 15527     logical, 
allocatable:: check_negative(:,:,:)
 15528     logical, 
allocatable:: both_negative(:,:,:)
 15532     if (
present(negative_support)) 
then 15533       negative_support_on = negative_support
 15535       negative_support_on = .true.
 15541     answer_shape = shape(answer)
 15542     check_shape = shape(check)
 15544     consist_shape = answer_shape == check_shape
 15546     if (.not. all(consist_shape)) 
then 15547       write(*,*) 
' *** Error [AssertLT] *** Checking ' // trim(message) // 
' FAILURE' 15549       write(*,*) 
'  shape of check is (', check_shape, 
')' 15550       write(*,*) 
'    is INCORRECT' 15551       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')' 15557     allocate( mask_array( &
 15558                             &    answer_shape(1), &
 15560       &    answer_shape(2), &
 15562       &    answer_shape(3)  )  &
 15566                             &    answer_shape(1), &
 15568       &    answer_shape(2), &
 15570       &    answer_shape(3)  )  &
 15573     allocate( judge_rev( &
 15574                             &    answer_shape(1), &
 15576       &    answer_shape(2), &
 15578       &    answer_shape(3)  )  &
 15581     allocate( answer_negative( &
 15582                             &    answer_shape(1), &
 15584       &    answer_shape(2), &
 15586       &    answer_shape(3)  )  &
 15589     allocate( check_negative( &
 15590                             &    answer_shape(1), &
 15592       &    answer_shape(2), &
 15594       &    answer_shape(3)  )  &
 15597     allocate( both_negative( &
 15598                             &    answer_shape(1), &
 15600       &    answer_shape(2), &
 15602       &    answer_shape(3)  )  &
 15605     answer_negative = answer < 0.0
 15606     check_negative = check < 0.0
 15607     both_negative = answer_negative .and. check_negative
 15608     if (.not. negative_support_on) both_negative = .false.
 15610     judge = answer > check
 15611     where (both_negative) judge = .not. judge
 15613     judge_rev = .not. judge
 15614     err_flag = any(judge_rev)
 15616     pos = maxloc(mask_array, judge_rev)
 15634                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
 15636       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
 15638       write(unit=pos_array(3), fmt=
"(i20)") pos(3)
 15642                               &    trim(adjustl(pos_array(1))) // 
',' // &
 15644         &    trim(adjustl(pos_array(2))) // 
',' // &
 15646         &    trim(adjustl(pos_array(3))) // 
')' 15648       if ( both_negative( &
 15655         abs_mes = 
'ABSOLUTE value of' 15662     deallocate(mask_array, judge, judge_rev)
 15663     deallocate(answer_negative, check_negative, both_negative)
 15669       write(*,*) 
' *** Error [AssertLT] *** Checking ' // trim(message) // 
' FAILURE' 15671       write(*,*) 
' ' // trim(abs_mes) // &
 15672         &        
' check' // trim(pos_str) // 
'  = ', wrong
 15673       write(*,*) 
'    is NOT LESS THAN' 15674       write(*,*) 
' ' // trim(abs_mes) // &
 15675         &        
' answer' // trim(pos_str) // 
' = ', right
 15679       write(*,*) 
' *** MESSAGE [AssertLT] *** Checking ' // trim(message) // 
' OK' 15687     & message, answer, check, negative_support)
 15691     character(*), 
intent(in):: message
 15692     real, 
intent(in):: answer(:,:,:,:)
 15693     real, 
intent(in):: check(:,:,:,:)
 15694     logical, 
intent(in), 
optional:: negative_support
 15696     logical:: negative_support_on
 15697     character(STRING):: pos_str
 15698     character(TOKEN):: abs_mes
 15699     real:: wrong, right
 15701                         integer:: answer_shape(4), check_shape(4), pos(4)
 15702     logical:: consist_shape(4)
 15703     character(TOKEN):: pos_array(4)
 15704     integer, 
allocatable:: mask_array(:,:,:,:)
 15705     logical, 
allocatable:: judge(:,:,:,:)
 15706     logical, 
allocatable:: judge_rev(:,:,:,:)
 15707     logical, 
allocatable:: answer_negative(:,:,:,:)
 15708     logical, 
allocatable:: check_negative(:,:,:,:)
 15709     logical, 
allocatable:: both_negative(:,:,:,:)
 15713     if (
present(negative_support)) 
then 15714       negative_support_on = negative_support
 15716       negative_support_on = .true.
 15722     answer_shape = shape(answer)
 15723     check_shape = shape(check)
 15725     consist_shape = answer_shape == check_shape
 15727     if (.not. all(consist_shape)) 
then 15728       write(*,*) 
' *** Error [AssertLT] *** Checking ' // trim(message) // 
' FAILURE' 15730       write(*,*) 
'  shape of check is (', check_shape, 
')' 15731       write(*,*) 
'    is INCORRECT' 15732       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')' 15738     allocate( mask_array( &
 15739                             &    answer_shape(1), &
 15741       &    answer_shape(2), &
 15743       &    answer_shape(3), &
 15745       &    answer_shape(4)  )  &
 15749                             &    answer_shape(1), &
 15751       &    answer_shape(2), &
 15753       &    answer_shape(3), &
 15755       &    answer_shape(4)  )  &
 15758     allocate( judge_rev( &
 15759                             &    answer_shape(1), &
 15761       &    answer_shape(2), &
 15763       &    answer_shape(3), &
 15765       &    answer_shape(4)  )  &
 15768     allocate( answer_negative( &
 15769                             &    answer_shape(1), &
 15771       &    answer_shape(2), &
 15773       &    answer_shape(3), &
 15775       &    answer_shape(4)  )  &
 15778     allocate( check_negative( &
 15779                             &    answer_shape(1), &
 15781       &    answer_shape(2), &
 15783       &    answer_shape(3), &
 15785       &    answer_shape(4)  )  &
 15788     allocate( both_negative( &
 15789                             &    answer_shape(1), &
 15791       &    answer_shape(2), &
 15793       &    answer_shape(3), &
 15795       &    answer_shape(4)  )  &
 15798     answer_negative = answer < 0.0
 15799     check_negative = check < 0.0
 15800     both_negative = answer_negative .and. check_negative
 15801     if (.not. negative_support_on) both_negative = .false.
 15803     judge = answer > check
 15804     where (both_negative) judge = .not. judge
 15806     judge_rev = .not. judge
 15807     err_flag = any(judge_rev)
 15809     pos = maxloc(mask_array, judge_rev)
 15831                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
 15833       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
 15835       write(unit=pos_array(3), fmt=
"(i20)") pos(3)
 15837       write(unit=pos_array(4), fmt=
"(i20)") pos(4)
 15841                               &    trim(adjustl(pos_array(1))) // 
',' // &
 15843         &    trim(adjustl(pos_array(2))) // 
',' // &
 15845         &    trim(adjustl(pos_array(3))) // 
',' // &
 15847         &    trim(adjustl(pos_array(4))) // 
')' 15849       if ( both_negative( &
 15858         abs_mes = 
'ABSOLUTE value of' 15865     deallocate(mask_array, judge, judge_rev)
 15866     deallocate(answer_negative, check_negative, both_negative)
 15872       write(*,*) 
' *** Error [AssertLT] *** Checking ' // trim(message) // 
' FAILURE' 15874       write(*,*) 
' ' // trim(abs_mes) // &
 15875         &        
' check' // trim(pos_str) // 
'  = ', wrong
 15876       write(*,*) 
'    is NOT LESS THAN' 15877       write(*,*) 
' ' // trim(abs_mes) // &
 15878         &        
' answer' // trim(pos_str) // 
' = ', right
 15882       write(*,*) 
' *** MESSAGE [AssertLT] *** Checking ' // trim(message) // 
' OK' 15890     & message, answer, check, negative_support)
 15894     character(*), 
intent(in):: message
 15895     real, 
intent(in):: answer(:,:,:,:,:)
 15896     real, 
intent(in):: check(:,:,:,:,:)
 15897     logical, 
intent(in), 
optional:: negative_support
 15899     logical:: negative_support_on
 15900     character(STRING):: pos_str
 15901     character(TOKEN):: abs_mes
 15902     real:: wrong, right
 15904                         integer:: answer_shape(5), check_shape(5), pos(5)
 15905     logical:: consist_shape(5)
 15906     character(TOKEN):: pos_array(5)
 15907     integer, 
allocatable:: mask_array(:,:,:,:,:)
 15908     logical, 
allocatable:: judge(:,:,:,:,:)
 15909     logical, 
allocatable:: judge_rev(:,:,:,:,:)
 15910     logical, 
allocatable:: answer_negative(:,:,:,:,:)
 15911     logical, 
allocatable:: check_negative(:,:,:,:,:)
 15912     logical, 
allocatable:: both_negative(:,:,:,:,:)
 15916     if (
present(negative_support)) 
then 15917       negative_support_on = negative_support
 15919       negative_support_on = .true.
 15925     answer_shape = shape(answer)
 15926     check_shape = shape(check)
 15928     consist_shape = answer_shape == check_shape
 15930     if (.not. all(consist_shape)) 
then 15931       write(*,*) 
' *** Error [AssertLT] *** Checking ' // trim(message) // 
' FAILURE' 15933       write(*,*) 
'  shape of check is (', check_shape, 
')' 15934       write(*,*) 
'    is INCORRECT' 15935       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')' 15941     allocate( mask_array( &
 15942                             &    answer_shape(1), &
 15944       &    answer_shape(2), &
 15946       &    answer_shape(3), &
 15948       &    answer_shape(4), &
 15950       &    answer_shape(5)  )  &
 15954                             &    answer_shape(1), &
 15956       &    answer_shape(2), &
 15958       &    answer_shape(3), &
 15960       &    answer_shape(4), &
 15962       &    answer_shape(5)  )  &
 15965     allocate( judge_rev( &
 15966                             &    answer_shape(1), &
 15968       &    answer_shape(2), &
 15970       &    answer_shape(3), &
 15972       &    answer_shape(4), &
 15974       &    answer_shape(5)  )  &
 15977     allocate( answer_negative( &
 15978                             &    answer_shape(1), &
 15980       &    answer_shape(2), &
 15982       &    answer_shape(3), &
 15984       &    answer_shape(4), &
 15986       &    answer_shape(5)  )  &
 15989     allocate( check_negative( &
 15990                             &    answer_shape(1), &
 15992       &    answer_shape(2), &
 15994       &    answer_shape(3), &
 15996       &    answer_shape(4), &
 15998       &    answer_shape(5)  )  &
 16001     allocate( both_negative( &
 16002                             &    answer_shape(1), &
 16004       &    answer_shape(2), &
 16006       &    answer_shape(3), &
 16008       &    answer_shape(4), &
 16010       &    answer_shape(5)  )  &
 16013     answer_negative = answer < 0.0
 16014     check_negative = check < 0.0
 16015     both_negative = answer_negative .and. check_negative
 16016     if (.not. negative_support_on) both_negative = .false.
 16018     judge = answer > check
 16019     where (both_negative) judge = .not. judge
 16021     judge_rev = .not. judge
 16022     err_flag = any(judge_rev)
 16024     pos = maxloc(mask_array, judge_rev)
 16050                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
 16052       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
 16054       write(unit=pos_array(3), fmt=
"(i20)") pos(3)
 16056       write(unit=pos_array(4), fmt=
"(i20)") pos(4)
 16058       write(unit=pos_array(5), fmt=
"(i20)") pos(5)
 16062                               &    trim(adjustl(pos_array(1))) // 
',' // &
 16064         &    trim(adjustl(pos_array(2))) // 
',' // &
 16066         &    trim(adjustl(pos_array(3))) // 
',' // &
 16068         &    trim(adjustl(pos_array(4))) // 
',' // &
 16070         &    trim(adjustl(pos_array(5))) // 
')' 16072       if ( both_negative( &
 16083         abs_mes = 
'ABSOLUTE value of' 16090     deallocate(mask_array, judge, judge_rev)
 16091     deallocate(answer_negative, check_negative, both_negative)
 16097       write(*,*) 
' *** Error [AssertLT] *** Checking ' // trim(message) // 
' FAILURE' 16099       write(*,*) 
' ' // trim(abs_mes) // &
 16100         &        
' check' // trim(pos_str) // 
'  = ', wrong
 16101       write(*,*) 
'    is NOT LESS THAN' 16102       write(*,*) 
' ' // trim(abs_mes) // &
 16103         &        
' answer' // trim(pos_str) // 
' = ', right
 16107       write(*,*) 
' *** MESSAGE [AssertLT] *** Checking ' // trim(message) // 
' OK' 16115     & message, answer, check, negative_support)
 16119     character(*), 
intent(in):: message
 16120     real, 
intent(in):: answer(:,:,:,:,:,:)
 16121     real, 
intent(in):: check(:,:,:,:,:,:)
 16122     logical, 
intent(in), 
optional:: negative_support
 16124     logical:: negative_support_on
 16125     character(STRING):: pos_str
 16126     character(TOKEN):: abs_mes
 16127     real:: wrong, right
 16129                         integer:: answer_shape(6), check_shape(6), pos(6)
 16130     logical:: consist_shape(6)
 16131     character(TOKEN):: pos_array(6)
 16132     integer, 
allocatable:: mask_array(:,:,:,:,:,:)
 16133     logical, 
allocatable:: judge(:,:,:,:,:,:)
 16134     logical, 
allocatable:: judge_rev(:,:,:,:,:,:)
 16135     logical, 
allocatable:: answer_negative(:,:,:,:,:,:)
 16136     logical, 
allocatable:: check_negative(:,:,:,:,:,:)
 16137     logical, 
allocatable:: both_negative(:,:,:,:,:,:)
 16141     if (
present(negative_support)) 
then 16142       negative_support_on = negative_support
 16144       negative_support_on = .true.
 16150     answer_shape = shape(answer)
 16151     check_shape = shape(check)
 16153     consist_shape = answer_shape == check_shape
 16155     if (.not. all(consist_shape)) 
then 16156       write(*,*) 
' *** Error [AssertLT] *** Checking ' // trim(message) // 
' FAILURE' 16158       write(*,*) 
'  shape of check is (', check_shape, 
')' 16159       write(*,*) 
'    is INCORRECT' 16160       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')' 16166     allocate( mask_array( &
 16167                             &    answer_shape(1), &
 16169       &    answer_shape(2), &
 16171       &    answer_shape(3), &
 16173       &    answer_shape(4), &
 16175       &    answer_shape(5), &
 16177       &    answer_shape(6)  )  &
 16181                             &    answer_shape(1), &
 16183       &    answer_shape(2), &
 16185       &    answer_shape(3), &
 16187       &    answer_shape(4), &
 16189       &    answer_shape(5), &
 16191       &    answer_shape(6)  )  &
 16194     allocate( judge_rev( &
 16195                             &    answer_shape(1), &
 16197       &    answer_shape(2), &
 16199       &    answer_shape(3), &
 16201       &    answer_shape(4), &
 16203       &    answer_shape(5), &
 16205       &    answer_shape(6)  )  &
 16208     allocate( answer_negative( &
 16209                             &    answer_shape(1), &
 16211       &    answer_shape(2), &
 16213       &    answer_shape(3), &
 16215       &    answer_shape(4), &
 16217       &    answer_shape(5), &
 16219       &    answer_shape(6)  )  &
 16222     allocate( check_negative( &
 16223                             &    answer_shape(1), &
 16225       &    answer_shape(2), &
 16227       &    answer_shape(3), &
 16229       &    answer_shape(4), &
 16231       &    answer_shape(5), &
 16233       &    answer_shape(6)  )  &
 16236     allocate( both_negative( &
 16237                             &    answer_shape(1), &
 16239       &    answer_shape(2), &
 16241       &    answer_shape(3), &
 16243       &    answer_shape(4), &
 16245       &    answer_shape(5), &
 16247       &    answer_shape(6)  )  &
 16250     answer_negative = answer < 0.0
 16251     check_negative = check < 0.0
 16252     both_negative = answer_negative .and. check_negative
 16253     if (.not. negative_support_on) both_negative = .false.
 16255     judge = answer > check
 16256     where (both_negative) judge = .not. judge
 16258     judge_rev = .not. judge
 16259     err_flag = any(judge_rev)
 16261     pos = maxloc(mask_array, judge_rev)
 16291                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
 16293       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
 16295       write(unit=pos_array(3), fmt=
"(i20)") pos(3)
 16297       write(unit=pos_array(4), fmt=
"(i20)") pos(4)
 16299       write(unit=pos_array(5), fmt=
"(i20)") pos(5)
 16301       write(unit=pos_array(6), fmt=
"(i20)") pos(6)
 16305                               &    trim(adjustl(pos_array(1))) // 
',' // &
 16307         &    trim(adjustl(pos_array(2))) // 
',' // &
 16309         &    trim(adjustl(pos_array(3))) // 
',' // &
 16311         &    trim(adjustl(pos_array(4))) // 
',' // &
 16313         &    trim(adjustl(pos_array(5))) // 
',' // &
 16315         &    trim(adjustl(pos_array(6))) // 
')' 16317       if ( both_negative( &
 16330         abs_mes = 
'ABSOLUTE value of' 16337     deallocate(mask_array, judge, judge_rev)
 16338     deallocate(answer_negative, check_negative, both_negative)
 16344       write(*,*) 
' *** Error [AssertLT] *** Checking ' // trim(message) // 
' FAILURE' 16346       write(*,*) 
' ' // trim(abs_mes) // &
 16347         &        
' check' // trim(pos_str) // 
'  = ', wrong
 16348       write(*,*) 
'    is NOT LESS THAN' 16349       write(*,*) 
' ' // trim(abs_mes) // &
 16350         &        
' answer' // trim(pos_str) // 
' = ', right
 16354       write(*,*) 
' *** MESSAGE [AssertLT] *** Checking ' // trim(message) // 
' OK' 16362     & message, answer, check, negative_support)
 16366     character(*), 
intent(in):: message
 16367     real, 
intent(in):: answer(:,:,:,:,:,:,:)
 16368     real, 
intent(in):: check(:,:,:,:,:,:,:)
 16369     logical, 
intent(in), 
optional:: negative_support
 16371     logical:: negative_support_on
 16372     character(STRING):: pos_str
 16373     character(TOKEN):: abs_mes
 16374     real:: wrong, right
 16376                         integer:: answer_shape(7), check_shape(7), pos(7)
 16377     logical:: consist_shape(7)
 16378     character(TOKEN):: pos_array(7)
 16379     integer, 
allocatable:: mask_array(:,:,:,:,:,:,:)
 16380     logical, 
allocatable:: judge(:,:,:,:,:,:,:)
 16381     logical, 
allocatable:: judge_rev(:,:,:,:,:,:,:)
 16382     logical, 
allocatable:: answer_negative(:,:,:,:,:,:,:)
 16383     logical, 
allocatable:: check_negative(:,:,:,:,:,:,:)
 16384     logical, 
allocatable:: both_negative(:,:,:,:,:,:,:)
 16388     if (
present(negative_support)) 
then 16389       negative_support_on = negative_support
 16391       negative_support_on = .true.
 16397     answer_shape = shape(answer)
 16398     check_shape = shape(check)
 16400     consist_shape = answer_shape == check_shape
 16402     if (.not. all(consist_shape)) 
then 16403       write(*,*) 
' *** Error [AssertLT] *** Checking ' // trim(message) // 
' FAILURE' 16405       write(*,*) 
'  shape of check is (', check_shape, 
')' 16406       write(*,*) 
'    is INCORRECT' 16407       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')' 16413     allocate( mask_array( &
 16414                             &    answer_shape(1), &
 16416       &    answer_shape(2), &
 16418       &    answer_shape(3), &
 16420       &    answer_shape(4), &
 16422       &    answer_shape(5), &
 16424       &    answer_shape(6), &
 16426       &    answer_shape(7)  )  &
 16430                             &    answer_shape(1), &
 16432       &    answer_shape(2), &
 16434       &    answer_shape(3), &
 16436       &    answer_shape(4), &
 16438       &    answer_shape(5), &
 16440       &    answer_shape(6), &
 16442       &    answer_shape(7)  )  &
 16445     allocate( judge_rev( &
 16446                             &    answer_shape(1), &
 16448       &    answer_shape(2), &
 16450       &    answer_shape(3), &
 16452       &    answer_shape(4), &
 16454       &    answer_shape(5), &
 16456       &    answer_shape(6), &
 16458       &    answer_shape(7)  )  &
 16461     allocate( answer_negative( &
 16462                             &    answer_shape(1), &
 16464       &    answer_shape(2), &
 16466       &    answer_shape(3), &
 16468       &    answer_shape(4), &
 16470       &    answer_shape(5), &
 16472       &    answer_shape(6), &
 16474       &    answer_shape(7)  )  &
 16477     allocate( check_negative( &
 16478                             &    answer_shape(1), &
 16480       &    answer_shape(2), &
 16482       &    answer_shape(3), &
 16484       &    answer_shape(4), &
 16486       &    answer_shape(5), &
 16488       &    answer_shape(6), &
 16490       &    answer_shape(7)  )  &
 16493     allocate( both_negative( &
 16494                             &    answer_shape(1), &
 16496       &    answer_shape(2), &
 16498       &    answer_shape(3), &
 16500       &    answer_shape(4), &
 16502       &    answer_shape(5), &
 16504       &    answer_shape(6), &
 16506       &    answer_shape(7)  )  &
 16509     answer_negative = answer < 0.0
 16510     check_negative = check < 0.0
 16511     both_negative = answer_negative .and. check_negative
 16512     if (.not. negative_support_on) both_negative = .false.
 16514     judge = answer > check
 16515     where (both_negative) judge = .not. judge
 16517     judge_rev = .not. judge
 16518     err_flag = any(judge_rev)
 16520     pos = maxloc(mask_array, judge_rev)
 16554                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
 16556       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
 16558       write(unit=pos_array(3), fmt=
"(i20)") pos(3)
 16560       write(unit=pos_array(4), fmt=
"(i20)") pos(4)
 16562       write(unit=pos_array(5), fmt=
"(i20)") pos(5)
 16564       write(unit=pos_array(6), fmt=
"(i20)") pos(6)
 16566       write(unit=pos_array(7), fmt=
"(i20)") pos(7)
 16570                               &    trim(adjustl(pos_array(1))) // 
',' // &
 16572         &    trim(adjustl(pos_array(2))) // 
',' // &
 16574         &    trim(adjustl(pos_array(3))) // 
',' // &
 16576         &    trim(adjustl(pos_array(4))) // 
',' // &
 16578         &    trim(adjustl(pos_array(5))) // 
',' // &
 16580         &    trim(adjustl(pos_array(6))) // 
',' // &
 16582         &    trim(adjustl(pos_array(7))) // 
')' 16584       if ( both_negative( &
 16599         abs_mes = 
'ABSOLUTE value of' 16606     deallocate(mask_array, judge, judge_rev)
 16607     deallocate(answer_negative, check_negative, both_negative)
 16613       write(*,*) 
' *** Error [AssertLT] *** Checking ' // trim(message) // 
' FAILURE' 16615       write(*,*) 
' ' // trim(abs_mes) // &
 16616         &        
' check' // trim(pos_str) // 
'  = ', wrong
 16617       write(*,*) 
'    is NOT LESS THAN' 16618       write(*,*) 
' ' // trim(abs_mes) // &
 16619         &        
' answer' // trim(pos_str) // 
' = ', right
 16623       write(*,*) 
' *** MESSAGE [AssertLT] *** Checking ' // trim(message) // 
' OK' 16631     & message, answer, check, negative_support)
 16635     character(*), 
intent(in):: message
 16636     real(DP), 
intent(in):: answer
 16637     real(DP), 
intent(in):: check
 16638     logical, 
intent(in), 
optional:: negative_support
 16640     logical:: negative_support_on
 16641     character(STRING):: pos_str
 16642     character(TOKEN):: abs_mes
 16643     real(DP):: wrong, right
 16648     if (
present(negative_support)) 
then 16649       negative_support_on = negative_support
 16651       negative_support_on = .true.
 16659     err_flag = .not. answer > check
 16662     if ( answer < 0.0_dp &
 16663       &  .and. check < 0.0_dp &
 16664       &  .and. negative_support_on ) 
then 16666       err_flag = .not. err_flag
 16667       abs_mes = 
'ABSOLUTE value of' 16678       write(*,*) 
' *** Error [AssertLT] *** Checking ' // trim(message) // 
' FAILURE' 16680       write(*,*) 
' ' // trim(abs_mes) // &
 16681         &        
' check' // trim(pos_str) // 
'  = ', wrong
 16682       write(*,*) 
'    is NOT LESS THAN' 16683       write(*,*) 
' ' // trim(abs_mes) // &
 16684         &        
' answer' // trim(pos_str) // 
' = ', right
 16688       write(*,*) 
' *** MESSAGE [AssertLT] *** Checking ' // trim(message) // 
' OK' 16696     & message, answer, check, negative_support)
 16700     character(*), 
intent(in):: message
 16701     real(DP), 
intent(in):: answer(:)
 16702     real(DP), 
intent(in):: check(:)
 16703     logical, 
intent(in), 
optional:: negative_support
 16705     logical:: negative_support_on
 16706     character(STRING):: pos_str
 16707     character(TOKEN):: abs_mes
 16708     real(DP):: wrong, right
 16710                         integer:: answer_shape(1), check_shape(1), pos(1)
 16711     logical:: consist_shape(1)
 16712     character(TOKEN):: pos_array(1)
 16713     integer, 
allocatable:: mask_array(:)
 16714     logical, 
allocatable:: judge(:)
 16715     logical, 
allocatable:: judge_rev(:)
 16716     logical, 
allocatable:: answer_negative(:)
 16717     logical, 
allocatable:: check_negative(:)
 16718     logical, 
allocatable:: both_negative(:)
 16722     if (
present(negative_support)) 
then 16723       negative_support_on = negative_support
 16725       negative_support_on = .true.
 16731     answer_shape = shape(answer)
 16732     check_shape = shape(check)
 16734     consist_shape = answer_shape == check_shape
 16736     if (.not. all(consist_shape)) 
then 16737       write(*,*) 
' *** Error [AssertLT] *** Checking ' // trim(message) // 
' FAILURE' 16739       write(*,*) 
'  shape of check is (', check_shape, 
')' 16740       write(*,*) 
'    is INCORRECT' 16741       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')' 16747     allocate( mask_array( &
 16749       &    answer_shape(1)  )  &
 16754       &    answer_shape(1)  )  &
 16757     allocate( judge_rev( &
 16759       &    answer_shape(1)  )  &
 16762     allocate( answer_negative( &
 16764       &    answer_shape(1)  )  &
 16767     allocate( check_negative( &
 16769       &    answer_shape(1)  )  &
 16772     allocate( both_negative( &
 16774       &    answer_shape(1)  )  &
 16777     answer_negative = answer < 0.0_dp
 16778     check_negative = check < 0.0_dp
 16779     both_negative = answer_negative .and. check_negative
 16780     if (.not. negative_support_on) both_negative = .false.
 16782     judge = answer > check
 16783     where (both_negative) judge = .not. judge
 16785     judge_rev = .not. judge
 16786     err_flag = any(judge_rev)
 16788     pos = maxloc(mask_array, judge_rev)
 16800                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
 16805         &    trim(adjustl(pos_array(1))) // 
')' 16807       if ( both_negative( &
 16811         abs_mes = 
'ABSOLUTE value of' 16818     deallocate(mask_array, judge, judge_rev)
 16819     deallocate(answer_negative, check_negative, both_negative)
 16825       write(*,*) 
' *** Error [AssertLT] *** Checking ' // trim(message) // 
' FAILURE' 16827       write(*,*) 
' ' // trim(abs_mes) // &
 16828         &        
' check' // trim(pos_str) // 
'  = ', wrong
 16829       write(*,*) 
'    is NOT LESS THAN' 16830       write(*,*) 
' ' // trim(abs_mes) // &
 16831         &        
' answer' // trim(pos_str) // 
' = ', right
 16835       write(*,*) 
' *** MESSAGE [AssertLT] *** Checking ' // trim(message) // 
' OK' 16843     & message, answer, check, negative_support)
 16847     character(*), 
intent(in):: message
 16848     real(DP), 
intent(in):: answer(:,:)
 16849     real(DP), 
intent(in):: check(:,:)
 16850     logical, 
intent(in), 
optional:: negative_support
 16852     logical:: negative_support_on
 16853     character(STRING):: pos_str
 16854     character(TOKEN):: abs_mes
 16855     real(DP):: wrong, right
 16857                         integer:: answer_shape(2), check_shape(2), pos(2)
 16858     logical:: consist_shape(2)
 16859     character(TOKEN):: pos_array(2)
 16860     integer, 
allocatable:: mask_array(:,:)
 16861     logical, 
allocatable:: judge(:,:)
 16862     logical, 
allocatable:: judge_rev(:,:)
 16863     logical, 
allocatable:: answer_negative(:,:)
 16864     logical, 
allocatable:: check_negative(:,:)
 16865     logical, 
allocatable:: both_negative(:,:)
 16869     if (
present(negative_support)) 
then 16870       negative_support_on = negative_support
 16872       negative_support_on = .true.
 16878     answer_shape = shape(answer)
 16879     check_shape = shape(check)
 16881     consist_shape = answer_shape == check_shape
 16883     if (.not. all(consist_shape)) 
then 16884       write(*,*) 
' *** Error [AssertLT] *** Checking ' // trim(message) // 
' FAILURE' 16886       write(*,*) 
'  shape of check is (', check_shape, 
')' 16887       write(*,*) 
'    is INCORRECT' 16888       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')' 16894     allocate( mask_array( &
 16895                             &    answer_shape(1), &
 16897       &    answer_shape(2)  )  &
 16901                             &    answer_shape(1), &
 16903       &    answer_shape(2)  )  &
 16906     allocate( judge_rev( &
 16907                             &    answer_shape(1), &
 16909       &    answer_shape(2)  )  &
 16912     allocate( answer_negative( &
 16913                             &    answer_shape(1), &
 16915       &    answer_shape(2)  )  &
 16918     allocate( check_negative( &
 16919                             &    answer_shape(1), &
 16921       &    answer_shape(2)  )  &
 16924     allocate( both_negative( &
 16925                             &    answer_shape(1), &
 16927       &    answer_shape(2)  )  &
 16930     answer_negative = answer < 0.0_dp
 16931     check_negative = check < 0.0_dp
 16932     both_negative = answer_negative .and. check_negative
 16933     if (.not. negative_support_on) both_negative = .false.
 16935     judge = answer > check
 16936     where (both_negative) judge = .not. judge
 16938     judge_rev = .not. judge
 16939     err_flag = any(judge_rev)
 16941     pos = maxloc(mask_array, judge_rev)
 16955                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
 16957       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
 16961                               &    trim(adjustl(pos_array(1))) // 
',' // &
 16963         &    trim(adjustl(pos_array(2))) // 
')' 16965       if ( both_negative( &
 16970         abs_mes = 
'ABSOLUTE value of' 16977     deallocate(mask_array, judge, judge_rev)
 16978     deallocate(answer_negative, check_negative, both_negative)
 16984       write(*,*) 
' *** Error [AssertLT] *** Checking ' // trim(message) // 
' FAILURE' 16986       write(*,*) 
' ' // trim(abs_mes) // &
 16987         &        
' check' // trim(pos_str) // 
'  = ', wrong
 16988       write(*,*) 
'    is NOT LESS THAN' 16989       write(*,*) 
' ' // trim(abs_mes) // &
 16990         &        
' answer' // trim(pos_str) // 
' = ', right
 16994       write(*,*) 
' *** MESSAGE [AssertLT] *** Checking ' // trim(message) // 
' OK' 17002     & message, answer, check, negative_support)
 17006     character(*), 
intent(in):: message
 17007     real(DP), 
intent(in):: answer(:,:,:)
 17008     real(DP), 
intent(in):: check(:,:,:)
 17009     logical, 
intent(in), 
optional:: negative_support
 17011     logical:: negative_support_on
 17012     character(STRING):: pos_str
 17013     character(TOKEN):: abs_mes
 17014     real(DP):: wrong, right
 17016                         integer:: answer_shape(3), check_shape(3), pos(3)
 17017     logical:: consist_shape(3)
 17018     character(TOKEN):: pos_array(3)
 17019     integer, 
allocatable:: mask_array(:,:,:)
 17020     logical, 
allocatable:: judge(:,:,:)
 17021     logical, 
allocatable:: judge_rev(:,:,:)
 17022     logical, 
allocatable:: answer_negative(:,:,:)
 17023     logical, 
allocatable:: check_negative(:,:,:)
 17024     logical, 
allocatable:: both_negative(:,:,:)
 17028     if (
present(negative_support)) 
then 17029       negative_support_on = negative_support
 17031       negative_support_on = .true.
 17037     answer_shape = shape(answer)
 17038     check_shape = shape(check)
 17040     consist_shape = answer_shape == check_shape
 17042     if (.not. all(consist_shape)) 
then 17043       write(*,*) 
' *** Error [AssertLT] *** Checking ' // trim(message) // 
' FAILURE' 17045       write(*,*) 
'  shape of check is (', check_shape, 
')' 17046       write(*,*) 
'    is INCORRECT' 17047       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')' 17053     allocate( mask_array( &
 17054                             &    answer_shape(1), &
 17056       &    answer_shape(2), &
 17058       &    answer_shape(3)  )  &
 17062                             &    answer_shape(1), &
 17064       &    answer_shape(2), &
 17066       &    answer_shape(3)  )  &
 17069     allocate( judge_rev( &
 17070                             &    answer_shape(1), &
 17072       &    answer_shape(2), &
 17074       &    answer_shape(3)  )  &
 17077     allocate( answer_negative( &
 17078                             &    answer_shape(1), &
 17080       &    answer_shape(2), &
 17082       &    answer_shape(3)  )  &
 17085     allocate( check_negative( &
 17086                             &    answer_shape(1), &
 17088       &    answer_shape(2), &
 17090       &    answer_shape(3)  )  &
 17093     allocate( both_negative( &
 17094                             &    answer_shape(1), &
 17096       &    answer_shape(2), &
 17098       &    answer_shape(3)  )  &
 17101     answer_negative = answer < 0.0_dp
 17102     check_negative = check < 0.0_dp
 17103     both_negative = answer_negative .and. check_negative
 17104     if (.not. negative_support_on) both_negative = .false.
 17106     judge = answer > check
 17107     where (both_negative) judge = .not. judge
 17109     judge_rev = .not. judge
 17110     err_flag = any(judge_rev)
 17112     pos = maxloc(mask_array, judge_rev)
 17130                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
 17132       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
 17134       write(unit=pos_array(3), fmt=
"(i20)") pos(3)
 17138                               &    trim(adjustl(pos_array(1))) // 
',' // &
 17140         &    trim(adjustl(pos_array(2))) // 
',' // &
 17142         &    trim(adjustl(pos_array(3))) // 
')' 17144       if ( both_negative( &
 17151         abs_mes = 
'ABSOLUTE value of' 17158     deallocate(mask_array, judge, judge_rev)
 17159     deallocate(answer_negative, check_negative, both_negative)
 17165       write(*,*) 
' *** Error [AssertLT] *** Checking ' // trim(message) // 
' FAILURE' 17167       write(*,*) 
' ' // trim(abs_mes) // &
 17168         &        
' check' // trim(pos_str) // 
'  = ', wrong
 17169       write(*,*) 
'    is NOT LESS THAN' 17170       write(*,*) 
' ' // trim(abs_mes) // &
 17171         &        
' answer' // trim(pos_str) // 
' = ', right
 17175       write(*,*) 
' *** MESSAGE [AssertLT] *** Checking ' // trim(message) // 
' OK' 17183     & message, answer, check, negative_support)
 17187     character(*), 
intent(in):: message
 17188     real(DP), 
intent(in):: answer(:,:,:,:)
 17189     real(DP), 
intent(in):: check(:,:,:,:)
 17190     logical, 
intent(in), 
optional:: negative_support
 17192     logical:: negative_support_on
 17193     character(STRING):: pos_str
 17194     character(TOKEN):: abs_mes
 17195     real(DP):: wrong, right
 17197                         integer:: answer_shape(4), check_shape(4), pos(4)
 17198     logical:: consist_shape(4)
 17199     character(TOKEN):: pos_array(4)
 17200     integer, 
allocatable:: mask_array(:,:,:,:)
 17201     logical, 
allocatable:: judge(:,:,:,:)
 17202     logical, 
allocatable:: judge_rev(:,:,:,:)
 17203     logical, 
allocatable:: answer_negative(:,:,:,:)
 17204     logical, 
allocatable:: check_negative(:,:,:,:)
 17205     logical, 
allocatable:: both_negative(:,:,:,:)
 17209     if (
present(negative_support)) 
then 17210       negative_support_on = negative_support
 17212       negative_support_on = .true.
 17218     answer_shape = shape(answer)
 17219     check_shape = shape(check)
 17221     consist_shape = answer_shape == check_shape
 17223     if (.not. all(consist_shape)) 
then 17224       write(*,*) 
' *** Error [AssertLT] *** Checking ' // trim(message) // 
' FAILURE' 17226       write(*,*) 
'  shape of check is (', check_shape, 
')' 17227       write(*,*) 
'    is INCORRECT' 17228       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')' 17234     allocate( mask_array( &
 17235                             &    answer_shape(1), &
 17237       &    answer_shape(2), &
 17239       &    answer_shape(3), &
 17241       &    answer_shape(4)  )  &
 17245                             &    answer_shape(1), &
 17247       &    answer_shape(2), &
 17249       &    answer_shape(3), &
 17251       &    answer_shape(4)  )  &
 17254     allocate( judge_rev( &
 17255                             &    answer_shape(1), &
 17257       &    answer_shape(2), &
 17259       &    answer_shape(3), &
 17261       &    answer_shape(4)  )  &
 17264     allocate( answer_negative( &
 17265                             &    answer_shape(1), &
 17267       &    answer_shape(2), &
 17269       &    answer_shape(3), &
 17271       &    answer_shape(4)  )  &
 17274     allocate( check_negative( &
 17275                             &    answer_shape(1), &
 17277       &    answer_shape(2), &
 17279       &    answer_shape(3), &
 17281       &    answer_shape(4)  )  &
 17284     allocate( both_negative( &
 17285                             &    answer_shape(1), &
 17287       &    answer_shape(2), &
 17289       &    answer_shape(3), &
 17291       &    answer_shape(4)  )  &
 17294     answer_negative = answer < 0.0_dp
 17295     check_negative = check < 0.0_dp
 17296     both_negative = answer_negative .and. check_negative
 17297     if (.not. negative_support_on) both_negative = .false.
 17299     judge = answer > check
 17300     where (both_negative) judge = .not. judge
 17302     judge_rev = .not. judge
 17303     err_flag = any(judge_rev)
 17305     pos = maxloc(mask_array, judge_rev)
 17327                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
 17329       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
 17331       write(unit=pos_array(3), fmt=
"(i20)") pos(3)
 17333       write(unit=pos_array(4), fmt=
"(i20)") pos(4)
 17337                               &    trim(adjustl(pos_array(1))) // 
',' // &
 17339         &    trim(adjustl(pos_array(2))) // 
',' // &
 17341         &    trim(adjustl(pos_array(3))) // 
',' // &
 17343         &    trim(adjustl(pos_array(4))) // 
')' 17345       if ( both_negative( &
 17354         abs_mes = 
'ABSOLUTE value of' 17361     deallocate(mask_array, judge, judge_rev)
 17362     deallocate(answer_negative, check_negative, both_negative)
 17368       write(*,*) 
' *** Error [AssertLT] *** Checking ' // trim(message) // 
' FAILURE' 17370       write(*,*) 
' ' // trim(abs_mes) // &
 17371         &        
' check' // trim(pos_str) // 
'  = ', wrong
 17372       write(*,*) 
'    is NOT LESS THAN' 17373       write(*,*) 
' ' // trim(abs_mes) // &
 17374         &        
' answer' // trim(pos_str) // 
' = ', right
 17378       write(*,*) 
' *** MESSAGE [AssertLT] *** Checking ' // trim(message) // 
' OK' 17386     & message, answer, check, negative_support)
 17390     character(*), 
intent(in):: message
 17391     real(DP), 
intent(in):: answer(:,:,:,:,:)
 17392     real(DP), 
intent(in):: check(:,:,:,:,:)
 17393     logical, 
intent(in), 
optional:: negative_support
 17395     logical:: negative_support_on
 17396     character(STRING):: pos_str
 17397     character(TOKEN):: abs_mes
 17398     real(DP):: wrong, right
 17400                         integer:: answer_shape(5), check_shape(5), pos(5)
 17401     logical:: consist_shape(5)
 17402     character(TOKEN):: pos_array(5)
 17403     integer, 
allocatable:: mask_array(:,:,:,:,:)
 17404     logical, 
allocatable:: judge(:,:,:,:,:)
 17405     logical, 
allocatable:: judge_rev(:,:,:,:,:)
 17406     logical, 
allocatable:: answer_negative(:,:,:,:,:)
 17407     logical, 
allocatable:: check_negative(:,:,:,:,:)
 17408     logical, 
allocatable:: both_negative(:,:,:,:,:)
 17412     if (
present(negative_support)) 
then 17413       negative_support_on = negative_support
 17415       negative_support_on = .true.
 17421     answer_shape = shape(answer)
 17422     check_shape = shape(check)
 17424     consist_shape = answer_shape == check_shape
 17426     if (.not. all(consist_shape)) 
then 17427       write(*,*) 
' *** Error [AssertLT] *** Checking ' // trim(message) // 
' FAILURE' 17429       write(*,*) 
'  shape of check is (', check_shape, 
')' 17430       write(*,*) 
'    is INCORRECT' 17431       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')' 17437     allocate( mask_array( &
 17438                             &    answer_shape(1), &
 17440       &    answer_shape(2), &
 17442       &    answer_shape(3), &
 17444       &    answer_shape(4), &
 17446       &    answer_shape(5)  )  &
 17450                             &    answer_shape(1), &
 17452       &    answer_shape(2), &
 17454       &    answer_shape(3), &
 17456       &    answer_shape(4), &
 17458       &    answer_shape(5)  )  &
 17461     allocate( judge_rev( &
 17462                             &    answer_shape(1), &
 17464       &    answer_shape(2), &
 17466       &    answer_shape(3), &
 17468       &    answer_shape(4), &
 17470       &    answer_shape(5)  )  &
 17473     allocate( answer_negative( &
 17474                             &    answer_shape(1), &
 17476       &    answer_shape(2), &
 17478       &    answer_shape(3), &
 17480       &    answer_shape(4), &
 17482       &    answer_shape(5)  )  &
 17485     allocate( check_negative( &
 17486                             &    answer_shape(1), &
 17488       &    answer_shape(2), &
 17490       &    answer_shape(3), &
 17492       &    answer_shape(4), &
 17494       &    answer_shape(5)  )  &
 17497     allocate( both_negative( &
 17498                             &    answer_shape(1), &
 17500       &    answer_shape(2), &
 17502       &    answer_shape(3), &
 17504       &    answer_shape(4), &
 17506       &    answer_shape(5)  )  &
 17509     answer_negative = answer < 0.0_dp
 17510     check_negative = check < 0.0_dp
 17511     both_negative = answer_negative .and. check_negative
 17512     if (.not. negative_support_on) both_negative = .false.
 17514     judge = answer > check
 17515     where (both_negative) judge = .not. judge
 17517     judge_rev = .not. judge
 17518     err_flag = any(judge_rev)
 17520     pos = maxloc(mask_array, judge_rev)
 17546                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
 17548       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
 17550       write(unit=pos_array(3), fmt=
"(i20)") pos(3)
 17552       write(unit=pos_array(4), fmt=
"(i20)") pos(4)
 17554       write(unit=pos_array(5), fmt=
"(i20)") pos(5)
 17558                               &    trim(adjustl(pos_array(1))) // 
',' // &
 17560         &    trim(adjustl(pos_array(2))) // 
',' // &
 17562         &    trim(adjustl(pos_array(3))) // 
',' // &
 17564         &    trim(adjustl(pos_array(4))) // 
',' // &
 17566         &    trim(adjustl(pos_array(5))) // 
')' 17568       if ( both_negative( &
 17579         abs_mes = 
'ABSOLUTE value of' 17586     deallocate(mask_array, judge, judge_rev)
 17587     deallocate(answer_negative, check_negative, both_negative)
 17593       write(*,*) 
' *** Error [AssertLT] *** Checking ' // trim(message) // 
' FAILURE' 17595       write(*,*) 
' ' // trim(abs_mes) // &
 17596         &        
' check' // trim(pos_str) // 
'  = ', wrong
 17597       write(*,*) 
'    is NOT LESS THAN' 17598       write(*,*) 
' ' // trim(abs_mes) // &
 17599         &        
' answer' // trim(pos_str) // 
' = ', right
 17603       write(*,*) 
' *** MESSAGE [AssertLT] *** Checking ' // trim(message) // 
' OK' 17611     & message, answer, check, negative_support)
 17615     character(*), 
intent(in):: message
 17616     real(DP), 
intent(in):: answer(:,:,:,:,:,:)
 17617     real(DP), 
intent(in):: check(:,:,:,:,:,:)
 17618     logical, 
intent(in), 
optional:: negative_support
 17620     logical:: negative_support_on
 17621     character(STRING):: pos_str
 17622     character(TOKEN):: abs_mes
 17623     real(DP):: wrong, right
 17625                         integer:: answer_shape(6), check_shape(6), pos(6)
 17626     logical:: consist_shape(6)
 17627     character(TOKEN):: pos_array(6)
 17628     integer, 
allocatable:: mask_array(:,:,:,:,:,:)
 17629     logical, 
allocatable:: judge(:,:,:,:,:,:)
 17630     logical, 
allocatable:: judge_rev(:,:,:,:,:,:)
 17631     logical, 
allocatable:: answer_negative(:,:,:,:,:,:)
 17632     logical, 
allocatable:: check_negative(:,:,:,:,:,:)
 17633     logical, 
allocatable:: both_negative(:,:,:,:,:,:)
 17637     if (
present(negative_support)) 
then 17638       negative_support_on = negative_support
 17640       negative_support_on = .true.
 17646     answer_shape = shape(answer)
 17647     check_shape = shape(check)
 17649     consist_shape = answer_shape == check_shape
 17651     if (.not. all(consist_shape)) 
then 17652       write(*,*) 
' *** Error [AssertLT] *** Checking ' // trim(message) // 
' FAILURE' 17654       write(*,*) 
'  shape of check is (', check_shape, 
')' 17655       write(*,*) 
'    is INCORRECT' 17656       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')' 17662     allocate( mask_array( &
 17663                             &    answer_shape(1), &
 17665       &    answer_shape(2), &
 17667       &    answer_shape(3), &
 17669       &    answer_shape(4), &
 17671       &    answer_shape(5), &
 17673       &    answer_shape(6)  )  &
 17677                             &    answer_shape(1), &
 17679       &    answer_shape(2), &
 17681       &    answer_shape(3), &
 17683       &    answer_shape(4), &
 17685       &    answer_shape(5), &
 17687       &    answer_shape(6)  )  &
 17690     allocate( judge_rev( &
 17691                             &    answer_shape(1), &
 17693       &    answer_shape(2), &
 17695       &    answer_shape(3), &
 17697       &    answer_shape(4), &
 17699       &    answer_shape(5), &
 17701       &    answer_shape(6)  )  &
 17704     allocate( answer_negative( &
 17705                             &    answer_shape(1), &
 17707       &    answer_shape(2), &
 17709       &    answer_shape(3), &
 17711       &    answer_shape(4), &
 17713       &    answer_shape(5), &
 17715       &    answer_shape(6)  )  &
 17718     allocate( check_negative( &
 17719                             &    answer_shape(1), &
 17721       &    answer_shape(2), &
 17723       &    answer_shape(3), &
 17725       &    answer_shape(4), &
 17727       &    answer_shape(5), &
 17729       &    answer_shape(6)  )  &
 17732     allocate( both_negative( &
 17733                             &    answer_shape(1), &
 17735       &    answer_shape(2), &
 17737       &    answer_shape(3), &
 17739       &    answer_shape(4), &
 17741       &    answer_shape(5), &
 17743       &    answer_shape(6)  )  &
 17746     answer_negative = answer < 0.0_dp
 17747     check_negative = check < 0.0_dp
 17748     both_negative = answer_negative .and. check_negative
 17749     if (.not. negative_support_on) both_negative = .false.
 17751     judge = answer > check
 17752     where (both_negative) judge = .not. judge
 17754     judge_rev = .not. judge
 17755     err_flag = any(judge_rev)
 17757     pos = maxloc(mask_array, judge_rev)
 17787                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
 17789       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
 17791       write(unit=pos_array(3), fmt=
"(i20)") pos(3)
 17793       write(unit=pos_array(4), fmt=
"(i20)") pos(4)
 17795       write(unit=pos_array(5), fmt=
"(i20)") pos(5)
 17797       write(unit=pos_array(6), fmt=
"(i20)") pos(6)
 17801                               &    trim(adjustl(pos_array(1))) // 
',' // &
 17803         &    trim(adjustl(pos_array(2))) // 
',' // &
 17805         &    trim(adjustl(pos_array(3))) // 
',' // &
 17807         &    trim(adjustl(pos_array(4))) // 
',' // &
 17809         &    trim(adjustl(pos_array(5))) // 
',' // &
 17811         &    trim(adjustl(pos_array(6))) // 
')' 17813       if ( both_negative( &
 17826         abs_mes = 
'ABSOLUTE value of' 17833     deallocate(mask_array, judge, judge_rev)
 17834     deallocate(answer_negative, check_negative, both_negative)
 17840       write(*,*) 
' *** Error [AssertLT] *** Checking ' // trim(message) // 
' FAILURE' 17842       write(*,*) 
' ' // trim(abs_mes) // &
 17843         &        
' check' // trim(pos_str) // 
'  = ', wrong
 17844       write(*,*) 
'    is NOT LESS THAN' 17845       write(*,*) 
' ' // trim(abs_mes) // &
 17846         &        
' answer' // trim(pos_str) // 
' = ', right
 17850       write(*,*) 
' *** MESSAGE [AssertLT] *** Checking ' // trim(message) // 
' OK' 17858     & message, answer, check, negative_support)
 17862     character(*), 
intent(in):: message
 17863     real(DP), 
intent(in):: answer(:,:,:,:,:,:,:)
 17864     real(DP), 
intent(in):: check(:,:,:,:,:,:,:)
 17865     logical, 
intent(in), 
optional:: negative_support
 17867     logical:: negative_support_on
 17868     character(STRING):: pos_str
 17869     character(TOKEN):: abs_mes
 17870     real(DP):: wrong, right
 17872                         integer:: answer_shape(7), check_shape(7), pos(7)
 17873     logical:: consist_shape(7)
 17874     character(TOKEN):: pos_array(7)
 17875     integer, 
allocatable:: mask_array(:,:,:,:,:,:,:)
 17876     logical, 
allocatable:: judge(:,:,:,:,:,:,:)
 17877     logical, 
allocatable:: judge_rev(:,:,:,:,:,:,:)
 17878     logical, 
allocatable:: answer_negative(:,:,:,:,:,:,:)
 17879     logical, 
allocatable:: check_negative(:,:,:,:,:,:,:)
 17880     logical, 
allocatable:: both_negative(:,:,:,:,:,:,:)
 17884     if (
present(negative_support)) 
then 17885       negative_support_on = negative_support
 17887       negative_support_on = .true.
 17893     answer_shape = shape(answer)
 17894     check_shape = shape(check)
 17896     consist_shape = answer_shape == check_shape
 17898     if (.not. all(consist_shape)) 
then 17899       write(*,*) 
' *** Error [AssertLT] *** Checking ' // trim(message) // 
' FAILURE' 17901       write(*,*) 
'  shape of check is (', check_shape, 
')' 17902       write(*,*) 
'    is INCORRECT' 17903       write(*,*) 
'  Correct shape of answer is (', answer_shape, 
')' 17909     allocate( mask_array( &
 17910                             &    answer_shape(1), &
 17912       &    answer_shape(2), &
 17914       &    answer_shape(3), &
 17916       &    answer_shape(4), &
 17918       &    answer_shape(5), &
 17920       &    answer_shape(6), &
 17922       &    answer_shape(7)  )  &
 17926                             &    answer_shape(1), &
 17928       &    answer_shape(2), &
 17930       &    answer_shape(3), &
 17932       &    answer_shape(4), &
 17934       &    answer_shape(5), &
 17936       &    answer_shape(6), &
 17938       &    answer_shape(7)  )  &
 17941     allocate( judge_rev( &
 17942                             &    answer_shape(1), &
 17944       &    answer_shape(2), &
 17946       &    answer_shape(3), &
 17948       &    answer_shape(4), &
 17950       &    answer_shape(5), &
 17952       &    answer_shape(6), &
 17954       &    answer_shape(7)  )  &
 17957     allocate( answer_negative( &
 17958                             &    answer_shape(1), &
 17960       &    answer_shape(2), &
 17962       &    answer_shape(3), &
 17964       &    answer_shape(4), &
 17966       &    answer_shape(5), &
 17968       &    answer_shape(6), &
 17970       &    answer_shape(7)  )  &
 17973     allocate( check_negative( &
 17974                             &    answer_shape(1), &
 17976       &    answer_shape(2), &
 17978       &    answer_shape(3), &
 17980       &    answer_shape(4), &
 17982       &    answer_shape(5), &
 17984       &    answer_shape(6), &
 17986       &    answer_shape(7)  )  &
 17989     allocate( both_negative( &
 17990                             &    answer_shape(1), &
 17992       &    answer_shape(2), &
 17994       &    answer_shape(3), &
 17996       &    answer_shape(4), &
 17998       &    answer_shape(5), &
 18000       &    answer_shape(6), &
 18002       &    answer_shape(7)  )  &
 18005     answer_negative = answer < 0.0_dp
 18006     check_negative = check < 0.0_dp
 18007     both_negative = answer_negative .and. check_negative
 18008     if (.not. negative_support_on) both_negative = .false.
 18010     judge = answer > check
 18011     where (both_negative) judge = .not. judge
 18013     judge_rev = .not. judge
 18014     err_flag = any(judge_rev)
 18016     pos = maxloc(mask_array, judge_rev)
 18050                             write(unit=pos_array(1), fmt=
"(i20)") pos(1)
 18052       write(unit=pos_array(2), fmt=
"(i20)") pos(2)
 18054       write(unit=pos_array(3), fmt=
"(i20)") pos(3)
 18056       write(unit=pos_array(4), fmt=
"(i20)") pos(4)
 18058       write(unit=pos_array(5), fmt=
"(i20)") pos(5)
 18060       write(unit=pos_array(6), fmt=
"(i20)") pos(6)
 18062       write(unit=pos_array(7), fmt=
"(i20)") pos(7)
 18066                               &    trim(adjustl(pos_array(1))) // 
',' // &
 18068         &    trim(adjustl(pos_array(2))) // 
',' // &
 18070         &    trim(adjustl(pos_array(3))) // 
',' // &
 18072         &    trim(adjustl(pos_array(4))) // 
',' // &
 18074         &    trim(adjustl(pos_array(5))) // 
',' // &
 18076         &    trim(adjustl(pos_array(6))) // 
',' // &
 18078         &    trim(adjustl(pos_array(7))) // 
')' 18080       if ( both_negative( &
 18095         abs_mes = 
'ABSOLUTE value of' 18102     deallocate(mask_array, judge, judge_rev)
 18103     deallocate(answer_negative, check_negative, both_negative)
 18109       write(*,*) 
' *** Error [AssertLT] *** Checking ' // trim(message) // 
' FAILURE' 18111       write(*,*) 
' ' // trim(abs_mes) // &
 18112         &        
' check' // trim(pos_str) // 
'  = ', wrong
 18113       write(*,*) 
'    is NOT LESS THAN' 18114       write(*,*) 
' ' // trim(abs_mes) // &
 18115         &        
' answer' // trim(pos_str) // 
' = ', right
 18119       write(*,*) 
' *** MESSAGE [AssertLT] *** Checking ' // trim(message) // 
' OK' 
subroutine dctestassertgreaterthandouble1(message, answer, check, negative_support)
 
subroutine dctestassertequalint6(message, answer, check)
 
subroutine dctestassertgreaterthanreal0(message, answer, check, negative_support)
 
subroutine dctestassertequaldouble7digits(message, answer, check, significant_digits, ignore_digits)
 
subroutine dctestassertlessthanint1(message, answer, check, negative_support)
 
subroutine dctestassertequalint7(message, answer, check)
 
subroutine dctestassertequaldouble3(message, answer, check)
 
subroutine dctestassertlessthanint5(message, answer, check, negative_support)
 
subroutine dctestassertequaldouble7(message, answer, check)
 
subroutine dctestassertequalreal1(message, answer, check)
 
subroutine dctestassertequaldouble1digits(message, answer, check, significant_digits, ignore_digits)
 
subroutine dctestassertequalchar1(message, answer, check)
 
subroutine dctestassertequallogical7(message, answer, check)
 
subroutine dctestassertequaldouble4(message, answer, check)
 
subroutine dctestassertequalchar4(message, answer, check)
 
subroutine dctestassertequallogical4(message, answer, check)
 
subroutine dctestassertequalreal3(message, answer, check)
 
subroutine dctestassertlessthanreal0(message, answer, check, negative_support)
 
subroutine dctestassertlessthandouble0(message, answer, check, negative_support)
 
subroutine dctestassertequalreal5digits(message, answer, check, significant_digits, ignore_digits)
 
integer, parameter, public token
単語やキーワードを保持する文字型変数の種別型パラメタ 
 
subroutine dctestassertequalreal7(message, answer, check)
 
subroutine dctestassertgreaterthanint1(message, answer, check, negative_support)
 
subroutine dctestassertequaldouble0digits(message, answer, check, significant_digits, ignore_digits)
 
subroutine dctestassertequalint2(message, answer, check)
 
subroutine dctestassertlessthanint7(message, answer, check, negative_support)
 
subroutine dctestassertequalchar5(message, answer, check)
 
subroutine dctestassertequalreal2digits(message, answer, check, significant_digits, ignore_digits)
 
subroutine dctestassertlessthandouble1(message, answer, check, negative_support)
 
subroutine dctestassertequallogical3(message, answer, check)
 
subroutine dctestassertequallogical0(message, answer, check)
 
subroutine dctestassertequalreal3digits(message, answer, check, significant_digits, ignore_digits)
 
subroutine dctestassertequallogical1(message, answer, check)
 
subroutine dctestassertequalint1(message, answer, check)
 
subroutine dctestassertgreaterthanreal2(message, answer, check, negative_support)
 
subroutine dctestassertgreaterthanint6(message, answer, check, negative_support)
 
subroutine dctestassertgreaterthanreal7(message, answer, check, negative_support)
 
subroutine dctestassertequalreal5(message, answer, check)
 
subroutine dctestassertlessthanreal2(message, answer, check, negative_support)
 
subroutine dctestassertgreaterthandouble4(message, answer, check, negative_support)
 
subroutine dctestassertlessthanint4(message, answer, check, negative_support)
 
subroutine dctestassertequaldouble1(message, answer, check)
 
subroutine dctestassertlessthanint2(message, answer, check, negative_support)
 
subroutine dctestassertequaldouble2(message, answer, check)
 
subroutine dctestassertgreaterthanint3(message, answer, check, negative_support)
 
subroutine dctestassertgreaterthanint0(message, answer, check, negative_support)
 
subroutine dctestassertequallogical2(message, answer, check)
 
subroutine dctestassertequaldouble6(message, answer, check)
 
subroutine dctestassertgreaterthanint4(message, answer, check, negative_support)
 
subroutine dctestassertlessthandouble2(message, answer, check, negative_support)
 
subroutine dctestassertgreaterthandouble7(message, answer, check, negative_support)
 
subroutine dctestassertlessthanreal5(message, answer, check, negative_support)
 
subroutine dctestassertequaldouble2digits(message, answer, check, significant_digits, ignore_digits)
 
subroutine dctestassertequalreal6(message, answer, check)
 
subroutine dctestassertequaldouble6digits(message, answer, check, significant_digits, ignore_digits)
 
subroutine dctestassertequalint3(message, answer, check)
 
integer, parameter, public dp
倍精度実数型変数 
 
subroutine dctestassertequalint0(message, answer, check)
 
subroutine dctestassertgreaterthanint2(message, answer, check, negative_support)
 
subroutine dctestassertequaldouble5(message, answer, check)
 
subroutine dctestassertequaldouble3digits(message, answer, check, significant_digits, ignore_digits)
 
subroutine dctestassertequaldouble0(message, answer, check)
 
subroutine dctestassertequallogical5(message, answer, check)
 
subroutine dctestassertgreaterthandouble0(message, answer, check, negative_support)
 
subroutine dctestassertlessthanreal1(message, answer, check, negative_support)
 
subroutine dctestassertlessthandouble3(message, answer, check, negative_support)
 
subroutine dctestassertgreaterthanreal3(message, answer, check, negative_support)
 
subroutine dctestassertequalint4(message, answer, check)
 
subroutine dctestassertequaldouble4digits(message, answer, check, significant_digits, ignore_digits)
 
subroutine dctestassertequalchar7(message, answer, check)
 
subroutine dctestassertgreaterthanreal4(message, answer, check, negative_support)
 
subroutine dctestassertlessthanreal4(message, answer, check, negative_support)
 
subroutine dctestassertgreaterthandouble3(message, answer, check, negative_support)
 
subroutine dctestassertlessthandouble7(message, answer, check, negative_support)
 
subroutine dctestassertequallogical6(message, answer, check)
 
subroutine dctestassertlessthanreal3(message, answer, check, negative_support)
 
subroutine dctestassertgreaterthanint7(message, answer, check, negative_support)
 
subroutine dctestassertlessthanint0(message, answer, check, negative_support)
 
subroutine dctestassertlessthandouble5(message, answer, check, negative_support)
 
subroutine dctestassertgreaterthanreal5(message, answer, check, negative_support)
 
subroutine dctestassertlessthandouble6(message, answer, check, negative_support)
 
subroutine dctestassertequalreal2(message, answer, check)
 
subroutine dctestassertequalreal4digits(message, answer, check, significant_digits, ignore_digits)
 
subroutine dctestassertlessthanreal7(message, answer, check, negative_support)
 
subroutine dctestassertgreaterthandouble2(message, answer, check, negative_support)
 
subroutine dctestassertgreaterthanreal6(message, answer, check, negative_support)
 
subroutine dctestassertequalreal6digits(message, answer, check, significant_digits, ignore_digits)
 
subroutine dctestassertequaldouble5digits(message, answer, check, significant_digits, ignore_digits)
 
subroutine dctestassertequalreal4(message, answer, check)
 
subroutine dctestassertgreaterthandouble6(message, answer, check, negative_support)
 
subroutine dctestassertlessthandouble4(message, answer, check, negative_support)
 
subroutine dctestassertequalchar3(message, answer, check)
 
subroutine dctestassertlessthanint3(message, answer, check, negative_support)
 
subroutine dctestassertlessthanreal6(message, answer, check, negative_support)
 
subroutine dctestassertequalint5(message, answer, check)
 
subroutine dctestassertequalreal1digits(message, answer, check, significant_digits, ignore_digits)
 
subroutine dctestassertequalreal7digits(message, answer, check, significant_digits, ignore_digits)
 
subroutine dctestassertequalreal0(message, answer, check)
 
subroutine dctestassertequalreal0digits(message, answer, check, significant_digits, ignore_digits)
 
subroutine dctestassertgreaterthandouble5(message, answer, check, negative_support)
 
subroutine dctestassertequalchar2(message, answer, check)
 
subroutine dctestassertequalchar6(message, answer, check)
 
subroutine dctestassertgreaterthanreal1(message, answer, check, negative_support)
 
subroutine dctestassertgreaterthanint5(message, answer, check, negative_support)
 
subroutine dctestassertequalchar0(message, answer, check)
 
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ 
 
subroutine dctestassertlessthanint6(message, answer, check, negative_support)