A subroutne populates a matrix A(10,10) as follows (actually it doesn't populate last two rows):

SUBROUTINE GLNAM(I,J,FNAME1,FNAME2)

CHARACTER FNAME1*10, FNAME2*10,A(10,10)*3,B(10,10)*3

DATA A(1,1),A(1,2),A(1,3),A(1,4)/'1M1','1M2','1M3','1M4'/

DATA A(2,1),A(2,2),A(2,3),A(2,4)/'2M1','2M2','2M3','2M4'/

DATA A(3,1),A(3,2),A(3,3),A(3,4)/'3M1','3M2','3M3','3M4'/

DATA A(4,1),A(4,2),A(4,3),A(4,4)/'4M1','4M2','4M3','4M4'/

DATA A(5,1),A(5,2),A(5,3),A(5,4)/'5M1','5M2','5M3','5M4'/

DATA A(6,1),A(6,2),A(6,3),A(6,4)/'6M1','6M2','6M3','6M4'/

DATA A(7,1),A(7,2),A(7,3),A(7,4)/'7M1','7M2','7M3','7M4'/

DATA A(8,1),A(8,2),A(8,3),A(8,4)/'8M1','8M2','8M3','8M4'/

DATA A(1,5),A(1,6),A(1,7),A(1,8)/'1M5','1M6','1M7','1M8'/

DATA A(2,5),A(2,6),A(2,7),A(2,8)/'2M5','2M6','2M7','2M8'/

DATA A(3,5),A(3,6),A(3,7),A(3,8)/'3M5','3M6','3M7','3M8'/

DATA A(4,5),A(4,6),A(4,7),A(4,8)/'4M5','4M6','4M7','4M8'/

DATA A(5,5),A(5,6),A(5,7),A(5,8)/'5M5','5M6','5M7','5M8'/

DATA A(6,5),A(6,6),A(6,7),A(6,8)/'6M5','6M6','6M7','6M8'/

DATA A(7,5),A(7,6),A(7,7),A(7,8)/'7M5','7M6','7M7','7M8'/

DATA A(8,5),A(8,6),A(8,7),A(8,8)/'8M5','8M6','8M7','8M8'/

DATA A(1,9),A(1,10) /'1M9','1M0'/

DATA A(2,9),A(2,10) /'2M9','2M0'/

DATA A(3,9),A(3,10) /'3M9','3M0'/

DATA A(4,9),A(4,10) /'4M9','4M0'/

DATA A(5,9),A(5,10) /'5M9','5M0'/

DATA A(6,9),A(6,10) /'6M9','6M0'/

DATA A(7,9),A(7,10) /'7M9','7M0'/

DATA A(8,9),A(8,10) /'8M9','8M0'/

FNAME1 = 'GNOUT'//A(I,J)

What is the meaning of '*3' in character A(10,10) *3

Also what is the meaning of: FNAME1 = 'GNOUT'//A(I,J)

what sort of function is: // before A(i,j)

I deleted B inputs with data command as it is same as A