This is very simple. Check
inp_par.F around line 570 we have:
Code: Select all
!
! Convert momentum stresses and tracer flux scales to kinematic
! Values. Recall, that all the model fluxes are kinematic.
!
cff=1.0_r8/rho0
Fscale(idUsms,ng)=cff*Fscale(idUsms,ng)
Fscale(idVsms,ng)=cff*Fscale(idVsms,ng)
Fscale(idUbms,ng)=cff*Fscale(idUbms,ng)
Fscale(idVbms,ng)=cff*Fscale(idVbms,ng)
Fscale(idUbrs,ng)=cff*Fscale(idUbrs,ng)
Fscale(idVbrs,ng)=cff*Fscale(idVbrs,ng)
Fscale(idUbws,ng)=cff*Fscale(idUbws,ng)
Fscale(idVbws,ng)=cff*Fscale(idVbws,ng)
Fscale(idUbcs,ng)=cff*Fscale(idUbcs,ng)
Fscale(idVbcs,ng)=cff*Fscale(idVbcs,ng)
cff=1.0_r8/(rho0*Cp)
Fscale(idTsur(itemp),ng)=cff*Fscale(idTsur(itemp),ng)
Fscale(idTbot(itemp),ng)=cff*Fscale(idTbot(itemp),ng)
Fscale(idSrad,ng)=cff*Fscale(idSrad,ng)
Fscale(idLdwn,ng)=cff*Fscale(idLdwn,ng)
Fscale(idLrad,ng)=cff*Fscale(idLrad,ng)
Fscale(idLhea,ng)=cff*Fscale(idLhea,ng)
Fscale(idShea,ng)=cff*Fscale(idShea,ng)
Fscale(iddQdT,ng)=cff*Fscale(iddQdT,ng)
END DO
Notice that during reading all the input fields are multiplied by the scale factor
Fscale. In this case,
Fscale(idTsur(itemp),ng) is used. The reason why this is done here and not in
varinfo.dat is that the value of
rho0 is not known because the input file ocean.in has not been read yet. Recall that this parameter is set by the user.