Fatal error: Syntax error - File so4.itp, line 62 Last line read: '[moleculetype]' Invalid order for

GROMACS version: 2020.0
GROMACS modification: No
I am trying to do some simulations of solvated sulfate ions in water (tip4p/2005 to be specific). When I try to create the tpr file for energy minimisation using grompp, it gives the below error:

Fatal error: Syntax error - File so4.itp, line 62 Last line read: ‘[ moleculetype ]’ Invalid order for directive moleculetype

The itp file was created by the Automated Topology Builder (ATB) tool, and has been included below. Can someone help why this happens and how can it be solved? I am including the ityp file for sulfate ion and the topology file for the system below:

itp file for sulphate ion:

[ moleculetype ]
; Name nrexcl
SO4 3
[ atoms ]
; nr type resnr resid atom cgnr charge mass
1 OM 1 SO4 O4 1 -0.748 15.9994
2 SDmso 1 SO4 S 2 0.992 32.0600
3 OM 1 SO4 O1 3 -0.748 15.9994
4 OM 1 SO4 O2 4 -0.748 15.9994
5 OM 1 SO4 O3 5 -0.748 15.9994
; total charge of the molecule: -2.000
[ bonds ]
; ai aj funct c0 c1
1 2 2 0.1520 5.4300e+06
2 3 2 0.1520 5.4300e+06
2 4 2 0.1520 5.4300e+06
2 5 2 0.1520 5.4300e+06
[ pairs ]
; ai aj funct ; all 1-4 pairs but the ones excluded in GROMOS itp
[ angles ]
; ai aj ak funct angle fc
1 2 3 2 109.00 1680.51
1 2 4 2 109.00 1680.51
1 2 5 2 109.00 1680.51
3 2 4 2 109.00 1680.51
3 2 5 2 109.00 1680.51
4 2 5 2 109.00 1680.51
[ dihedrals ]
; GROMOS improper dihedrals
; ai aj ak al funct angle fc
[ dihedrals ]
; ai aj ak al funct ph0 cp mult
[ exclusions ]
; ai aj funct ; GROMOS 1-4 exclusions

And my topology file for the system looks like this:

#include “so4.itp”

[ defaults ]
; nbfunc comb-rule gen-pairs fudgeLJ fudgeQQ
1 2 no 1.0 1.0

[atomtypes]
;name mass charge ptype sigma epsilon
IW 0 0.000 D 0.0 0.0
OWT4 15.9994 0.000 A 0.31589 0.77490
HW 1.0079 0.000 A 0.00000E+00 0.00000E+00

[moleculetype]
; name nrexcl
water 1

[atoms]
; nr type resnr residu atom cgnr charge
1 OWT4 1 water OW1 1 0 15.9994
2 HW 1 water HW2 1 0.5564 1.0079
3 HW 1 water HW3 1 0.5564 1.0079
4 IW 1 water MW4 1 -1.1128 0.0

[constraints]
;i j funct doh dhh
1 2 1 0.09572
1 3 1 0.09572
2 3 1 0.15139

[exclusions]
1 2 3 4
2 1 3 4
3 1 2 4
4 1 2 3

; The position of the dummy is computed as follows:
;
; O
;
; D
;
; H H
;
; const = distance (OD) / [ cos (angle(DOH)) * distance (OH) ]
; 0.01546 nm / [ cos (52.26 deg) * 0.09572 nm ]

; Dummy pos x4 = x1 + a*(x2-x1) + b*(x3-x1)

[dummies3]
; Dummy from funct a b
4 1 2 3 1 0.13193828 0.13193828

[system]
water tip4p/2005

[molecules]
water 4096
SO4 5

All force field-level directories (parameters) have to be defined before any molecule can be defined. [defaults] always has to come first. You’re trying to introduce a new molecule before anything is known about the force field functional form or parameters, which is syntactically invalid. See Chapter 5 of the GROMACS manual for required order of directives. You simply need to move the #include statement for sulfate down to an appropriate location after all the parameters are defined.