anchor.diff:  !         CALL wrf_dm_gatherv(tnr_gacr, ntb_g*ntb_g1, km_s, km_e, R8SIZE)
   ! #endif
   
  - !        IF ( write_thompson_tables .AND. wrf_dm_on_monitor() ) THEN
  - !          CALL wrf_message("Writing qr_acr_qg.dat in Thompson MP init")
  - !          OPEN(63,file="qr_acr_qg.dat",form="unformatted",err=9234)
  - !          WRITE(63,err=9234) tcg_racg
  - !          WRITE(63,err=9234) tmr_racg
  - !          WRITE(63,err=9234) tcr_gacr
  - !          WRITE(63,err=9234) tmg_gacr
  - !          WRITE(63,err=9234) tnr_racg
  - !          WRITE(63,err=9234) tnr_gacr
  - !          CLOSE(63)
  - !          RETURN    ! ----- RETURN
  - ! 9234     CONTINUE
  - !          CALL wrf_error_fatal("Error writing qr_acr_qg.dat")
  - !        ENDIF
  +        IF ( this_image()==1 ) THEN
  +          print *, "Writing qr_acr_qg.dat in Thompson MP init"
  +          OPEN(63,file="qr_acr_qg.dat",form="unformatted",err=9234)
  +          WRITE(63,err=9234) tcg_racg
  +          WRITE(63,err=9234) tmr_racg
  +          WRITE(63,err=9234) tcr_gacr
  +          WRITE(63,err=9234) tmg_gacr
  +          WRITE(63,err=9234) tnr_racg
  +          WRITE(63,err=9234) tnr_gacr
  +          CLOSE(63)
  +          RETURN    ! ----- RETURN
  + 9234     CONTINUE
  +          print *, ("Error writing qr_acr_qg.dat")
  +        ENDIF
         ENDIF
   
         end subroutine qr_acr_qg
  
positive.code:       DOUBLE PRECISION:: massg, massr, dvg, dvr, t1, t2, z1, z2, y1, y2
        LOGICAL force_read_thompson, write_thompson_tables
        LOGICAL lexist,lopen
        INTEGER good
      !   LOGICAL, EXTERNAL :: wrf_dm_on_monitor
  
  !+---+
  
  
negative.code:     !   CALL nl_get_write_thompson_tables(1,write_thompson_tables)
  
        good = 0
        if (this_image()==1) then
            INQUIRE(FILE="qr_acr_qg.dat",EXIST=lexist)
            IF ( lexist ) THEN
              print *, "ThompMP: read qr_acr_qg.dat stead of computing"
              OPEN(63,file="qr_acr_qg.dat",form="unformatted",err=1234)
              READ(63,err=1234) tcg_racg
              READ(63,err=1234) tmr_racg
              READ(63,err=1234) tcr_gacr
              READ(63,err=1234) tmg_gacr
              READ(63,err=1234) tnr_racg
              READ(63,err=1234) tnr_gacr
              good = 1
       1234   CONTINUE
              INQUIRE(63,opened=lopen)
              IF (lopen) THEN
                CLOSE(63)
              ENDIF
  
              ! broadcast the data to all images
              do i=2,num_images()
                  good[i]     = good
                  tcg_racg(:,:,:,:)[i] = tcg_racg(:,:,:,:)
                  tmr_racg(:,:,:,:)[i] = tmr_racg(:,:,:,:)
                  tcr_gacr(:,:,:,:)[i] = tcr_gacr(:,:,:,:)
                  tmg_gacr(:,:,:,:)[i] = tmg_gacr(:,:,:,:)
                  tnr_racg(:,:,:,:)[i] = tnr_racg(:,:,:,:)
                  tnr_gacr(:,:,:,:)[i] = tnr_gacr(:,:,:,:)
              enddo
            ENDIF
        endif
  
        sync all()
  
        IF ( good .NE. 1 ) THEN
          print *, "ThompMP: computing qr_acr_qg"
          do n2 = 1, nbr
  !        vr(n2) = av_r*Dr(n2)**bv_r * DEXP(-fv_r*Dr(n2))
           vr(n2) = -0.1021 + 4.932E3*Dr(n2) - 0.9551E6*Dr(n2)*Dr(n2)     &
  