File1: #include <stdio.h>\n#include <omp.h>\n\nint main(){\n\n  int i = 1;\n\n  #pragma omp parallel sections\n  {\n    #pragma omp section\n    {\n      #pragma omp critical (name)\n      {\n        #pragma omp parallel\n        {\n          #pragma omp single\n          {\n            i++;\n          }\n        }\n      }\n    }\n  }\n\n  printf("%d\n",i);\n  return 0;\n}\n
File2: program DRB139_worksharingcritical_orig_no\n    use omp_lib\n    implicit none\n\n    integer :: i\n    i = 1\n\n    !$OMP PARALLEL SECTIONS\n    !$OMP SECTION\n        !$OMP CRITICAL (NAME)\n            !$OMP PARALLEL\n                !$OMP SINGLE\n                i = i + 1\n                !$OMP END SINGLE\n            !$OMP END PARALLEL\n        !$OMP END CRITICAL (NAME)\n    !$OMP END PARALLEL SECTIONS\n\n    print 100,i\n    100 format ("i = ", 3i8)\nend program