You have some misconceptions regarding the structure of Fortran source files. There are no separate rules for what you can have or not have in include-files. After the include-file contents are inserted into the places where they are invoked by INCLUDE statements, the resulting source code must be correct Fortran source, subject to all the requirements and conventions thereof.
Fortran is a language for programs and projects ranging from tiny to huge. It has strong support for separate compilation of program units, which can then be combined (using a linker such as SLINK.EXE), optionally with inclusion of previously compiled subprograms in object libraries.
I suggest that you move away from COMMON blocks, which are the source of many errors in medium and large programs. Use modules instead. Here is your subroutine, modified to use modules instead of common blocks.
MODULE C_ACT_PO
IMPLICIT NONE
DOUBLE PRECISION AP_R(0:359),AP_X(0:359)
END MODULE C_ACT_PO
MODULE C_P_W
IMPLICIT NONE
INTEGER LEAD_ENT,TRAIL_ENT
DOUBLE PRECISION P_W_(30)
END MODULE C_P_W
SUBROUTINE ACT_POC(PITCH,X_P,ORIE,BLANK_RAD,PCKNUM,NUM)
USE C_ACT_PO
USE C_P_W
IMPLICIT NONE
INTEGER TH,I,J,I2,PCKNUM,ENT_NUM,NUM,H_NUM,ONEH_NUM
INTEGER CV1,CV2,CV5,CV6
DOUBLE PRECISION PI,ORIE,DNUM
DOUBLE PRECISION BLANK_RAD,P,X,BETA,R1
DOUBLE PRECISION MAX_LD,MAX_TR
DOUBLE PRECISION X_P,PITCH,POC_PT,N2R
PI = DACOS(-1D0)
DNUM = DBLE(NUM)
N2R = PI/180D0*360D0/DNUM
H_NUM = NUM/2
ONEH_NUM = 1.5D0*DNUM
DO J = 0,NUM-1
AP_R(J) = BLANK_RAD
END DO
ENT_NUM = LEAD_ENT
RETURN
END SUBROUTINE ACT_POC