prepaid energy meter using sim800l not sending the sms

you invoke sendSMS() every time you want to send , but you never defined it,

instead sending() is what you defined

go to line that says 'void sending(String msg)' and change it to 'void sendSMS(String msg)'

can you put

 myserial.println("AT+CMGF=1");
 delay(5000);

somewhere in gsmInit() ( which is in setup() )

gms modules have flash memory, so it 'remembers' the value of 'at+cmgf' indefinitely, you don't have to invoke it every time you send SMS