File1: #include <stdio.h>\n#include <omp.h>\n\nint main(){\n  int a, b, c, d;\n\n  #pragma omp parallel\n  #pragma omp single\n  {\n    #pragma omp task depend(out: c)\n      c = 1;\n    #pragma omp task depend(out: a)\n      a = 2;\n    #pragma omp task depend(out: b)\n      b = 3;\n    #pragma omp task depend(in: a) depend(mutexinoutset: c)\n      c += a;\n    #pragma omp task depend(in: b) depend(mutexinoutset: c)\n      c += b;\n    #pragma omp task depend(in: c)\n      d = c;\n  }\n\n  printf("%d\n",d);\n  return 0;\n}\n
File2: program DRB135_taskdep_mutexinoutset_orig_no_omp50\n    use omp_lib\n    implicit none\n\n    integer :: a, b, c, d\n\n    !$omp parallel\n    !$omp single\n        !$omp task depend(out: c)\n        c = 1      ! Task T1\n        !$omp end task\n        !$omp task depend(out: a)\n        a = 2      ! Task T2\n        !$omp end task\n        !$omp task depend(out: b)\n        b = 3      ! Task T3\n        !$omp end task\n        !$omp task depend(in: a) depend(mutexinoutset: c)\n        c = c + a  ! Task T4\n        !$omp end task\n        !$omp task depend(in: b) depend(mutexinoutset: c)\n        c = c + b  ! Task T5\n        !$omp end task\n        !$omp task depend(in: c)\n        d = c      ! Task T6\n        !$omp end task\n    !$omp end single\n    !$omp end parallel\n\n    print *, d\nend program