Boa tarde colegas programadores, como vão?

Estou tendo alguma dificuldade em acertar o script para executar o calculo do balanço hídrico de Thornthwaite & Mather, mas para uma escala diária.
Tenho essas condições que deve ser obedecida para execução dos cálculos:
NAc = (P - ETP) + NAc[i-1]
ARM = CAD * exp(NAc/CAD)
ARM = (P - ETP) + ARM[i-1]
NAc = CAD * Ln(ARM/CAD)

Utilizei o comando for e o if else para estabelecer as condições e calcular cada variável para cada dia do período analisado. Entretanto, o script não está calculando as variáveis e retorna os vetores vazios.
Segue o script no corpo do email e os dados de entrada em anexo.
Agradeço de antemão a ajuda de todos!

Abs

#----------Remover Objetos----------#
rm(list = ls())

#----------Selecionar arquivo de interesse----------#
a = read.table("x.txt", sep = "\t", header = T); head(a)

#----------Iniciar o BH----------#
a$P.ETP = a$RAIN-a$ETP.Penman
cad = 100
a$NAc = NA
a$ARMi = NA
a$ARMf = NA
a$ALT = NA
a$ETR = NA
a$DEF = NA
a$EXC = NA
head(a)

a$NAc[1] = 0
a$ARMi[1] = cad
a$ARMf[1] = cad
a$ALT[1] = 0

for(i in 2:length(a[,1])){
      if(a$P.ETP[i]<0){ 
        (a$NAc[i] = a$P.ETP[i]+a$NAc[i-1]) 
        a$ARMi[i] = (cad*exp(-1*((abs(a$NAc[i]))/cad)))
    }else{
      a$ARMf[i] = ifelse(a$ARMi[i] > cad, cad, a$ARMi[i])
      a$ARMi[i] = a$ARMf[i-1]+a$P.ETP[i]
      a$NAc[i] = cad*log((a$ARMf[i])/cad)
    }
   
  a$ALT[i] = a$ARMf[i] - a$ARMf[i-1]
  a$ETR[i] = if(a$P.ETP[i]<0){a$RAIN[i]+abs(a$ALT[i])} else{a$ETP.Penman[i]} 
  a$DEF[i] = a$ETP.Penman[i] - a$ETR[i]
  a$EXC[i] = a$ARMi[i] - a$ARMf[i]
  }

View(a)

Yury Duarte
Engenheiro Agrônomo - ESALQ/USP