anchor.diff:  
                VMTR_RGSH_pl    (n,k,l) = 1.D0 / GSQRTH_pl(n,k)
                VMTR_RGAM_pl    (n,k,l) = 1.D0 / GAM
  +             VMTR_RGAMH_pl   (n,k,l) = 1.D0 / GAMH
                VMTR_RGAM2_pl   (n,k,l) = 1.D0 / VMTR_GAM2_pl (n,k,l)
                VMTR_RGAM2H_pl  (n,k,l) = 1.D0 / VMTR_GAM2H_pl(n,k,l)
                VMTR_RGSGAM2_pl (n,k,l) = 1.D0 / VMTR_GSGAM2_pl (n,k,l)
  
positive.code: 
               VMTR_RGSH    (n,k,l) = 1.D0 / GSQRTH(n,k)
               VMTR_RGAM    (n,k,l) = 1.D0 / GAM
               VMTR_RGAM2   (n,k,l) = 1.D0 / VMTR_GAM2   (n,k,l)
               VMTR_RGAM2H  (n,k,l) = 1.D0 / VMTR_GAM2H  (n,k,l)
               VMTR_RGSGAM2 (n,k,l) = 1.D0 / VMTR_GSGAM2 (n,k,l)
  
negative.code: 
         do k = ADM_kmin, ADM_kall
         do n = 1, ADM_gall
            !--- calculation of factor for integer to half integer level with Gz
            VMTR_C2Wfact(I_a_GZXH,n,k,l) = 0.5D0 * GRD_afac(k) &
                                         * VMTR_GSGAM2H(n,k,l) / VMTR_GSGAM2(n,k  ,l) * VMTR_GZXH(n,k,l)
            VMTR_C2Wfact(I_b_GZXH,n,k,l) = 0.5D0 * GRD_bfac(k) &
  