if You had lurked a bit thru the forums You would have noticed how for source code we suggest the use of the code tags
to preserve the MF formatting and to make in thios way things more readable for the people willing to help
here is a snippet of Your posted code with the code tags
12345678901234567890123456789012345678901234567890123456789012345678901234567890
DBD NAME=IMMMBRDB,ACCESS=(HIDAM,OSAM)
DATASET DD1=IMMMBRDB,SIZE=(4160),SCAN=5,FRSPC=(50,7)
DATASET DD1=IMMMBRD2,SIZE=(4160),SCAN=5,FRSPC=(50,7)
DATASET
SEGM NAME=MMCERT,BYTES=80,PTR=(TB), X
PARENT=0,RULES=(PVV),COMPRTN=(DPIEXIT,DATA,INIT)
FIELD NAME=(MMCERTNO,SEQ,U),BYTES=9,START=1,TYPE=C
LCHILD NAME=(MMINDEX,IMMMBRNX),PTR=INDX
SEGM NAME=MMCONT,BYTES=320,PTR=(T,LTB), X
PARENT=((MMCERT),(GSGROUP,P,IMMGPSDB)), X
RULES=(VLV)
FIELD NAME=(MMGRUPNO,SEQ,U),BYTES=6,START=1,TYPE=C
FIELD NAME=MMSD65DT,BYTES=4,START=43,TYPE=C
DATASET
SEGM NAME=MMMEMBR,BYTES=200,PTR=(T), X
PARENT=MMCONT,RULES=(LLL), X
COMPRTN=(DPIEXIT,DATA,INIT)
FIELD NAME=(MMMEMBCD,SEQ,U),BYTES=2,START=1,TYPE=C
FIELD NAME=MMNAME,BYTES=7,START=3,TYPE=C
FIELD NAME=MMBIRDT,BYTES=5,START=16,TYPE=C
FIELD NAME=MMMEFFDT,BYTES=4,START=21,TYPE=C
FIELD NAME=MMHIBNBR,BYTES=12,START=103,TYPE=C
SEGM NAME=MMLTNAM,BYTES=16,PTR=(T), X
PARENT=MMMEMBR,RULES=(LLL,LAST)
FIELD NAME=MMLASTNA,BYTES=16,START=1,TYPE=C
SEGM NAME=MMCANCL,BYTES=16,PTR=(T), X
PARENT=MMMEMBR,RULES=(LLL,LAST)
FIELD NAME=MMCANEFF,BYTES=4,START=1,TYPE=C
skipped the rest because I got bored
DBD NAME=IMMMBRDB,ACCESS=(HIDAM,OSAM)
DATASET DD1=IMMMBRDB,SIZE=(4160),SCAN=5,FRSPC=(50,7)
DATASET DD1=IMMMBRD2,SIZE=(4160),SCAN=5,FRSPC=(50,7)
DATASET
SEGM NAME=MMCERT,BYTES=80,PTR=(TB), X
PARENT=0,RULES=(PVV),COMPRTN=(DPIEXIT,DATA,INIT)
FIELD NAME=(MMCERTNO,SEQ,U),BYTES=9,START=1,TYPE=C
LCHILD NAME=(MMINDEX,IMMMBRNX),PTR=INDX
SEGM NAME=MMCONT,BYTES=320,PTR=(T,LTB), X
PARENT=((MMCERT),(GSGROUP,P,IMMGPSDB)), X
RULES=(VLV)
FIELD NAME=(MMGRUPNO,SEQ,U),BYTES=6,START=1,TYPE=C
FIELD NAME=MMSD65DT,BYTES=4,START=43,TYPE=C
DATASET
SEGM NAME=MMMEMBR,BYTES=200,PTR=(T), X
PARENT=MMCONT,RULES=(LLL), X
COMPRTN=(DPIEXIT,DATA,INIT)
FIELD NAME=(MMMEMBCD,SEQ,U),BYTES=2,START=1,TYPE=C
FIELD NAME=MMNAME,BYTES=7,START=3,TYPE=C
FIELD NAME=MMBIRDT,BYTES=5,START=16,TYPE=C
FIELD NAME=MMMEFFDT,BYTES=4,START=21,TYPE=C
FIELD NAME=MMHIBNBR,BYTES=12,START=103,TYPE=C
SEGM NAME=MMLTNAM,BYTES=16,PTR=(T), X
PARENT=MMMEMBR,RULES=(LLL,LAST)
FIELD NAME=MMLASTNA,BYTES=16,START=1,TYPE=C
SEGM NAME=MMCANCL,BYTES=16,PTR=(T), X
PARENT=MMMEMBR,RULES=(LLL,LAST)
FIELD NAME=MMCANEFF,BYTES=4,START=1,TYPE=C
skipped the rest because I got bored
why complain that You got the 'PROBLEM WHILE REACHING MMCERT SEGMENT' message...
Your cobol code issued that not IMS ... so we have nothing to suggest about it...
and about the AC code, what happened when You looked/searched/read about it in the IMS manuals
also asking people willing to answer to go thru more than 300 lines of code is a bit too much
a forum search might also give some insight on how to proceed...
but as i said the first source of info is always the manual