DO J = 1, NR_GC_NODES WRITE(DUMMY_STR,*) K-1 input_IHC_temp = 'EQUILIBRIUM_PHASES_MODIFY '//TRIM(ADJUSTL(DUMMY_STR))//new_line(cc) HC_GC_VALUES(K,1) = P(K)*1.0e-5 ! WRITE(DUMMY_STR,*) log10(HC_GC_VALUES(K,1)) ! log10(pressure) WRITE(DUMMY_STR_2,*) HC_GC_VALUES(K,2) ! TOT_CO2 input_IHC_temp = input_IHC_temp //'-component '//TRIM(ADJUSTL(NAME_HC_GC(1)))//new_line(cc) input_IHC_temp = input_IHC_temp // '-moles ' //TRIM(ADJUSTL(DUMMY_STR_2))//new_line(cc) input_IHC_temp = input_IHC_temp // '-si '//TRIM(ADJUSTL(DUMMY_STR))//new_line(cc) input_IHC_temp = input_IHC_temp // '-si_org '//TRIM(ADJUSTL(DUMMY_STR))//new_line(cc) input_IHC_temp = input_IHC_temp //'END' //new_line(cc) Ierr = RM_RunString(Id_phreeqc, 1, 0, 0, input_IHC_temp) ENDIF ENDDO Ierr=RM_RunCells(Id_phreeqc)
nthreads = RM_GetThreadCount(id) allocate(start_cell(n), end_cell(n)) status = RM_GetStartCell(id, start_cell) status = RM_GetEndCell(id, start_cell) ! you can use OpenMP to parallize this loop do i = 1, nthreads thread_id = RM_GetIPhreeqcId(id, i-1) do j = start_cell(i), end_cell(i) ! Accumulate equilibrium phases modify strings enddo RunString(thread_id, string) enddo